codext 1.15.2__tar.gz → 1.15.4__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.2 → codext-1.15.4}/.github/workflows/python-package.yml +2 -2
  2. {codext-1.15.2 → codext-1.15.4}/PKG-INFO +2 -1
  3. {codext-1.15.2 → codext-1.15.4}/docs/coverage.svg +1 -1
  4. {codext-1.15.2 → codext-1.15.4}/pyproject.toml +1 -0
  5. codext-1.15.4/requirements.txt +1 -0
  6. codext-1.15.4/src/codext/VERSION.txt +1 -0
  7. {codext-1.15.2 → codext-1.15.4}/src/codext/base/_base.py +5 -1
  8. {codext-1.15.2 → codext-1.15.4}/src/codext.egg-info/PKG-INFO +2 -1
  9. {codext-1.15.2 → codext-1.15.4}/tests/test_base.py +0 -7
  10. codext-1.15.2/requirements.txt +0 -1
  11. codext-1.15.2/src/codext/VERSION.txt +0 -1
  12. {codext-1.15.2 → codext-1.15.4}/.coveragerc +0 -0
  13. {codext-1.15.2 → codext-1.15.4}/.github/workflows/pypi-publish.yml +0 -0
  14. {codext-1.15.2 → codext-1.15.4}/.gitignore +0 -0
  15. {codext-1.15.2 → codext-1.15.4}/.readthedocs.yml +0 -0
  16. {codext-1.15.2 → codext-1.15.4}/LICENSE +0 -0
  17. {codext-1.15.2 → codext-1.15.4}/README.md +0 -0
  18. {codext-1.15.2 → codext-1.15.4}/docs/mkdocs.yml +0 -0
  19. {codext-1.15.2 → codext-1.15.4}/docs/pages/cli.md +0 -0
  20. {codext-1.15.2 → codext-1.15.4}/docs/pages/css/extra.css +0 -0
  21. {codext-1.15.2 → codext-1.15.4}/docs/pages/demos/using-bases.gif +0 -0
  22. {codext-1.15.2 → codext-1.15.4}/docs/pages/demos/using-codext.gif +0 -0
  23. {codext-1.15.2 → codext-1.15.4}/docs/pages/demos/using-debase.gif +0 -0
  24. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/base.md +0 -0
  25. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/binary.md +0 -0
  26. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/common.md +0 -0
  27. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/compressions.md +0 -0
  28. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/crypto.md +0 -0
  29. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/hashing.md +0 -0
  30. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/languages.md +0 -0
  31. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/others.md +0 -0
  32. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/stegano.md +0 -0
  33. {codext-1.15.2 → codext-1.15.4}/docs/pages/enc/web.md +0 -0
  34. {codext-1.15.2 → codext-1.15.4}/docs/pages/features.md +0 -0
  35. {codext-1.15.2 → codext-1.15.4}/docs/pages/guessing.md +0 -0
  36. {codext-1.15.2 → codext-1.15.4}/docs/pages/howto.md +0 -0
  37. {codext-1.15.2 → codext-1.15.4}/docs/pages/img/banner.png +0 -0
  38. {codext-1.15.2 → codext-1.15.4}/docs/pages/img/icon.png +0 -0
  39. {codext-1.15.2 → codext-1.15.4}/docs/pages/img/logo.png +0 -0
  40. {codext-1.15.2 → codext-1.15.4}/docs/pages/index.md +0 -0
  41. {codext-1.15.2 → codext-1.15.4}/docs/pages/manipulations.md +0 -0
  42. {codext-1.15.2 → codext-1.15.4}/docs/requirements.txt +0 -0
  43. {codext-1.15.2 → codext-1.15.4}/pytest.ini +0 -0
  44. {codext-1.15.2 → codext-1.15.4}/setup.cfg +0 -0
  45. {codext-1.15.2 → codext-1.15.4}/src/codext/__common__.py +0 -0
  46. {codext-1.15.2 → codext-1.15.4}/src/codext/__info__.py +0 -0
  47. {codext-1.15.2 → codext-1.15.4}/src/codext/__init__.py +0 -0
  48. {codext-1.15.2 → codext-1.15.4}/src/codext/base/__init__.py +0 -0
  49. {codext-1.15.2 → codext-1.15.4}/src/codext/base/_base2n.py +0 -0
  50. {codext-1.15.2 → codext-1.15.4}/src/codext/base/base100.py +0 -0
  51. {codext-1.15.2 → codext-1.15.4}/src/codext/base/base122.py +0 -0
  52. {codext-1.15.2 → codext-1.15.4}/src/codext/base/base45.py +0 -0
  53. {codext-1.15.2 → codext-1.15.4}/src/codext/base/base85.py +0 -0
  54. {codext-1.15.2 → codext-1.15.4}/src/codext/base/base91.py +0 -0
  55. {codext-1.15.2 → codext-1.15.4}/src/codext/base/baseN.py +0 -0
  56. {codext-1.15.2 → codext-1.15.4}/src/codext/binary/__init__.py +0 -0
  57. {codext-1.15.2 → codext-1.15.4}/src/codext/binary/baudot.py +0 -0
  58. {codext-1.15.2 → codext-1.15.4}/src/codext/binary/bcd.py +0 -0
  59. {codext-1.15.2 → codext-1.15.4}/src/codext/binary/excess3.py +0 -0
  60. {codext-1.15.2 → codext-1.15.4}/src/codext/binary/gray.py +0 -0
  61. {codext-1.15.2 → codext-1.15.4}/src/codext/binary/manchester.py +0 -0
  62. {codext-1.15.2 → codext-1.15.4}/src/codext/binary/rotate.py +0 -0
  63. {codext-1.15.2 → codext-1.15.4}/src/codext/common/__init__.py +0 -0
  64. {codext-1.15.2 → codext-1.15.4}/src/codext/common/a1z26.py +0 -0
  65. {codext-1.15.2 → codext-1.15.4}/src/codext/common/cases.py +0 -0
  66. {codext-1.15.2 → codext-1.15.4}/src/codext/common/dummy.py +0 -0
  67. {codext-1.15.2 → codext-1.15.4}/src/codext/common/octal.py +0 -0
  68. {codext-1.15.2 → codext-1.15.4}/src/codext/common/ordinal.py +0 -0
  69. {codext-1.15.2 → codext-1.15.4}/src/codext/compressions/__init__.py +0 -0
  70. {codext-1.15.2 → codext-1.15.4}/src/codext/compressions/gzipp.py +0 -0
  71. {codext-1.15.2 → codext-1.15.4}/src/codext/compressions/lz77.py +0 -0
  72. {codext-1.15.2 → codext-1.15.4}/src/codext/compressions/lz78.py +0 -0
  73. {codext-1.15.2 → codext-1.15.4}/src/codext/compressions/pkzip.py +0 -0
  74. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/__init__.py +0 -0
  75. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/affine.py +0 -0
  76. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/atbash.py +0 -0
  77. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/bacon.py +0 -0
  78. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/barbie.py +0 -0
  79. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/citrix.py +0 -0
  80. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/railfence.py +0 -0
  81. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/rot.py +0 -0
  82. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/scytale.py +0 -0
  83. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/shift.py +0 -0
  84. {codext-1.15.2 → codext-1.15.4}/src/codext/crypto/xor.py +0 -0
  85. {codext-1.15.2 → codext-1.15.4}/src/codext/hashing/__init__.py +0 -0
  86. {codext-1.15.2 → codext-1.15.4}/src/codext/hashing/blake.py +0 -0
  87. {codext-1.15.2 → codext-1.15.4}/src/codext/hashing/checksums.py +0 -0
  88. {codext-1.15.2 → codext-1.15.4}/src/codext/hashing/crypt.py +0 -0
  89. {codext-1.15.2 → codext-1.15.4}/src/codext/hashing/md.py +0 -0
  90. {codext-1.15.2 → codext-1.15.4}/src/codext/hashing/sha.py +0 -0
  91. {codext-1.15.2 → codext-1.15.4}/src/codext/hashing/shake.py +0 -0
  92. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/__init__.py +0 -0
  93. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/braille.py +0 -0
  94. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/galactic.py +0 -0
  95. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/ipsum.py +0 -0
  96. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/leetspeak.py +0 -0
  97. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/morse.py +0 -0
  98. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/navajo.py +0 -0
  99. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/radio.py +0 -0
  100. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/southpark.py +0 -0
  101. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/tap.py +0 -0
  102. {codext-1.15.2 → codext-1.15.4}/src/codext/languages/tomtom.py +0 -0
  103. {codext-1.15.2 → codext-1.15.4}/src/codext/macros.json +0 -0
  104. {codext-1.15.2 → codext-1.15.4}/src/codext/others/__init__.py +0 -0
  105. {codext-1.15.2 → codext-1.15.4}/src/codext/others/dna.py +0 -0
  106. {codext-1.15.2 → codext-1.15.4}/src/codext/others/kbshift.py +0 -0
  107. {codext-1.15.2 → codext-1.15.4}/src/codext/others/letters.py +0 -0
  108. {codext-1.15.2 → codext-1.15.4}/src/codext/others/markdown.py +0 -0
  109. {codext-1.15.2 → codext-1.15.4}/src/codext/others/uuencode.py +0 -0
  110. {codext-1.15.2 → codext-1.15.4}/src/codext/stegano/__init__.py +0 -0
  111. {codext-1.15.2 → codext-1.15.4}/src/codext/stegano/hexagram.py +0 -0
  112. {codext-1.15.2 → codext-1.15.4}/src/codext/stegano/klopf.py +0 -0
  113. {codext-1.15.2 → codext-1.15.4}/src/codext/stegano/resistor.py +0 -0
  114. {codext-1.15.2 → codext-1.15.4}/src/codext/stegano/rick.py +0 -0
  115. {codext-1.15.2 → codext-1.15.4}/src/codext/stegano/sms.py +0 -0
  116. {codext-1.15.2 → codext-1.15.4}/src/codext/stegano/whitespace.py +0 -0
  117. {codext-1.15.2 → codext-1.15.4}/src/codext/web/__init__.py +0 -0
  118. {codext-1.15.2 → codext-1.15.4}/src/codext/web/html.py +0 -0
  119. {codext-1.15.2 → codext-1.15.4}/src/codext/web/url.py +0 -0
  120. {codext-1.15.2 → codext-1.15.4}/src/codext.egg-info/SOURCES.txt +0 -0
  121. {codext-1.15.2 → codext-1.15.4}/src/codext.egg-info/dependency_links.txt +0 -0
  122. {codext-1.15.2 → codext-1.15.4}/src/codext.egg-info/entry_points.txt +0 -0
  123. {codext-1.15.2 → codext-1.15.4}/src/codext.egg-info/requires.txt +0 -0
  124. {codext-1.15.2 → codext-1.15.4}/src/codext.egg-info/top_level.txt +0 -0
  125. {codext-1.15.2 → codext-1.15.4}/tests/__init__.py +0 -0
  126. {codext-1.15.2 → codext-1.15.4}/tests/test_common.py +0 -0
  127. {codext-1.15.2 → codext-1.15.4}/tests/test_generated.py +0 -0
  128. {codext-1.15.2 → codext-1.15.4}/tests/test_manual.py +0 -0
@@ -19,7 +19,7 @@ jobs:
19
19
  fail-fast: false
20
20
  matrix:
21
21
  os: [ubuntu-latest]
22
- python-version: ["3.8", "3.9", "3.10", "3.11"]
22
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
23
23
  steps:
24
24
  - uses: actions/checkout@v3
25
25
  - name: Set up Python ${{ matrix.python-version }}
@@ -60,7 +60,7 @@ jobs:
60
60
  pytest --cov=$package --cov-report=xml
61
61
  genbadge coverage -i coverage.xml -o $cov_badge_path
62
62
  - name: Verify Changed files
63
- uses: tj-actions/verify-changed-files@v12
63
+ uses: tj-actions/verify-changed-files@v17
64
64
  id: changed_files
65
65
  with:
66
66
  files: ${{ env.cov_badge_path }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codext
3
- Version: 1.15.2
3
+ Version: 1.15.4
4
4
  Summary: Native codecs extension
5
5
  Author-email: Alexandre D'Hondt <alexandre.dhondt@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -692,6 +692,7 @@ Classifier: Programming Language :: Python :: 3.8
692
692
  Classifier: Programming Language :: Python :: 3.9
693
693
  Classifier: Programming Language :: Python :: 3.10
694
694
  Classifier: Programming Language :: Python :: 3.11
695
+ Classifier: Programming Language :: Python :: 3.12
695
696
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
696
697
  Requires-Python: <4,>=3.8
697
698
  Description-Content-Type: text/markdown
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="114" height="20" role="img" aria-label="coverage: 99.13%"><title>coverage: 99.13%</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.13%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">99.13%</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" 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>
@@ -27,6 +27,7 @@ classifiers = [
27
27
  "Programming Language :: Python :: 3.9",
28
28
  "Programming Language :: Python :: 3.10",
29
29
  "Programming Language :: Python :: 3.11",
30
+ "Programming Language :: Python :: 3.12",
30
31
  "Topic :: Software Development :: Libraries :: Python Modules",
31
32
  ]
32
33
  dependencies = [
@@ -0,0 +1 @@
1
+ markdown2>=2.4.0
@@ -0,0 +1 @@
1
+ 1.15.4
@@ -5,6 +5,7 @@
5
5
  from argparse import ArgumentParser, RawTextHelpFormatter
6
6
  from math import log
7
7
  from string import ascii_lowercase as lower, ascii_uppercase as upper, digits, printable
8
+ from sys import stdout
8
9
  from textwrap import wrap as wraptext
9
10
  from types import FunctionType, MethodType
10
11
 
@@ -280,8 +281,11 @@ Full documentation at: <https://python-codext.readthedocs.io/en/latest/enc/base.
280
281
  except Exception as err:
281
282
  print("%sbase%s: invalid input" % (getattr(err, "output", ""), base))
282
283
  return 1
284
+ if args.decode:
285
+ stdout.buffer.write(c)
286
+ return 0
283
287
  c = ensure_str(c)
284
- if swap and args.swapcase and not args.decode:
288
+ if swap and args.swapcase:
285
289
  c = codecs.encode(c, "swapcase")
286
290
  for l in (wraptext(c, args.wrap) if args.wrap > 0 else [c]) if wrap else c.split("\n"):
287
291
  print(l)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codext
3
- Version: 1.15.2
3
+ Version: 1.15.4
4
4
  Summary: Native codecs extension
5
5
  Author-email: Alexandre D'Hondt <alexandre.dhondt@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -692,6 +692,7 @@ Classifier: Programming Language :: Python :: 3.8
692
692
  Classifier: Programming Language :: Python :: 3.9
693
693
  Classifier: Programming Language :: Python :: 3.10
694
694
  Classifier: Programming Language :: Python :: 3.11
695
+ Classifier: Programming Language :: Python :: 3.12
695
696
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
696
697
  Requires-Python: <4,>=3.8
697
698
  Description-Content-Type: text/markdown
@@ -3,7 +3,6 @@
3
3
  """Base codecs tests.
4
4
 
5
5
  """
6
- import base64
7
6
  import sys
8
7
  from unittest import TestCase
9
8
 
@@ -187,12 +186,6 @@ class TestCodecsBase(TestCase):
187
186
  self.assertEqual(codecs.encode(b(STR), enc), b(b64))
188
187
  self.assertEqual(codecs.decode(b64, enc), STR)
189
188
  self.assertEqual(codecs.decode(b(b64), enc), b(STR))
190
- # source: https://github.com/dhondta/python-codext/issues/8
191
- enc = "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/KQovQ3JlYXRvciAo/v8AdwBrAGgAdABt"
192
- dec = b"%PDF-1.4\n1 0 obj\n<<\n/Title (\xfe\xff)\n/Creator (\xfe\xff\x00w\x00k\x00h\x00t\x00m"
193
- self.assertEqual(codecs.decode(b(enc), "base64"), dec)
194
- self.assertEqual(base64.b64decode(b(enc)), dec)
195
-
196
189
 
197
190
  def test_codec_base91(self):
198
191
  for b91, enc in zip([",X,<:WRT%yxth90oZB", ",N,<:MHJ%onjXzqeP1", "Jx&[jv4S3Wg>,71@Jk", "yJy^\\IDFsdc?Tof:L#"],
@@ -1 +0,0 @@
1
- six
@@ -1 +0,0 @@
1
- 1.15.2
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes