codext 1.15.10__tar.gz → 1.15.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. {codext-1.15.10 → codext-1.15.11}/PKG-INFO +1 -1
  2. {codext-1.15.10 → codext-1.15.11}/docs/coverage.svg +1 -1
  3. codext-1.15.11/src/codext/VERSION.txt +1 -0
  4. {codext-1.15.10 → codext-1.15.11}/src/codext/binary/baudot.py +1 -1
  5. codext-1.15.11/src/codext/hashing/crypt.py +36 -0
  6. {codext-1.15.10 → codext-1.15.11}/src/codext/hashing/md.py +1 -0
  7. {codext-1.15.10 → codext-1.15.11}/src/codext.egg-info/PKG-INFO +1 -1
  8. {codext-1.15.10 → codext-1.15.11}/tests/test_manual.py +6 -2
  9. codext-1.15.10/src/codext/VERSION.txt +0 -1
  10. codext-1.15.10/src/codext/hashing/crypt.py +0 -32
  11. {codext-1.15.10 → codext-1.15.11}/.coveragerc +0 -0
  12. {codext-1.15.10 → codext-1.15.11}/.github/workflows/python-package.yml +0 -0
  13. {codext-1.15.10 → codext-1.15.11}/.gitignore +0 -0
  14. {codext-1.15.10 → codext-1.15.11}/.readthedocs.yml +0 -0
  15. {codext-1.15.10 → codext-1.15.11}/LICENSE +0 -0
  16. {codext-1.15.10 → codext-1.15.11}/README.md +0 -0
  17. {codext-1.15.10 → codext-1.15.11}/docs/mkdocs.yml +0 -0
  18. {codext-1.15.10 → codext-1.15.11}/docs/pages/cli.md +0 -0
  19. {codext-1.15.10 → codext-1.15.11}/docs/pages/css/extra.css +0 -0
  20. {codext-1.15.10 → codext-1.15.11}/docs/pages/demos/using-bases.gif +0 -0
  21. {codext-1.15.10 → codext-1.15.11}/docs/pages/demos/using-codext.gif +0 -0
  22. {codext-1.15.10 → codext-1.15.11}/docs/pages/demos/using-debase.gif +0 -0
  23. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/base.md +0 -0
  24. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/binary.md +0 -0
  25. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/common.md +0 -0
  26. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/compressions.md +0 -0
  27. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/crypto.md +0 -0
  28. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/hashing.md +0 -0
  29. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/languages.md +0 -0
  30. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/others.md +0 -0
  31. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/stegano.md +0 -0
  32. {codext-1.15.10 → codext-1.15.11}/docs/pages/enc/web.md +0 -0
  33. {codext-1.15.10 → codext-1.15.11}/docs/pages/features.md +0 -0
  34. {codext-1.15.10 → codext-1.15.11}/docs/pages/guessing.md +0 -0
  35. {codext-1.15.10 → codext-1.15.11}/docs/pages/howto.md +0 -0
  36. {codext-1.15.10 → codext-1.15.11}/docs/pages/img/banner.png +0 -0
  37. {codext-1.15.10 → codext-1.15.11}/docs/pages/img/icon.png +0 -0
  38. {codext-1.15.10 → codext-1.15.11}/docs/pages/img/logo.png +0 -0
  39. {codext-1.15.10 → codext-1.15.11}/docs/pages/index.md +0 -0
  40. {codext-1.15.10 → codext-1.15.11}/docs/pages/manipulations.md +0 -0
  41. {codext-1.15.10 → codext-1.15.11}/docs/requirements.txt +0 -0
  42. {codext-1.15.10 → codext-1.15.11}/pyproject.toml +0 -0
  43. {codext-1.15.10 → codext-1.15.11}/pytest.ini +0 -0
  44. {codext-1.15.10 → codext-1.15.11}/requirements.txt +0 -0
  45. {codext-1.15.10 → codext-1.15.11}/setup.cfg +0 -0
  46. {codext-1.15.10 → codext-1.15.11}/src/codext/__common__.py +0 -0
  47. {codext-1.15.10 → codext-1.15.11}/src/codext/__info__.py +0 -0
  48. {codext-1.15.10 → codext-1.15.11}/src/codext/__init__.py +0 -0
  49. {codext-1.15.10 → codext-1.15.11}/src/codext/base/__init__.py +0 -0
  50. {codext-1.15.10 → codext-1.15.11}/src/codext/base/_base.py +0 -0
  51. {codext-1.15.10 → codext-1.15.11}/src/codext/base/_base2n.py +0 -0
  52. {codext-1.15.10 → codext-1.15.11}/src/codext/base/base100.py +0 -0
  53. {codext-1.15.10 → codext-1.15.11}/src/codext/base/base122.py +0 -0
  54. {codext-1.15.10 → codext-1.15.11}/src/codext/base/base45.py +0 -0
  55. {codext-1.15.10 → codext-1.15.11}/src/codext/base/base85.py +0 -0
  56. {codext-1.15.10 → codext-1.15.11}/src/codext/base/base91.py +0 -0
  57. {codext-1.15.10 → codext-1.15.11}/src/codext/base/baseN.py +0 -0
  58. {codext-1.15.10 → codext-1.15.11}/src/codext/binary/__init__.py +0 -0
  59. {codext-1.15.10 → codext-1.15.11}/src/codext/binary/bcd.py +0 -0
  60. {codext-1.15.10 → codext-1.15.11}/src/codext/binary/excess3.py +0 -0
  61. {codext-1.15.10 → codext-1.15.11}/src/codext/binary/gray.py +0 -0
  62. {codext-1.15.10 → codext-1.15.11}/src/codext/binary/manchester.py +0 -0
  63. {codext-1.15.10 → codext-1.15.11}/src/codext/binary/rotate.py +0 -0
  64. {codext-1.15.10 → codext-1.15.11}/src/codext/common/__init__.py +0 -0
  65. {codext-1.15.10 → codext-1.15.11}/src/codext/common/a1z26.py +0 -0
  66. {codext-1.15.10 → codext-1.15.11}/src/codext/common/cases.py +0 -0
  67. {codext-1.15.10 → codext-1.15.11}/src/codext/common/dummy.py +0 -0
  68. {codext-1.15.10 → codext-1.15.11}/src/codext/common/octal.py +0 -0
  69. {codext-1.15.10 → codext-1.15.11}/src/codext/common/ordinal.py +0 -0
  70. {codext-1.15.10 → codext-1.15.11}/src/codext/compressions/__init__.py +0 -0
  71. {codext-1.15.10 → codext-1.15.11}/src/codext/compressions/gzipp.py +0 -0
  72. {codext-1.15.10 → codext-1.15.11}/src/codext/compressions/lz77.py +0 -0
  73. {codext-1.15.10 → codext-1.15.11}/src/codext/compressions/lz78.py +0 -0
  74. {codext-1.15.10 → codext-1.15.11}/src/codext/compressions/pkzip.py +0 -0
  75. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/__init__.py +0 -0
  76. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/affine.py +0 -0
  77. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/atbash.py +0 -0
  78. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/bacon.py +0 -0
  79. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/barbie.py +0 -0
  80. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/citrix.py +0 -0
  81. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/railfence.py +0 -0
  82. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/rot.py +0 -0
  83. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/scytale.py +0 -0
  84. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/shift.py +0 -0
  85. {codext-1.15.10 → codext-1.15.11}/src/codext/crypto/xor.py +0 -0
  86. {codext-1.15.10 → codext-1.15.11}/src/codext/hashing/__init__.py +0 -0
  87. {codext-1.15.10 → codext-1.15.11}/src/codext/hashing/blake.py +0 -0
  88. {codext-1.15.10 → codext-1.15.11}/src/codext/hashing/checksums.py +0 -0
  89. {codext-1.15.10 → codext-1.15.11}/src/codext/hashing/mmh3.py +0 -0
  90. {codext-1.15.10 → codext-1.15.11}/src/codext/hashing/sha.py +0 -0
  91. {codext-1.15.10 → codext-1.15.11}/src/codext/hashing/shake.py +0 -0
  92. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/__init__.py +0 -0
  93. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/braille.py +0 -0
  94. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/galactic.py +0 -0
  95. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/ipsum.py +0 -0
  96. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/leetspeak.py +0 -0
  97. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/morse.py +0 -0
  98. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/navajo.py +0 -0
  99. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/radio.py +0 -0
  100. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/southpark.py +0 -0
  101. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/tap.py +0 -0
  102. {codext-1.15.10 → codext-1.15.11}/src/codext/languages/tomtom.py +0 -0
  103. {codext-1.15.10 → codext-1.15.11}/src/codext/macros.json +0 -0
  104. {codext-1.15.10 → codext-1.15.11}/src/codext/others/__init__.py +0 -0
  105. {codext-1.15.10 → codext-1.15.11}/src/codext/others/dna.py +0 -0
  106. {codext-1.15.10 → codext-1.15.11}/src/codext/others/kbshift.py +0 -0
  107. {codext-1.15.10 → codext-1.15.11}/src/codext/others/letters.py +0 -0
  108. {codext-1.15.10 → codext-1.15.11}/src/codext/others/markdown.py +0 -0
  109. {codext-1.15.10 → codext-1.15.11}/src/codext/others/uuencode.py +0 -0
  110. {codext-1.15.10 → codext-1.15.11}/src/codext/stegano/__init__.py +0 -0
  111. {codext-1.15.10 → codext-1.15.11}/src/codext/stegano/hexagram.py +0 -0
  112. {codext-1.15.10 → codext-1.15.11}/src/codext/stegano/klopf.py +0 -0
  113. {codext-1.15.10 → codext-1.15.11}/src/codext/stegano/resistor.py +0 -0
  114. {codext-1.15.10 → codext-1.15.11}/src/codext/stegano/rick.py +0 -0
  115. {codext-1.15.10 → codext-1.15.11}/src/codext/stegano/sms.py +0 -0
  116. {codext-1.15.10 → codext-1.15.11}/src/codext/stegano/whitespace.py +0 -0
  117. {codext-1.15.10 → codext-1.15.11}/src/codext/web/__init__.py +0 -0
  118. {codext-1.15.10 → codext-1.15.11}/src/codext/web/html.py +0 -0
  119. {codext-1.15.10 → codext-1.15.11}/src/codext/web/url.py +0 -0
  120. {codext-1.15.10 → codext-1.15.11}/src/codext.egg-info/SOURCES.txt +0 -0
  121. {codext-1.15.10 → codext-1.15.11}/src/codext.egg-info/dependency_links.txt +0 -0
  122. {codext-1.15.10 → codext-1.15.11}/src/codext.egg-info/entry_points.txt +0 -0
  123. {codext-1.15.10 → codext-1.15.11}/src/codext.egg-info/requires.txt +0 -0
  124. {codext-1.15.10 → codext-1.15.11}/src/codext.egg-info/top_level.txt +0 -0
  125. {codext-1.15.10 → codext-1.15.11}/tests/__init__.py +0 -0
  126. {codext-1.15.10 → codext-1.15.11}/tests/test_base.py +0 -0
  127. {codext-1.15.10 → codext-1.15.11}/tests/test_common.py +0 -0
  128. {codext-1.15.10 → codext-1.15.11}/tests/test_generated.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codext
3
- Version: 1.15.10
3
+ Version: 1.15.11
4
4
  Summary: Native codecs extension
5
5
  Author-email: Alexandre D'Hondt <alexandre.dhondt@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 99.04%"><title>coverage: 99.04%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#4c1"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="865" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="430">99.04%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">99.04%</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 98.83%"><title>coverage: 98.83%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#4c1"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="865" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="430">98.83%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">98.83%</text></g></svg>
@@ -0,0 +1 @@
1
+ 1.15.11
@@ -102,7 +102,7 @@ ITA2_METEO = [
102
102
  # Russian MTK-2 alphabet (source: https://fr.qwe.wiki/wiki/Baudot_code)
103
103
  MTK2 = [
104
104
  "11111", "11011",
105
- "\x00Е\n\xff СИУ\r\xffРЙНФЦКТЗЛВХЫПЯОБГ\xffМЬЖ\xff",
105
+ "\x00Е\nA СИУ\r\xffРЙНФЦКТЗЛВХЫПЯОБГ\xffМЬЖ\xff",
106
106
  "\x003\n- '87\r\xff4Ю,Э:(5+)2Щ6019?Ш\xff./=\xff",
107
107
  ]
108
108
  # Murray code ; NB: not all fractions are supported (source: https://en.wikipedia.org/wiki/Baudot_code)
@@ -0,0 +1,36 @@
1
+ # -*- coding: UTF-8 -*-
2
+ """Crypt Hashing Codec - string hashing with Unix's Crypt.
3
+
4
+ These are codecs for hashing strings, for use with other codecs in encoding chains.
5
+
6
+ These codecs:
7
+ - transform strings from str to str
8
+ - transform strings from bytes to bytes
9
+ - transform file content from str to bytes (write)
10
+ """
11
+ from ..__common__ import add, ensure_str, UNIX
12
+
13
+
14
+ if UNIX:
15
+ try:
16
+ import crypt
17
+ except ImportError:
18
+ try:
19
+ import legacycrypt as crypt
20
+ except ImportError:
21
+ crypt = None
22
+
23
+ if crypt is not None:
24
+ METHODS = [x[7:].lower() for x in crypt.__dict__ if x.startswith("METHOD_")]
25
+
26
+ def crypt_hash(method):
27
+ method = (method or "").lstrip("-_") or "blowfish"
28
+ if method not in METHODS:
29
+ raise NotImplementedError("method '%s' is not implemented" % method)
30
+ def _encode(input, error="strict"):
31
+ m = getattr(crypt, "METHOD_" + method.upper())
32
+ return crypt.crypt(ensure_str(input), crypt.mksalt(m)), len(input)
33
+ return _encode
34
+
35
+ add("crypt", crypt_hash, pattern=r"^crypt(|[-_](?:%s))$" % "|".join(METHODS), guess=None)
36
+
@@ -56,3 +56,4 @@ add("md2", lambda s, error="strict": (md2(s), len(s)), guess=None)
56
56
  add("md5", lambda s, error="strict": (hashlib.new("md5", b(s)).hexdigest(), len(s)), guess=None)
57
57
  if "md4" in hashlib.algorithms_available:
58
58
  add("md4", lambda s, error="strict": (hashlib.new("md4", b(s)).hexdigest(), len(s)), guess=None)
59
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codext
3
- Version: 1.15.10
3
+ Version: 1.15.11
4
4
  Summary: Native codecs extension
5
5
  Author-email: Alexandre D'Hondt <alexandre.dhondt@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -128,8 +128,12 @@ class ManualTestCase(TestCase):
128
128
  try:
129
129
  import crypt
130
130
  except ImportError:
131
- import legacycrypt as crypt
132
- METHODS = [x[7:].lower() for x in crypt.__dict__ if x.startswith("METHOD_")]
131
+ try:
132
+ import legacycrypt as crypt
133
+ except ImportError:
134
+ crypt = None
135
+ METHODS = [x[7:].lower() for x in crypt.__dict__ if x.startswith("METHOD_")] \
136
+ if crypt is not None else []
133
137
  for m in METHODS:
134
138
  h = "crypt-" + m
135
139
  self.assertIsNotNone(codecs.encode(STR, h))
@@ -1 +0,0 @@
1
- 1.15.10
@@ -1,32 +0,0 @@
1
- # -*- coding: UTF-8 -*-
2
- """Crypt Hashing Codec - string hashing with Unix's Crypt.
3
-
4
- These are codecs for hashing strings, for use with other codecs in encoding chains.
5
-
6
- These codecs:
7
- - transform strings from str to str
8
- - transform strings from bytes to bytes
9
- - transform file content from str to bytes (write)
10
- """
11
- from ..__common__ import add, ensure_str, UNIX
12
-
13
-
14
- if UNIX:
15
- try:
16
- import crypt
17
- except ImportError:
18
- import legacycrypt as crypt
19
-
20
- METHODS = [x[7:].lower() for x in crypt.__dict__ if x.startswith("METHOD_")]
21
-
22
- def crypt_hash(method):
23
- method = (method or "").lstrip("-_") or "blowfish"
24
- if method not in METHODS:
25
- raise NotImplementedError("method '%s' is not implemented" % method)
26
- def _encode(input, error="strict"):
27
- m = getattr(crypt, "METHOD_" + method.upper())
28
- return crypt.crypt(ensure_str(input), crypt.mksalt(m)), len(input)
29
- return _encode
30
-
31
- add("crypt", crypt_hash, pattern=r"^crypt(|[-_](?:%s))$" % "|".join(METHODS), guess=None)
32
-
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes