From 2ce918672b98ffb3b05706b1b8205ddf64025cb9 Mon Sep 17 00:00:00 2001 From: Vladimir Roncevic Date: Mon, 3 Nov 2025 18:18:52 +0100 Subject: [PATCH] [codecipher] Update docs, version --- codecipher/a1z52n62/__init__.py | 2 +- codecipher/a1z52n62/decode.py | 2 +- codecipher/a1z52n62/encode.py | 2 +- codecipher/atbs/__init__.py | 2 +- codecipher/atbs/decode.py | 2 +- codecipher/atbs/encode.py | 2 +- codecipher/atbs/lookup_table.py | 2 +- codecipher/b64/__init__.py | 2 +- codecipher/b64/decode.py | 2 +- codecipher/b64/encode.py | 2 +- codecipher/caesar/__init__.py | 2 +- codecipher/caesar/decode.py | 2 +- codecipher/caesar/encode.py | 2 +- codecipher/vernam/__init__.py | 2 +- codecipher/vernam/decode.py | 2 +- codecipher/vernam/encode.py | 2 +- codecipher/vigenere/__init__.py | 2 +- codecipher/vigenere/decode.py | 2 +- codecipher/vigenere/encode.py | 2 +- codecipher/vigenere/key_generator.py | 2 +- codecipher/vigenere/lookup_table.py | 2 +- docs/build/doctrees/environment.pickle | Bin 765616 -> 765616 bytes .../html/_modules/codecipher/a1z52n62.html | 2 +- .../_modules/codecipher/a1z52n62/decode.html | 2 +- .../_modules/codecipher/a1z52n62/encode.html | 2 +- docs/build/html/_modules/codecipher/atbs.html | 2 +- .../html/_modules/codecipher/atbs/decode.html | 2 +- .../html/_modules/codecipher/atbs/encode.html | 2 +- docs/build/html/_modules/codecipher/b64.html | 2 +- .../html/_modules/codecipher/b64/decode.html | 2 +- .../html/_modules/codecipher/b64/encode.html | 2 +- .../html/_modules/codecipher/caesar.html | 2 +- .../_modules/codecipher/caesar/decode.html | 2 +- .../_modules/codecipher/caesar/encode.html | 2 +- .../html/_modules/codecipher/vernam.html | 2 +- .../_modules/codecipher/vernam/decode.html | 2 +- .../_modules/codecipher/vernam/encode.html | 2 +- .../html/_modules/codecipher/vigenere.html | 2 +- .../_modules/codecipher/vigenere/decode.html | 2 +- .../_modules/codecipher/vigenere/encode.html | 2 +- .../codecipher/vigenere/key_generator.html | 2 +- .../codecipher/vigenere/lookup_table.html | 2 +- docs/build/html/objects.inv | Bin 1243 -> 1243 bytes docs/source/conf.py | 2 +- setup.py | 4 ++-- tests/a1z52n62_test.py | 2 +- tests/atbs_test.py | 2 +- tests/b64_test.py | 2 +- tests/caesar_test.py | 2 +- tests/codecipher_coverage.json | 2 +- tests/codecipher_coverage.xml | 2 +- tests/htmlcov/class_index.html | 4 ++-- tests/htmlcov/function_index.html | 4 ++-- tests/htmlcov/index.html | 4 ++-- tests/htmlcov/status.json | 2 +- .../z_094bd7de807a5f14___init___py.html | 6 +++--- .../htmlcov/z_094bd7de807a5f14_decode_py.html | 6 +++--- .../htmlcov/z_094bd7de807a5f14_encode_py.html | 6 +++--- .../z_75799433d8182c47___init___py.html | 6 +++--- .../htmlcov/z_75799433d8182c47_decode_py.html | 6 +++--- .../htmlcov/z_75799433d8182c47_encode_py.html | 6 +++--- .../z_75799433d8182c47_key_generator_py.html | 6 +++--- .../z_75799433d8182c47_lookup_table_py.html | 6 +++--- .../z_7dc3960ecaf412e4___init___py.html | 4 ++-- .../z_8f54ab6b5b508ca0___init___py.html | 6 +++--- .../htmlcov/z_8f54ab6b5b508ca0_decode_py.html | 6 +++--- .../htmlcov/z_8f54ab6b5b508ca0_encode_py.html | 6 +++--- .../z_96938f9400a5cdf6___init___py.html | 6 +++--- .../htmlcov/z_96938f9400a5cdf6_decode_py.html | 6 +++--- .../htmlcov/z_96938f9400a5cdf6_encode_py.html | 6 +++--- .../z_9927f90504198b80___init___py.html | 6 +++--- .../htmlcov/z_9927f90504198b80_decode_py.html | 6 +++--- .../htmlcov/z_9927f90504198b80_encode_py.html | 6 +++--- .../z_9927f90504198b80_lookup_table_py.html | 6 +++--- .../z_aba196749d301797___init___py.html | 6 +++--- .../htmlcov/z_aba196749d301797_decode_py.html | 6 +++--- .../htmlcov/z_aba196749d301797_encode_py.html | 6 +++--- tests/vernam_test.py | 2 +- tests/vigenere_test.py | 2 +- 79 files changed, 124 insertions(+), 124 deletions(-) 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 364a3e079c4fc33ea9d23587c6b3b21d09b8e054..2c46fc718596c89ab1ba20f387b06e4d6809657a 100644 GIT binary patch delta 8815 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 delta 8970 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 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 28c94bec193212a106fe14c83e6c25e3b6b04494..4302aa6a9805df05abce10b81e6d3a26b49f0dde 100644 GIT binary patch delta 12 Tcmcc3d7E>B6Qkuu=NT*jAH)P@ delta 12 Tcmcc3d7E>B6QjjO=NT*jAHM`- 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