diff --git a/codecipher/a1z52n62/__init__.py b/codecipher/a1z52n62/__init__.py index 899450c..a7a43aa 100644 --- a/codecipher/a1z52n62/__init__.py +++ b/codecipher/a1z52n62/__init__.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/a1z52n62/decode.py b/codecipher/a1z52n62/decode.py index 26be5a4..29d98c2 100644 --- a/codecipher/a1z52n62/decode.py +++ b/codecipher/a1z52n62/decode.py @@ -27,7 +27,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/a1z52n62/encode.py b/codecipher/a1z52n62/encode.py index d121123..f1617cc 100644 --- a/codecipher/a1z52n62/encode.py +++ b/codecipher/a1z52n62/encode.py @@ -27,7 +27,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/atbs/__init__.py b/codecipher/atbs/__init__.py index 6301b4c..e807f88 100644 --- a/codecipher/atbs/__init__.py +++ b/codecipher/atbs/__init__.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/atbs/decode.py b/codecipher/atbs/decode.py index 21f9a3e..9296915 100644 --- a/codecipher/atbs/decode.py +++ b/codecipher/atbs/decode.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/atbs/encode.py b/codecipher/atbs/encode.py index 0305506..8117c34 100644 --- a/codecipher/atbs/encode.py +++ b/codecipher/atbs/encode.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/atbs/lookup_table.py b/codecipher/atbs/lookup_table.py index 5b24e76..861e847 100644 --- a/codecipher/atbs/lookup_table.py +++ b/codecipher/atbs/lookup_table.py @@ -25,7 +25,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/b64/__init__.py b/codecipher/b64/__init__.py index 5be2e31..2898d7b 100644 --- a/codecipher/b64/__init__.py +++ b/codecipher/b64/__init__.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/b64/decode.py b/codecipher/b64/decode.py index b3117d8..2866de2 100644 --- a/codecipher/b64/decode.py +++ b/codecipher/b64/decode.py @@ -28,7 +28,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/b64/encode.py b/codecipher/b64/encode.py index 7bf6ae5..6c20609 100644 --- a/codecipher/b64/encode.py +++ b/codecipher/b64/encode.py @@ -28,7 +28,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/caesar/__init__.py b/codecipher/caesar/__init__.py index f299f48..e3c74bd 100644 --- a/codecipher/caesar/__init__.py +++ b/codecipher/caesar/__init__.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/caesar/decode.py b/codecipher/caesar/decode.py index d64a273..bb34768 100644 --- a/codecipher/caesar/decode.py +++ b/codecipher/caesar/decode.py @@ -27,7 +27,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/caesar/encode.py b/codecipher/caesar/encode.py index 69d50dd..7da63d0 100644 --- a/codecipher/caesar/encode.py +++ b/codecipher/caesar/encode.py @@ -27,7 +27,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/vernam/__init__.py b/codecipher/vernam/__init__.py index 3822bae..bf2a717 100644 --- a/codecipher/vernam/__init__.py +++ b/codecipher/vernam/__init__.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/vernam/decode.py b/codecipher/vernam/decode.py index 203ede9..719840e 100644 --- a/codecipher/vernam/decode.py +++ b/codecipher/vernam/decode.py @@ -27,7 +27,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/vernam/encode.py b/codecipher/vernam/encode.py index efcbdfc..c005830 100644 --- a/codecipher/vernam/encode.py +++ b/codecipher/vernam/encode.py @@ -27,7 +27,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/vigenere/__init__.py b/codecipher/vigenere/__init__.py index 2dd27c5..3ef8822 100644 --- a/codecipher/vigenere/__init__.py +++ b/codecipher/vigenere/__init__.py @@ -35,7 +35,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/vigenere/decode.py b/codecipher/vigenere/decode.py index 9c108a3..72c86c5 100644 --- a/codecipher/vigenere/decode.py +++ b/codecipher/vigenere/decode.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/vigenere/encode.py b/codecipher/vigenere/encode.py index 44890d2..3375e4b 100644 --- a/codecipher/vigenere/encode.py +++ b/codecipher/vigenere/encode.py @@ -34,7 +34,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/vigenere/key_generator.py b/codecipher/vigenere/key_generator.py index 6bc47ab..bdc9a51 100644 --- a/codecipher/vigenere/key_generator.py +++ b/codecipher/vigenere/key_generator.py @@ -27,7 +27,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/codecipher/vigenere/lookup_table.py b/codecipher/vigenere/lookup_table.py index 30ff8db..658f190 100644 --- a/codecipher/vigenere/lookup_table.py +++ b/codecipher/vigenere/lookup_table.py @@ -26,7 +26,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 364a3e0..2c46fc7 100644 Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ diff --git a/docs/build/html/_modules/codecipher/a1z52n62.html b/docs/build/html/_modules/codecipher/a1z52n62.html index 482c58d..b99e95f 100644 --- a/docs/build/html/_modules/codecipher/a1z52n62.html +++ b/docs/build/html/_modules/codecipher/a1z52n62.html @@ -72,7 +72,7 @@

Source code for codecipher.a1z52n62

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/a1z52n62/decode.html b/docs/build/html/_modules/codecipher/a1z52n62/decode.html
index 6fd78a9..0173374 100644
--- a/docs/build/html/_modules/codecipher/a1z52n62/decode.html
+++ b/docs/build/html/_modules/codecipher/a1z52n62/decode.html
@@ -66,7 +66,7 @@ 

Source code for codecipher.a1z52n62.decode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/a1z52n62/encode.html b/docs/build/html/_modules/codecipher/a1z52n62/encode.html
index 9855019..0852b80 100644
--- a/docs/build/html/_modules/codecipher/a1z52n62/encode.html
+++ b/docs/build/html/_modules/codecipher/a1z52n62/encode.html
@@ -66,7 +66,7 @@ 

Source code for codecipher.a1z52n62.encode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/atbs.html b/docs/build/html/_modules/codecipher/atbs.html
index e79f189..f7dadff 100644
--- a/docs/build/html/_modules/codecipher/atbs.html
+++ b/docs/build/html/_modules/codecipher/atbs.html
@@ -72,7 +72,7 @@ 

Source code for codecipher.atbs

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/atbs/decode.html b/docs/build/html/_modules/codecipher/atbs/decode.html
index f3457cd..658abc7 100644
--- a/docs/build/html/_modules/codecipher/atbs/decode.html
+++ b/docs/build/html/_modules/codecipher/atbs/decode.html
@@ -73,7 +73,7 @@ 

Source code for codecipher.atbs.decode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/atbs/encode.html b/docs/build/html/_modules/codecipher/atbs/encode.html
index f23820c..8552582 100644
--- a/docs/build/html/_modules/codecipher/atbs/encode.html
+++ b/docs/build/html/_modules/codecipher/atbs/encode.html
@@ -73,7 +73,7 @@ 

Source code for codecipher.atbs.encode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/b64.html b/docs/build/html/_modules/codecipher/b64.html
index 16c4c0c..b525353 100644
--- a/docs/build/html/_modules/codecipher/b64.html
+++ b/docs/build/html/_modules/codecipher/b64.html
@@ -72,7 +72,7 @@ 

Source code for codecipher.b64

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/b64/decode.html b/docs/build/html/_modules/codecipher/b64/decode.html
index 28dd00b..6a4beff 100644
--- a/docs/build/html/_modules/codecipher/b64/decode.html
+++ b/docs/build/html/_modules/codecipher/b64/decode.html
@@ -67,7 +67,7 @@ 

Source code for codecipher.b64.decode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/b64/encode.html b/docs/build/html/_modules/codecipher/b64/encode.html
index 66cdf78..01e24a7 100644
--- a/docs/build/html/_modules/codecipher/b64/encode.html
+++ b/docs/build/html/_modules/codecipher/b64/encode.html
@@ -67,7 +67,7 @@ 

Source code for codecipher.b64.encode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/caesar.html b/docs/build/html/_modules/codecipher/caesar.html
index c87a550..15d52e2 100644
--- a/docs/build/html/_modules/codecipher/caesar.html
+++ b/docs/build/html/_modules/codecipher/caesar.html
@@ -72,7 +72,7 @@ 

Source code for codecipher.caesar

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/caesar/decode.html b/docs/build/html/_modules/codecipher/caesar/decode.html
index f594e9f..8ea8621 100644
--- a/docs/build/html/_modules/codecipher/caesar/decode.html
+++ b/docs/build/html/_modules/codecipher/caesar/decode.html
@@ -66,7 +66,7 @@ 

Source code for codecipher.caesar.decode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/caesar/encode.html b/docs/build/html/_modules/codecipher/caesar/encode.html
index fb6ce64..4003b25 100644
--- a/docs/build/html/_modules/codecipher/caesar/encode.html
+++ b/docs/build/html/_modules/codecipher/caesar/encode.html
@@ -66,7 +66,7 @@ 

Source code for codecipher.caesar.encode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/vernam.html b/docs/build/html/_modules/codecipher/vernam.html
index 9d7ca98..4ddc0b5 100644
--- a/docs/build/html/_modules/codecipher/vernam.html
+++ b/docs/build/html/_modules/codecipher/vernam.html
@@ -72,7 +72,7 @@ 

Source code for codecipher.vernam

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/vernam/decode.html b/docs/build/html/_modules/codecipher/vernam/decode.html
index 45b7e89..87306ea 100644
--- a/docs/build/html/_modules/codecipher/vernam/decode.html
+++ b/docs/build/html/_modules/codecipher/vernam/decode.html
@@ -66,7 +66,7 @@ 

Source code for codecipher.vernam.decode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/vernam/encode.html b/docs/build/html/_modules/codecipher/vernam/encode.html
index 55eb739..10349c8 100644
--- a/docs/build/html/_modules/codecipher/vernam/encode.html
+++ b/docs/build/html/_modules/codecipher/vernam/encode.html
@@ -66,7 +66,7 @@ 

Source code for codecipher.vernam.encode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/vigenere.html b/docs/build/html/_modules/codecipher/vigenere.html
index 18d789d..f87b9cc 100644
--- a/docs/build/html/_modules/codecipher/vigenere.html
+++ b/docs/build/html/_modules/codecipher/vigenere.html
@@ -73,7 +73,7 @@ 

Source code for codecipher.vigenere

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/vigenere/decode.html b/docs/build/html/_modules/codecipher/vigenere/decode.html
index 0ef04f3..4306219 100644
--- a/docs/build/html/_modules/codecipher/vigenere/decode.html
+++ b/docs/build/html/_modules/codecipher/vigenere/decode.html
@@ -73,7 +73,7 @@ 

Source code for codecipher.vigenere.decode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/vigenere/encode.html b/docs/build/html/_modules/codecipher/vigenere/encode.html
index 7585dc7..35e43f0 100644
--- a/docs/build/html/_modules/codecipher/vigenere/encode.html
+++ b/docs/build/html/_modules/codecipher/vigenere/encode.html
@@ -73,7 +73,7 @@ 

Source code for codecipher.vigenere.encode

 __copyright__: str = '(C) 2025, https://electux.github.io/codecipher'
 __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation']
 __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE'
-__version__: str = '1.4.8'
+__version__: str = '1.4.9'
 __maintainer__: str = 'Vladimir Roncevic'
 __email__: str = 'elektron.ronca@gmail.com'
 __status__: str = 'Updated'
diff --git a/docs/build/html/_modules/codecipher/vigenere/key_generator.html b/docs/build/html/_modules/codecipher/vigenere/key_generator.html
index 6c2286c..1133d6e 100644
--- a/docs/build/html/_modules/codecipher/vigenere/key_generator.html
+++ b/docs/build/html/_modules/codecipher/vigenere/key_generator.html
@@ -66,7 +66,7 @@ 

Source code for codecipher.vigenere.key_generator

__copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/docs/build/html/_modules/codecipher/vigenere/lookup_table.html b/docs/build/html/_modules/codecipher/vigenere/lookup_table.html index aba76cc..a107605 100644 --- a/docs/build/html/_modules/codecipher/vigenere/lookup_table.html +++ b/docs/build/html/_modules/codecipher/vigenere/lookup_table.html @@ -65,7 +65,7 @@

Source code for codecipher.vigenere.lookup_table

__copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 28c94be..4302aa6 100644 Binary files a/docs/build/html/objects.inv and b/docs/build/html/objects.inv differ diff --git a/docs/source/conf.py b/docs/source/conf.py index e82b3ad..6800392 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -29,7 +29,7 @@ project: str = 'codecipher' project_copyright: str = '2025, Vladimir Roncevic ' author: str = 'Vladimir Roncevic ' -version: str = '1.4.8' +version: str = '1.4.9' release: str = 'https://github.com/electux/codecipher/releases' extensions: List[str] = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode'] templates_path: List[str] = ['_templates'] diff --git a/setup.py b/setup.py index faa4cea..ec11ec3 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/main/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' @@ -50,7 +50,7 @@ PYP_CLASSIFIERS: List[str] = SUPPORTED_PY_VERSIONS setup( name='codecipher', - version='1.4.8', + version='1.4.9', description='Python Cipher Utilities', author='Vladimir Roncevic', author_email='elektron.ronca@gmail.com', diff --git a/tests/a1z52n62_test.py b/tests/a1z52n62_test.py index 5fee0c4..7886844 100644 --- a/tests/a1z52n62_test.py +++ b/tests/a1z52n62_test.py @@ -36,7 +36,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/dev/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/tests/atbs_test.py b/tests/atbs_test.py index 47ec2c6..844fce8 100644 --- a/tests/atbs_test.py +++ b/tests/atbs_test.py @@ -36,7 +36,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/dev/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/tests/b64_test.py b/tests/b64_test.py index cb419dd..0626906 100644 --- a/tests/b64_test.py +++ b/tests/b64_test.py @@ -36,7 +36,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/dev/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/tests/caesar_test.py b/tests/caesar_test.py index 3588751..2b11b5b 100644 --- a/tests/caesar_test.py +++ b/tests/caesar_test.py @@ -36,7 +36,7 @@ __copyright__: str = '(C) 2025, https://electux.github.io/codecipher' __credits__: List[str] = ['Vladimir Roncevic', 'Python Software Foundation'] __license__: str = 'https://github.com/electux/codecipher/blob/dev/LICENSE' -__version__: str = '1.4.8' +__version__: str = '1.4.9' __maintainer__: str = 'Vladimir Roncevic' __email__: str = 'elektron.ronca@gmail.com' __status__: str = 'Updated' diff --git a/tests/codecipher_coverage.json b/tests/codecipher_coverage.json index aa2784d..38d685f 100644 --- a/tests/codecipher_coverage.json +++ b/tests/codecipher_coverage.json @@ -1 +1 @@ -{"meta": {"format": 3, "version": "7.6.10", "timestamp": "2025-11-01T07:55:09.848059", "branch_coverage": false, "show_contexts": false}, "files": {"/data/dev/python/codecipher/github/codecipher/codecipher/__init__.py": {"executed_lines": [3], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/a1z52n62/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"A1z52N62.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"A1z52N62": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/a1z52n62/decode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 86, 87, 88, 89, 90, 91, 92, 94, 96, 98, 99], "summary": {"covered_lines": 30, "num_statements": 32, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"A1z52N62Decode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "A1z52N62Decode.decode": {"executed_lines": [86, 87, 88, 89, 90, 91, 92, 94, 96, 98, 99], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"A1z52N62Decode": {"executed_lines": [62, 86, 87, 88, 89, 90, 91, 92, 94, 96, 98, 99], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/a1z52n62/encode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 86, 87, 88, 89, 90, 91, 93, 95, 96, 98, 99], "summary": {"covered_lines": 30, "num_statements": 32, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"A1z52N62Encode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "A1z52N62Encode.encode": {"executed_lines": [86, 87, 88, 89, 90, 91, 93, 95, 96, 98, 99], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"A1z52N62Encode": {"executed_lines": [62, 86, 87, 88, 89, 90, 91, 93, 95, 96, 98, 99], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/atbs/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"AlephTawBetShin.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"AlephTawBetShin": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/atbs/decode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 69, 71, 72, 84, 93, 94, 95, 96, 97], "summary": {"covered_lines": 27, "num_statements": 29, "percent_covered": 93.10344827586206, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [81, 82], "excluded_lines": [29, 31], "functions": {"AlephTawBetShinDecode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 82], "excluded_lines": []}, "AlephTawBetShinDecode.decode": {"executed_lines": [93, 94, 95, 96, 97], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 71, 72, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"AlephTawBetShinDecode": {"executed_lines": [69, 93, 94, 95, 96, 97], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 82], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 71, 72, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/atbs/encode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 69, 71, 72, 84, 93, 94, 95, 96, 97], "summary": {"covered_lines": 27, "num_statements": 29, "percent_covered": 93.10344827586206, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [81, 82], "excluded_lines": [29, 31], "functions": {"AlephTawBetShinEncode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 82], "excluded_lines": []}, "AlephTawBetShinEncode.encode": {"executed_lines": [93, 94, 95, 96, 97], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 71, 72, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"AlephTawBetShinEncode": {"executed_lines": [69, 93, 94, 95, 96, 97], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 82], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 71, 72, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/atbs/lookup_table.py": {"executed_lines": [3, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/b64/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"B64.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"B64": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/b64/decode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 63, 65, 66, 78, 87, 88], "summary": {"covered_lines": 22, "num_statements": 24, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": [], "functions": {"B64Decode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "B64Decode.decode": {"executed_lines": [87, 88], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 65, 66, 78], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"B64Decode": {"executed_lines": [63, 87, 88], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 65, 66, 78], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/b64/encode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 63, 65, 66, 78, 87, 88], "summary": {"covered_lines": 22, "num_statements": 24, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": [], "functions": {"B64Encode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "B64Encode.encode": {"executed_lines": [87, 88], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 65, 66, 78], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"B64Encode": {"executed_lines": [63, 87, 88], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 65, 66, 78], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/caesar/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"Caesar.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"Caesar": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/caesar/decode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 39, "num_statements": 41, "percent_covered": 95.1219512195122, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"CaesarDecode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "CaesarDecode.decode": {"executed_lines": [90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CaesarDecode": {"executed_lines": [62, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/caesar/encode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 39, "num_statements": 41, "percent_covered": 95.1219512195122, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"CaesarEncode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "CaesarEncode.encode": {"executed_lines": [90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CaesarEncode": {"executed_lines": [62, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vernam/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"Vernam.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"Vernam": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vernam/decode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 34, "num_statements": 36, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"VernamDecode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "VernamDecode.decode": {"executed_lines": [88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"VernamDecode": {"executed_lines": [62, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vernam/encode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 34, "num_statements": 36, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"VernamEncode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "VernamEncode.encode": {"executed_lines": [88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"VernamEncode": {"executed_lines": [62, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 57, 63], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [30, 32], "functions": {"Vigenere.__init__": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 57], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [30, 32]}}, "classes": {"Vigenere": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 57], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [30, 32]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/decode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 70, 72, 73, 85, 99, 100, 101, 102, 103, 105, 118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 35, "num_statements": 37, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [82, 83], "excluded_lines": [29, 31], "functions": {"VigenereDecode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "VigenereDecode._split_data_decode": {"executed_lines": [99, 100, 101, 102, 103], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VigenereDecode.decode": {"executed_lines": [118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 72, 73, 85, 105], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"VigenereDecode": {"executed_lines": [70, 99, 100, 101, 102, 103, 118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 72, 73, 85, 105], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/encode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 70, 72, 73, 85, 99, 100, 101, 102, 103, 105, 118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 35, "num_statements": 37, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [82, 83], "excluded_lines": [29, 31], "functions": {"VigenereEncode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "VigenereEncode._split_data_encode": {"executed_lines": [99, 100, 101, 102, 103], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VigenereEncode.encode": {"executed_lines": [118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 72, 73, 85, 105], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"VigenereEncode": {"executed_lines": [70, 99, 100, 101, 102, 103, 118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 72, 73, 85, 105], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/key_generator.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 53, 54, 56, 57, 67, 68, 77, 78, 80, 81, 89, 91, 92, 101, 102, 104, 111, 112, 113, 114, 117, 118, 119], "summary": {"covered_lines": 35, "num_statements": 37, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [65, 115], "excluded_lines": [], "functions": {"KeyGenerator.data_len": {"executed_lines": [77, 78], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "KeyGenerator.key": {"executed_lines": [101, 102], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "KeyGenerator.generate_key": {"executed_lines": [111, 112, 113, 114, 117, 118, 119], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [115], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 53, 54, 56, 57, 67, 68, 80, 81, 91, 92, 104], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"KeyGenerator": {"executed_lines": [77, 78, 89, 101, 102, 111, 112, 113, 114, 117, 118, 119], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [65, 115], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 53, 54, 56, 57, 67, 68, 80, 81, 91, 92, 104], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/lookup_table.py": {"executed_lines": [3, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"LookUpTable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}}, "totals": {"covered_lines": 532, "num_statements": 558, "percent_covered": 95.3405017921147, "percent_covered_display": "95", "missing_lines": 26, "excluded_lines": 20}} \ No newline at end of file +{"meta": {"format": 3, "version": "7.6.10", "timestamp": "2025-11-03T18:18:05.336430", "branch_coverage": false, "show_contexts": false}, "files": {"/data/dev/python/codecipher/github/codecipher/codecipher/__init__.py": {"executed_lines": [3], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/a1z52n62/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"A1z52N62.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"A1z52N62": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/a1z52n62/decode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 86, 87, 88, 89, 90, 91, 92, 94, 96, 98, 99], "summary": {"covered_lines": 30, "num_statements": 32, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"A1z52N62Decode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "A1z52N62Decode.decode": {"executed_lines": [86, 87, 88, 89, 90, 91, 92, 94, 96, 98, 99], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"A1z52N62Decode": {"executed_lines": [62, 86, 87, 88, 89, 90, 91, 92, 94, 96, 98, 99], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/a1z52n62/encode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 86, 87, 88, 89, 90, 91, 93, 95, 96, 98, 99], "summary": {"covered_lines": 30, "num_statements": 32, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"A1z52N62Encode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "A1z52N62Encode.encode": {"executed_lines": [86, 87, 88, 89, 90, 91, 93, 95, 96, 98, 99], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"A1z52N62Encode": {"executed_lines": [62, 86, 87, 88, 89, 90, 91, 93, 95, 96, 98, 99], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/atbs/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"AlephTawBetShin.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"AlephTawBetShin": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/atbs/decode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 69, 71, 72, 84, 93, 94, 95, 96, 97], "summary": {"covered_lines": 27, "num_statements": 29, "percent_covered": 93.10344827586206, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [81, 82], "excluded_lines": [29, 31], "functions": {"AlephTawBetShinDecode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 82], "excluded_lines": []}, "AlephTawBetShinDecode.decode": {"executed_lines": [93, 94, 95, 96, 97], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 71, 72, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"AlephTawBetShinDecode": {"executed_lines": [69, 93, 94, 95, 96, 97], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 82], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 71, 72, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/atbs/encode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 69, 71, 72, 84, 93, 94, 95, 96, 97], "summary": {"covered_lines": 27, "num_statements": 29, "percent_covered": 93.10344827586206, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [81, 82], "excluded_lines": [29, 31], "functions": {"AlephTawBetShinEncode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 82], "excluded_lines": []}, "AlephTawBetShinEncode.encode": {"executed_lines": [93, 94, 95, 96, 97], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 71, 72, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"AlephTawBetShinEncode": {"executed_lines": [69, 93, 94, 95, 96, 97], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 82], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 58, 60, 61, 71, 72, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/atbs/lookup_table.py": {"executed_lines": [3, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/b64/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"B64.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"B64": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/b64/decode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 63, 65, 66, 78, 87, 88], "summary": {"covered_lines": 22, "num_statements": 24, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": [], "functions": {"B64Decode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "B64Decode.decode": {"executed_lines": [87, 88], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 65, 66, 78], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"B64Decode": {"executed_lines": [63, 87, 88], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 65, 66, 78], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/b64/encode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 63, 65, 66, 78, 87, 88], "summary": {"covered_lines": 22, "num_statements": 24, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": [], "functions": {"B64Encode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "B64Encode.encode": {"executed_lines": [87, 88], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 65, 66, 78], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"B64Encode": {"executed_lines": [63, 87, 88], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 52, 54, 55, 65, 66, 78], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/caesar/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"Caesar.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"Caesar": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/caesar/decode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 39, "num_statements": 41, "percent_covered": 95.1219512195122, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"CaesarDecode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "CaesarDecode.decode": {"executed_lines": [90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CaesarDecode": {"executed_lines": [62, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/caesar/encode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 39, "num_statements": 41, "percent_covered": 95.1219512195122, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"CaesarEncode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "CaesarEncode.encode": {"executed_lines": [90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CaesarEncode": {"executed_lines": [62, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vernam/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56, 62], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31], "functions": {"Vernam.__init__": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"Vernam": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 56], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vernam/decode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 34, "num_statements": 36, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"VernamDecode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "VernamDecode.decode": {"executed_lines": [88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"VernamDecode": {"executed_lines": [62, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vernam/encode.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 62, 64, 65, 77, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 34, "num_statements": 36, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": [], "functions": {"VernamEncode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "VernamEncode.encode": {"executed_lines": [88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"VernamEncode": {"executed_lines": [62, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 104], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 75], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 51, 53, 54, 64, 65, 77], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/__init__.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 57, 63], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [30, 32], "functions": {"Vigenere.__init__": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 57], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [30, 32]}}, "classes": {"Vigenere": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 57], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [30, 32]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/decode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 70, 72, 73, 85, 99, 100, 101, 102, 103, 105, 118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 35, "num_statements": 37, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [82, 83], "excluded_lines": [29, 31], "functions": {"VigenereDecode.decode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "VigenereDecode._split_data_decode": {"executed_lines": [99, 100, 101, 102, 103], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VigenereDecode.decode": {"executed_lines": [118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 72, 73, 85, 105], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"VigenereDecode": {"executed_lines": [70, 99, 100, 101, 102, 103, 118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 72, 73, 85, 105], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/encode.py": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 70, 72, 73, 85, 99, 100, 101, 102, 103, 105, 118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 35, "num_statements": 37, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [82, 83], "excluded_lines": [29, 31], "functions": {"VigenereEncode.encode_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "VigenereEncode._split_data_encode": {"executed_lines": [99, 100, 101, 102, 103], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VigenereEncode.encode": {"executed_lines": [118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 72, 73, 85, 105], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}, "classes": {"VigenereEncode": {"executed_lines": [70, 99, 100, 101, 102, 103, 118, 119, 120, 121, 122, 126, 129], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 59, 61, 62, 72, 73, 85, 105], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 31]}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/key_generator.py": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 53, 54, 56, 57, 67, 68, 77, 78, 80, 81, 89, 91, 92, 101, 102, 104, 111, 112, 113, 114, 117, 118, 119], "summary": {"covered_lines": 35, "num_statements": 37, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [65, 115], "excluded_lines": [], "functions": {"KeyGenerator.data_len": {"executed_lines": [77, 78], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "KeyGenerator.key": {"executed_lines": [101, 102], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "KeyGenerator.generate_key": {"executed_lines": [111, 112, 113, 114, 117, 118, 119], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [115], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 53, 54, 56, 57, 67, 68, 80, 81, 91, 92, 104], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"KeyGenerator": {"executed_lines": [77, 78, 89, 101, 102, 111, 112, 113, 114, 117, 118, 119], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [65, 115], "excluded_lines": []}, "": {"executed_lines": [3, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 53, 54, 56, 57, 67, 68, 80, 81, 91, 92, 104], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "/data/dev/python/codecipher/github/codecipher/codecipher/vigenere/lookup_table.py": {"executed_lines": [3, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"LookUpTable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}}, "totals": {"covered_lines": 532, "num_statements": 558, "percent_covered": 95.3405017921147, "percent_covered_display": "95", "missing_lines": 26, "excluded_lines": 20}} \ No newline at end of file diff --git a/tests/codecipher_coverage.xml b/tests/codecipher_coverage.xml index 8f337c8..3778815 100644 --- a/tests/codecipher_coverage.xml +++ b/tests/codecipher_coverage.xml @@ -1,5 +1,5 @@ - + diff --git a/tests/htmlcov/class_index.html b/tests/htmlcov/class_index.html index 0ddaed4..0fd9c75 100644 --- a/tests/htmlcov/class_index.html +++ b/tests/htmlcov/class_index.html @@ -55,7 +55,7 @@

coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

@@ -428,7 +428,7 @@

coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

@@ -660,7 +660,7 @@

coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

@@ -243,7 +243,7 @@

coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_094bd7de807a5f14_decode_py.html b/tests/htmlcov/z_094bd7de807a5f14_decode_py.html index 7218067..f6a7049 100644 --- a/tests/htmlcov/z_094bd7de807a5f14_decode_py.html +++ b/tests/htmlcov/z_094bd7de807a5f14_decode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_094bd7de807a5f14_encode_py.html b/tests/htmlcov/z_094bd7de807a5f14_encode_py.html index 4619c1c..8d77450 100644 --- a/tests/htmlcov/z_094bd7de807a5f14_encode_py.html +++ b/tests/htmlcov/z_094bd7de807a5f14_encode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_75799433d8182c47___init___py.html b/tests/htmlcov/z_75799433d8182c47___init___py.html index f0c1251..819ff3c 100644 --- a/tests/htmlcov/z_75799433d8182c47___init___py.html +++ b/tests/htmlcov/z_75799433d8182c47___init___py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_75799433d8182c47_decode_py.html b/tests/htmlcov/z_75799433d8182c47_decode_py.html index 79a39bd..afff84c 100644 --- a/tests/htmlcov/z_75799433d8182c47_decode_py.html +++ b/tests/htmlcov/z_75799433d8182c47_decode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_75799433d8182c47_encode_py.html b/tests/htmlcov/z_75799433d8182c47_encode_py.html index a2cae74..85bd2f7 100644 --- a/tests/htmlcov/z_75799433d8182c47_encode_py.html +++ b/tests/htmlcov/z_75799433d8182c47_encode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_75799433d8182c47_key_generator_py.html b/tests/htmlcov/z_75799433d8182c47_key_generator_py.html index ba0771d..cf6e57a 100644 --- a/tests/htmlcov/z_75799433d8182c47_key_generator_py.html +++ b/tests/htmlcov/z_75799433d8182c47_key_generator_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_75799433d8182c47_lookup_table_py.html b/tests/htmlcov/z_75799433d8182c47_lookup_table_py.html index 75d4f03..df9690f 100644 --- a/tests/htmlcov/z_75799433d8182c47_lookup_table_py.html +++ b/tests/htmlcov/z_75799433d8182c47_lookup_table_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_7dc3960ecaf412e4___init___py.html b/tests/htmlcov/z_7dc3960ecaf412e4___init___py.html index 917e7f6..4c59764 100644 --- a/tests/htmlcov/z_7dc3960ecaf412e4___init___py.html +++ b/tests/htmlcov/z_7dc3960ecaf412e4___init___py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_8f54ab6b5b508ca0___init___py.html b/tests/htmlcov/z_8f54ab6b5b508ca0___init___py.html index 4f24da8..d76aca2 100644 --- a/tests/htmlcov/z_8f54ab6b5b508ca0___init___py.html +++ b/tests/htmlcov/z_8f54ab6b5b508ca0___init___py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_8f54ab6b5b508ca0_decode_py.html b/tests/htmlcov/z_8f54ab6b5b508ca0_decode_py.html index 24f7046..48f8f69 100644 --- a/tests/htmlcov/z_8f54ab6b5b508ca0_decode_py.html +++ b/tests/htmlcov/z_8f54ab6b5b508ca0_decode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_8f54ab6b5b508ca0_encode_py.html b/tests/htmlcov/z_8f54ab6b5b508ca0_encode_py.html index bef1331..8636a52 100644 --- a/tests/htmlcov/z_8f54ab6b5b508ca0_encode_py.html +++ b/tests/htmlcov/z_8f54ab6b5b508ca0_encode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_96938f9400a5cdf6___init___py.html b/tests/htmlcov/z_96938f9400a5cdf6___init___py.html index b7d9db0..46698d4 100644 --- a/tests/htmlcov/z_96938f9400a5cdf6___init___py.html +++ b/tests/htmlcov/z_96938f9400a5cdf6___init___py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_96938f9400a5cdf6_decode_py.html b/tests/htmlcov/z_96938f9400a5cdf6_decode_py.html index c22a718..6a76306 100644 --- a/tests/htmlcov/z_96938f9400a5cdf6_decode_py.html +++ b/tests/htmlcov/z_96938f9400a5cdf6_decode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_96938f9400a5cdf6_encode_py.html b/tests/htmlcov/z_96938f9400a5cdf6_encode_py.html index 1a5791e..56aa396 100644 --- a/tests/htmlcov/z_96938f9400a5cdf6_encode_py.html +++ b/tests/htmlcov/z_96938f9400a5cdf6_encode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_9927f90504198b80___init___py.html b/tests/htmlcov/z_9927f90504198b80___init___py.html index db404a7..b5b303c 100644 --- a/tests/htmlcov/z_9927f90504198b80___init___py.html +++ b/tests/htmlcov/z_9927f90504198b80___init___py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_9927f90504198b80_decode_py.html b/tests/htmlcov/z_9927f90504198b80_decode_py.html index 90c1414..e09298e 100644 --- a/tests/htmlcov/z_9927f90504198b80_decode_py.html +++ b/tests/htmlcov/z_9927f90504198b80_decode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100

diff --git a/tests/htmlcov/z_9927f90504198b80_encode_py.html b/tests/htmlcov/z_9927f90504198b80_encode_py.html index eca89be..f5fec96 100644 --- a/tests/htmlcov/z_9927f90504198b80_encode_py.html +++ b/tests/htmlcov/z_9927f90504198b80_encode_py.html @@ -65,7 +65,7 @@

» next       coverage.py v7.6.10, - created at 2025-11-01 07:55 +0100 + created at 2025-11-03 18:18 +0100