codext 1.15.5__tar.gz → 1.15.7__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.5 → codext-1.15.7}/.github/workflows/python-package.yml +40 -8
  2. {codext-1.15.5 → codext-1.15.7}/PKG-INFO +4 -3
  3. codext-1.15.7/docs/coverage.svg +1 -0
  4. {codext-1.15.5 → codext-1.15.7}/pyproject.toml +1 -1
  5. codext-1.15.7/src/codext/VERSION.txt +1 -0
  6. {codext-1.15.5 → codext-1.15.7}/src/codext/__common__.py +4 -4
  7. {codext-1.15.5 → codext-1.15.7}/src/codext/hashing/crypt.py +1 -1
  8. {codext-1.15.5 → codext-1.15.7}/src/codext.egg-info/PKG-INFO +4 -3
  9. {codext-1.15.5 → codext-1.15.7}/src/codext.egg-info/SOURCES.txt +0 -1
  10. {codext-1.15.5 → codext-1.15.7}/src/codext.egg-info/requires.txt +1 -1
  11. {codext-1.15.5 → codext-1.15.7}/tests/test_manual.py +4 -1
  12. codext-1.15.5/.github/workflows/pypi-publish.yml +0 -37
  13. codext-1.15.5/docs/coverage.svg +0 -1
  14. codext-1.15.5/src/codext/VERSION.txt +0 -1
  15. {codext-1.15.5 → codext-1.15.7}/.coveragerc +0 -0
  16. {codext-1.15.5 → codext-1.15.7}/.gitignore +0 -0
  17. {codext-1.15.5 → codext-1.15.7}/.readthedocs.yml +0 -0
  18. {codext-1.15.5 → codext-1.15.7}/LICENSE +0 -0
  19. {codext-1.15.5 → codext-1.15.7}/README.md +0 -0
  20. {codext-1.15.5 → codext-1.15.7}/docs/mkdocs.yml +0 -0
  21. {codext-1.15.5 → codext-1.15.7}/docs/pages/cli.md +0 -0
  22. {codext-1.15.5 → codext-1.15.7}/docs/pages/css/extra.css +0 -0
  23. {codext-1.15.5 → codext-1.15.7}/docs/pages/demos/using-bases.gif +0 -0
  24. {codext-1.15.5 → codext-1.15.7}/docs/pages/demos/using-codext.gif +0 -0
  25. {codext-1.15.5 → codext-1.15.7}/docs/pages/demos/using-debase.gif +0 -0
  26. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/base.md +0 -0
  27. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/binary.md +0 -0
  28. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/common.md +0 -0
  29. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/compressions.md +0 -0
  30. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/crypto.md +0 -0
  31. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/hashing.md +0 -0
  32. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/languages.md +0 -0
  33. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/others.md +0 -0
  34. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/stegano.md +0 -0
  35. {codext-1.15.5 → codext-1.15.7}/docs/pages/enc/web.md +0 -0
  36. {codext-1.15.5 → codext-1.15.7}/docs/pages/features.md +0 -0
  37. {codext-1.15.5 → codext-1.15.7}/docs/pages/guessing.md +0 -0
  38. {codext-1.15.5 → codext-1.15.7}/docs/pages/howto.md +0 -0
  39. {codext-1.15.5 → codext-1.15.7}/docs/pages/img/banner.png +0 -0
  40. {codext-1.15.5 → codext-1.15.7}/docs/pages/img/icon.png +0 -0
  41. {codext-1.15.5 → codext-1.15.7}/docs/pages/img/logo.png +0 -0
  42. {codext-1.15.5 → codext-1.15.7}/docs/pages/index.md +0 -0
  43. {codext-1.15.5 → codext-1.15.7}/docs/pages/manipulations.md +0 -0
  44. {codext-1.15.5 → codext-1.15.7}/docs/requirements.txt +0 -0
  45. {codext-1.15.5 → codext-1.15.7}/pytest.ini +0 -0
  46. {codext-1.15.5 → codext-1.15.7}/requirements.txt +0 -0
  47. {codext-1.15.5 → codext-1.15.7}/setup.cfg +0 -0
  48. {codext-1.15.5 → codext-1.15.7}/src/codext/__info__.py +0 -0
  49. {codext-1.15.5 → codext-1.15.7}/src/codext/__init__.py +0 -0
  50. {codext-1.15.5 → codext-1.15.7}/src/codext/base/__init__.py +0 -0
  51. {codext-1.15.5 → codext-1.15.7}/src/codext/base/_base.py +0 -0
  52. {codext-1.15.5 → codext-1.15.7}/src/codext/base/_base2n.py +0 -0
  53. {codext-1.15.5 → codext-1.15.7}/src/codext/base/base100.py +0 -0
  54. {codext-1.15.5 → codext-1.15.7}/src/codext/base/base122.py +0 -0
  55. {codext-1.15.5 → codext-1.15.7}/src/codext/base/base45.py +0 -0
  56. {codext-1.15.5 → codext-1.15.7}/src/codext/base/base85.py +0 -0
  57. {codext-1.15.5 → codext-1.15.7}/src/codext/base/base91.py +0 -0
  58. {codext-1.15.5 → codext-1.15.7}/src/codext/base/baseN.py +0 -0
  59. {codext-1.15.5 → codext-1.15.7}/src/codext/binary/__init__.py +0 -0
  60. {codext-1.15.5 → codext-1.15.7}/src/codext/binary/baudot.py +0 -0
  61. {codext-1.15.5 → codext-1.15.7}/src/codext/binary/bcd.py +0 -0
  62. {codext-1.15.5 → codext-1.15.7}/src/codext/binary/excess3.py +0 -0
  63. {codext-1.15.5 → codext-1.15.7}/src/codext/binary/gray.py +0 -0
  64. {codext-1.15.5 → codext-1.15.7}/src/codext/binary/manchester.py +0 -0
  65. {codext-1.15.5 → codext-1.15.7}/src/codext/binary/rotate.py +0 -0
  66. {codext-1.15.5 → codext-1.15.7}/src/codext/common/__init__.py +0 -0
  67. {codext-1.15.5 → codext-1.15.7}/src/codext/common/a1z26.py +0 -0
  68. {codext-1.15.5 → codext-1.15.7}/src/codext/common/cases.py +0 -0
  69. {codext-1.15.5 → codext-1.15.7}/src/codext/common/dummy.py +0 -0
  70. {codext-1.15.5 → codext-1.15.7}/src/codext/common/octal.py +0 -0
  71. {codext-1.15.5 → codext-1.15.7}/src/codext/common/ordinal.py +0 -0
  72. {codext-1.15.5 → codext-1.15.7}/src/codext/compressions/__init__.py +0 -0
  73. {codext-1.15.5 → codext-1.15.7}/src/codext/compressions/gzipp.py +0 -0
  74. {codext-1.15.5 → codext-1.15.7}/src/codext/compressions/lz77.py +0 -0
  75. {codext-1.15.5 → codext-1.15.7}/src/codext/compressions/lz78.py +0 -0
  76. {codext-1.15.5 → codext-1.15.7}/src/codext/compressions/pkzip.py +0 -0
  77. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/__init__.py +0 -0
  78. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/affine.py +0 -0
  79. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/atbash.py +0 -0
  80. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/bacon.py +0 -0
  81. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/barbie.py +0 -0
  82. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/citrix.py +0 -0
  83. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/railfence.py +0 -0
  84. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/rot.py +0 -0
  85. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/scytale.py +0 -0
  86. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/shift.py +0 -0
  87. {codext-1.15.5 → codext-1.15.7}/src/codext/crypto/xor.py +0 -0
  88. {codext-1.15.5 → codext-1.15.7}/src/codext/hashing/__init__.py +0 -0
  89. {codext-1.15.5 → codext-1.15.7}/src/codext/hashing/blake.py +0 -0
  90. {codext-1.15.5 → codext-1.15.7}/src/codext/hashing/checksums.py +0 -0
  91. {codext-1.15.5 → codext-1.15.7}/src/codext/hashing/md.py +0 -0
  92. {codext-1.15.5 → codext-1.15.7}/src/codext/hashing/sha.py +0 -0
  93. {codext-1.15.5 → codext-1.15.7}/src/codext/hashing/shake.py +0 -0
  94. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/__init__.py +0 -0
  95. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/braille.py +0 -0
  96. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/galactic.py +0 -0
  97. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/ipsum.py +0 -0
  98. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/leetspeak.py +0 -0
  99. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/morse.py +0 -0
  100. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/navajo.py +0 -0
  101. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/radio.py +0 -0
  102. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/southpark.py +0 -0
  103. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/tap.py +0 -0
  104. {codext-1.15.5 → codext-1.15.7}/src/codext/languages/tomtom.py +0 -0
  105. {codext-1.15.5 → codext-1.15.7}/src/codext/macros.json +0 -0
  106. {codext-1.15.5 → codext-1.15.7}/src/codext/others/__init__.py +0 -0
  107. {codext-1.15.5 → codext-1.15.7}/src/codext/others/dna.py +0 -0
  108. {codext-1.15.5 → codext-1.15.7}/src/codext/others/kbshift.py +0 -0
  109. {codext-1.15.5 → codext-1.15.7}/src/codext/others/letters.py +0 -0
  110. {codext-1.15.5 → codext-1.15.7}/src/codext/others/markdown.py +0 -0
  111. {codext-1.15.5 → codext-1.15.7}/src/codext/others/uuencode.py +0 -0
  112. {codext-1.15.5 → codext-1.15.7}/src/codext/stegano/__init__.py +0 -0
  113. {codext-1.15.5 → codext-1.15.7}/src/codext/stegano/hexagram.py +0 -0
  114. {codext-1.15.5 → codext-1.15.7}/src/codext/stegano/klopf.py +0 -0
  115. {codext-1.15.5 → codext-1.15.7}/src/codext/stegano/resistor.py +0 -0
  116. {codext-1.15.5 → codext-1.15.7}/src/codext/stegano/rick.py +0 -0
  117. {codext-1.15.5 → codext-1.15.7}/src/codext/stegano/sms.py +0 -0
  118. {codext-1.15.5 → codext-1.15.7}/src/codext/stegano/whitespace.py +0 -0
  119. {codext-1.15.5 → codext-1.15.7}/src/codext/web/__init__.py +0 -0
  120. {codext-1.15.5 → codext-1.15.7}/src/codext/web/html.py +0 -0
  121. {codext-1.15.5 → codext-1.15.7}/src/codext/web/url.py +0 -0
  122. {codext-1.15.5 → codext-1.15.7}/src/codext.egg-info/dependency_links.txt +0 -0
  123. {codext-1.15.5 → codext-1.15.7}/src/codext.egg-info/entry_points.txt +0 -0
  124. {codext-1.15.5 → codext-1.15.7}/src/codext.egg-info/top_level.txt +0 -0
  125. {codext-1.15.5 → codext-1.15.7}/tests/__init__.py +0 -0
  126. {codext-1.15.5 → codext-1.15.7}/tests/test_base.py +0 -0
  127. {codext-1.15.5 → codext-1.15.7}/tests/test_common.py +0 -0
  128. {codext-1.15.5 → codext-1.15.7}/tests/test_generated.py +0 -0
@@ -19,25 +19,21 @@ 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", "3.12", "3.13"]
22
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
23
23
  steps:
24
24
  - uses: actions/checkout@v3
25
25
  - name: Set up Python ${{ matrix.python-version }}
26
26
  uses: actions/setup-python@v4
27
27
  with:
28
28
  python-version: ${{ matrix.python-version }}
29
+ - name: Install pandoc
30
+ run: sudo apt-get install -y pandoc
29
31
  - name: Install ${{ env.package }}
30
32
  run: |
31
33
  python -m pip install --upgrade pip
32
- python -m pip install flake8 pytest pytest-cov pytest-pythonpath coverage
34
+ python -m pip install pytest pytest-cov pytest-pythonpath coverage
33
35
  pip install -r requirements.txt
34
36
  pip install .
35
- - name: Lint with flake8
36
- run: |
37
- # stop the build if there are Python syntax errors or undefined names
38
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
39
- # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
40
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
41
37
  - name: Test ${{ env.package }} with pytest
42
38
  run: |
43
39
  pytest --cov=$package
@@ -48,6 +44,12 @@ jobs:
48
44
  cov_badge_path: docs/coverage.svg
49
45
  steps:
50
46
  - uses: actions/checkout@v3
47
+ - name: Set up Python ${{ matrix.python-version }}
48
+ uses: actions/setup-python@v4
49
+ with:
50
+ python-version: "3.12"
51
+ - name: Install pandoc
52
+ run: sudo apt-get install -y pandoc notification-daemon
51
53
  - name: Install ${{ env.package }}
52
54
  run: |
53
55
  python -m pip install --upgrade pip
@@ -77,3 +79,33 @@ jobs:
77
79
  with:
78
80
  github_token: ${{ secrets.github_token }}
79
81
  branch: ${{ github.ref }}
82
+ deploy:
83
+ runs-on: ubuntu-latest
84
+ needs: coverage
85
+ steps:
86
+ - uses: actions/checkout@v3
87
+ with:
88
+ fetch-depth: 0
89
+ - name: Check for version change
90
+ uses: dorny/paths-filter@v2
91
+ id: filter
92
+ with:
93
+ filters: |
94
+ version:
95
+ - '**/VERSION.txt'
96
+ - if: steps.filter.outputs.version == 'true'
97
+ name: Cleanup README
98
+ run: |
99
+ sed -ri 's/^(##*)\s*:.*:\s*/\1 /g' README.md
100
+ awk '{if (match($0,"## Supporters")) exit; print}' README.md > README
101
+ mv -f README README.md
102
+ - if: steps.filter.outputs.version == 'true'
103
+ name: Build ${{ env.package }} package
104
+ run: python3 -m pip install --upgrade build && python3 -m build
105
+ - if: steps.filter.outputs.version == 'true'
106
+ name: Upload ${{ env.package }} to PyPi
107
+ uses: pypa/gh-action-pypi-publish@release/v1
108
+ with:
109
+ password: ${{ secrets.PYPI_API_TOKEN }}
110
+ verbose: true
111
+ verify_metadata: false
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: codext
3
- Version: 1.15.5
3
+ Version: 1.15.7
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,8 +692,9 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
692
692
  Requires-Python: <4,>=3.8
693
693
  Description-Content-Type: text/markdown
694
694
  License-File: LICENSE
695
- Requires-Dist: crypt-r; python_version >= "3.13"
695
+ Requires-Dist: legacycrypt; python_version >= "3.13"
696
696
  Requires-Dist: markdown2>=2.4.0
697
+ Dynamic: license-file
697
698
 
698
699
  <p align="center"><img src="https://github.com/dhondta/python-codext/raw/main/docs/pages/img/logo.png"></p>
699
700
  <h1 align="center">CodExt <a href="https://twitter.com/intent/tweet?text=CodExt%20-%20Encoding%2Fdecoding%20anything.%0D%0APython%20library%20extending%20the%20native%20codecs%20library%20with%20many%20new%20encodings%20and%20providing%20CLI%20tools%20with%20a%20guess%20feature%20based%20on%20AI.%0D%0Ahttps%3a%2f%2fgithub%2ecom%2fdhondta%2fpython-codext%0D%0A&hashtags=python,programming,encodings,codecs,cryptography,morse,base,ctftools"><img src="https://img.shields.io/badge/Tweet--lightgrey?logo=twitter&style=social" alt="Tweet" height="20"/></a></h1>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 98.90%"><title>coverage: 98.90%</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.90%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">98.90%</text></g></svg>
@@ -26,7 +26,7 @@ classifiers = [
26
26
  "Topic :: Software Development :: Libraries :: Python Modules",
27
27
  ]
28
28
  dependencies = [
29
- "crypt-r; python_version >= '3.13'",
29
+ "legacycrypt; python_version >= '3.13'",
30
30
  "markdown2>=2.4.0",
31
31
  ]
32
32
  dynamic = ["version"]
@@ -0,0 +1 @@
1
+ 1.15.7
@@ -370,7 +370,7 @@ def add_macro(mname, *encodings):
370
370
  :param mname: macro name
371
371
  :param encodings: encoding names of the encodings to be chained with the macro
372
372
  """
373
- global PERS_MACROS
373
+ global PERS_MACROS # noqa: F824
374
374
  # check for name clash with alreday existing macros and codecs
375
375
  if mname in MACROS or mname in PERS_MACROS:
376
376
  raise ValueError("Macro name already exists")
@@ -630,7 +630,7 @@ codecs.add_map = add_map
630
630
 
631
631
  def clear():
632
632
  """ Clear codext's local registry of search functions. """
633
- global __codecs_registry, MACROS, PERS_MACROS
633
+ global __codecs_registry, MACROS, PERS_MACROS # noqa: F824
634
634
  __codecs_registry, MACROS, PERS_MACROS = [], {}, {}
635
635
  codecs.clear = clear
636
636
 
@@ -733,7 +733,7 @@ def list_macros():
733
733
  def remove(name):
734
734
  """ Remove all search functions matching the input encoding name from codext's local registry or any macro with the
735
735
  given name. """
736
- global __codecs_registry, MACROS, PERS_MACROS
736
+ global __codecs_registry, MACROS, PERS_MACROS # noqa: F824
737
737
  tbr = []
738
738
  for search_function in __codecs_registry:
739
739
  if search_function(name) is not None:
@@ -764,7 +764,7 @@ codecs.remove = remove
764
764
 
765
765
  def reset():
766
766
  """ Reset codext's local registry of search functions and macros. """
767
- global __codecs_registry, CODECS_REGISTRY, MACROS, PERS_MACROS
767
+ global __codecs_registry, CODECS_REGISTRY, MACROS, PERS_MACROS # noqa: F824
768
768
  clear()
769
769
  d = os.path.dirname(__file__)
770
770
  for pkg in sorted(os.listdir(d)):
@@ -15,7 +15,7 @@ if UNIX:
15
15
  try:
16
16
  import crypt
17
17
  except ImportError:
18
- import crypt_r as crypt
18
+ import legacycrypt as crypt
19
19
 
20
20
  METHODS = [x[7:].lower() for x in crypt.__dict__ if x.startswith("METHOD_")]
21
21
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: codext
3
- Version: 1.15.5
3
+ Version: 1.15.7
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,8 +692,9 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
692
692
  Requires-Python: <4,>=3.8
693
693
  Description-Content-Type: text/markdown
694
694
  License-File: LICENSE
695
- Requires-Dist: crypt-r; python_version >= "3.13"
695
+ Requires-Dist: legacycrypt; python_version >= "3.13"
696
696
  Requires-Dist: markdown2>=2.4.0
697
+ Dynamic: license-file
697
698
 
698
699
  <p align="center"><img src="https://github.com/dhondta/python-codext/raw/main/docs/pages/img/logo.png"></p>
699
700
  <h1 align="center">CodExt <a href="https://twitter.com/intent/tweet?text=CodExt%20-%20Encoding%2Fdecoding%20anything.%0D%0APython%20library%20extending%20the%20native%20codecs%20library%20with%20many%20new%20encodings%20and%20providing%20CLI%20tools%20with%20a%20guess%20feature%20based%20on%20AI.%0D%0Ahttps%3a%2f%2fgithub%2ecom%2fdhondta%2fpython-codext%0D%0A&hashtags=python,programming,encodings,codecs,cryptography,morse,base,ctftools"><img src="https://img.shields.io/badge/Tweet--lightgrey?logo=twitter&style=social" alt="Tweet" height="20"/></a></h1>
@@ -6,7 +6,6 @@ README.md
6
6
  pyproject.toml
7
7
  pytest.ini
8
8
  requirements.txt
9
- .github/workflows/pypi-publish.yml
10
9
  .github/workflows/python-package.yml
11
10
  docs/coverage.svg
12
11
  docs/mkdocs.yml
@@ -1,4 +1,4 @@
1
1
  markdown2>=2.4.0
2
2
 
3
3
  [:python_version >= "3.13"]
4
- crypt-r
4
+ legacycrypt
@@ -125,7 +125,10 @@ class ManualTestCase(TestCase):
125
125
  self.assertIsNotNone(codecs.encode(STR, h))
126
126
  self.assertRaises(NotImplementedError, codecs.decode, STR, h)
127
127
  if UNIX:
128
- import crypt
128
+ try:
129
+ import crypt
130
+ except ImportError:
131
+ import legacycrypt as crypt
129
132
  METHODS = [x[7:].lower() for x in crypt.__dict__ if x.startswith("METHOD_")]
130
133
  for m in METHODS:
131
134
  h = "crypt-" + m
@@ -1,37 +0,0 @@
1
- # This workflow will deploy the Python package to PyPi.org
2
-
3
- name: deploy
4
-
5
- env:
6
- package: codext
7
-
8
- on:
9
- push:
10
- branches:
11
- - main
12
- paths:
13
- - '**/VERSION.txt'
14
- workflow_run:
15
- workflows: ["build"]
16
- types: [completed]
17
-
18
- jobs:
19
- deploy:
20
- runs-on: ubuntu-latest
21
- if: ${{ github.event.workflow_run.conclusion == 'success' }}
22
- steps:
23
- - uses: actions/checkout@v3
24
- with:
25
- fetch-depth: 0
26
- - name: Cleanup README
27
- run: |
28
- sed -ri 's/^(##*)\s*:.*:\s*/\1 /g' README.md
29
- awk '{if (match($0,"## Supporters")) exit; print}' README.md > README
30
- mv -f README README.md
31
- - run: python3 -m pip install --upgrade build && python3 -m build
32
- - name: Upload ${{ env.package }} to PyPI
33
- uses: pypa/gh-action-pypi-publish@release/v1
34
- with:
35
- password: ${{ secrets.PYPI_API_TOKEN }}
36
- verbose: true
37
- verify_metadata: false
@@ -1 +0,0 @@
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.11%"><title>coverage: 99.11%</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.11%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">99.11%</text></g></svg>
@@ -1 +0,0 @@
1
- 1.15.5
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
File without changes