X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=szyfrow%2Fcadenus.py;h=b56500c6de1f01df5d602664b04731cb5008429d;hb=3350a462f460e81d96c587466f5b6a88cbba1f7e;hp=433ad19c678b64c867bf33f6c681909b78a94b92;hpb=a870050db6bc974b1bb0d132001750b6624fb43f;p=szyfrow.git

diff --git a/szyfrow/cadenus.py b/szyfrow/cadenus.py
index 433ad19..b56500c 100644
--- a/szyfrow/cadenus.py
+++ b/szyfrow/cadenus.py
@@ -1,10 +1,9 @@
 from itertools import chain
 import multiprocessing
-from support.utilities import *
-from support.language_models import *
-from cipher.column_transposition import transpositions_of
+from szyfrow.support.utilities import *
+from szyfrow.support.language_models import *
+from szyfrow.column_transposition import transpositions_of
 
-from logger import logger
 
 def make_cadenus_keycolumn(doubled_letters = 'vw', start='a', reverse=False):
     """Makes the key column for a Cadenus cipher (the column down between the
@@ -98,7 +97,7 @@ def cadenus_break(message, words=keywords,
     doubled_letters='vw', fitness=Pbigrams):
     c = make_cadenus_keycolumn(reverse=True)
     valid_words = [w for w in words 
-        if max(transpositions_of(w)) <= len(c)]
+        if len(transpositions_of(w)) == len(message) // 25]
     with multiprocessing.Pool() as pool:
         results = pool.starmap(cadenus_break_worker, 
                 [(message, w, 
@@ -108,16 +107,17 @@ def cadenus_break(message, words=keywords,
                 for w in words 
                 for s in string.ascii_lowercase 
                 for r in [True, False]
-                if max(transpositions_of(w)) <= len(
-                    make_cadenus_keycolumn(
-                        doubled_letters=doubled_letters, start=s, reverse=r))
+                # if max(transpositions_of(w)) <= len(
+                #     make_cadenus_keycolumn(
+                #         doubled_letters=doubled_letters, start=s, reverse=r))
                 ])
     # return list(results)
     return max(results, key=lambda k: k[1])
 
 def cadenus_break_worker(message, keyword, keycolumn, fitness):
-    message_chunks = chunks(message, 175)
-    plaintext = ''.join(cadenus_decipher(c, keyword, keycolumn) for c in message_chunks)
+    # message_chunks = chunks(message, 175)
+    # plaintext = ''.join(cadenus_decipher(c, keyword, keycolumn) for c in message_chunks)
+    plaintext = cadenus_decipher(message, keyword, keycolumn)
     fit = fitness(plaintext)
     return (keyword, keycolumn), fit