Minor documentation updates docs main
authorNeil Smith <neil.git@njae.me.uk>
Thu, 29 Apr 2021 16:49:32 +0000 (17:49 +0100)
committerNeil Smith <neil.git@njae.me.uk>
Thu, 29 Apr 2021 16:49:32 +0000 (17:49 +0100)
README.md
setup.py
szyfrow/__init__.py

index 865e8ec248aa821a4b484ec42dae59357edb7b9a..91ad22e95a538cc02ca46b3e8e8f7e9fbc3d0e49 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,4 +1,28 @@
 # Szyfow ciphers
 
 # Szyfow ciphers
 
-Various tools for enciphering, deciphering, and breaking simple (manual) ciphers.
+Simple (mainly manual) ciphers, and routines for enciphering, deciphering, 
+and breaking messages created with them.
 
 
+The ciphers implemented here are mostly ones that predate mechanical cipher
+systems. The most complex cipher is the Enigma of World War II.
+
+Each cipher is presented with functions to encipher, decipher, and 
+automatically break messages with that cipher.
+
+Most of the time, messages are broken by brute-force trying each possible key
+and scoring the resulting deciphered message using a bag-of-words probability
+measure (or a bag-of-bigrams, or a bag-of-trigrams).
+
+You can find more information on the ciphers and how they are implemented in
+the [codes and ciphers area of my blog](https://work.njae.me.uk/tag/codes-and-ciphers/).
+
+Ciphers work on messages encoded with the 26 letters of the Latin alphabet,
+without accents (the letters contained in the `string.ascii_letters` constant).
+Most of the ciphers convert letters to lowercase, strip accents from letters,
+and drop all other characters (such as spaces and punctuation).
+
+`szyfrow.support.text_prettify` contains functions to make the output easier
+to read, such as automatically recovering word boundaries.
+
+The name comes from the Polish cipher bureau, the Biuro Szyfrów, who were 
+breaking Enigma ciphers by hand before World War II.
index e585ed4d2e5b6e898f43e5dc11165a27d793bbc6..ff3747a18941c5fd2af2f7296187a40b9b72bc61 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -5,13 +5,16 @@ with open("README.md", "r") as fh:
 
 setuptools.setup(
     name="szyfrow",
 
 setuptools.setup(
     name="szyfrow",
-    version="0.0.6",
+    version="0.0.7",
     author="Neil Smith",
     author_email="neil.szyfrow@njae.me.uk",
     description="Tools for using and breaking simple ciphers",
     long_description=long_description,
     long_description_content_type="text/markdown",
     url="https://github.com/NeilNjae/szyfrow",
     author="Neil Smith",
     author_email="neil.szyfrow@njae.me.uk",
     description="Tools for using and breaking simple ciphers",
     long_description=long_description,
     long_description_content_type="text/markdown",
     url="https://github.com/NeilNjae/szyfrow",
+    project_urls={
+        "Documentation": "https://neilnjae.github.io/szyfrow/szyfrow/index.html",
+    },
     packages=setuptools.find_packages(),
     classifiers=[
         "Programming Language :: Python :: 3",
     packages=setuptools.find_packages(),
     classifiers=[
         "Programming Language :: Python :: 3",
index 4419d0839c7ccf4455df33f8b7cb0750eafcce9c..623c242801b76599a51f7e19165c0198de22519a 100644 (file)
@@ -1,4 +1,5 @@
-"""Simple ciphers, enciphering, deciphering, and breaking.
+"""Simple (mainly manual) ciphers, and routines for enciphering, deciphering, 
+and breaking messages created with them.
 
 The ciphers implemented here are mostly ones that predate mechanical cipher
 systems. The most complex cipher is the Enigma of World War II.
 
 The ciphers implemented here are mostly ones that predate mechanical cipher
 systems. The most complex cipher is the Enigma of World War II.