codext 1.15.5__tar.gz → 1.15.8__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.
- {codext-1.15.5 → codext-1.15.8}/.github/workflows/python-package.yml +36 -8
- {codext-1.15.5 → codext-1.15.8}/PKG-INFO +4 -3
- codext-1.15.8/docs/coverage.svg +1 -0
- {codext-1.15.5 → codext-1.15.8}/pyproject.toml +1 -1
- codext-1.15.8/src/codext/VERSION.txt +1 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/__common__.py +5 -5
- {codext-1.15.5 → codext-1.15.8}/src/codext/hashing/crypt.py +1 -1
- {codext-1.15.5 → codext-1.15.8}/src/codext.egg-info/PKG-INFO +4 -3
- {codext-1.15.5 → codext-1.15.8}/src/codext.egg-info/SOURCES.txt +0 -1
- {codext-1.15.5 → codext-1.15.8}/src/codext.egg-info/requires.txt +1 -1
- {codext-1.15.5 → codext-1.15.8}/tests/test_manual.py +4 -1
- codext-1.15.5/.github/workflows/pypi-publish.yml +0 -37
- codext-1.15.5/docs/coverage.svg +0 -1
- codext-1.15.5/src/codext/VERSION.txt +0 -1
- {codext-1.15.5 → codext-1.15.8}/.coveragerc +0 -0
- {codext-1.15.5 → codext-1.15.8}/.gitignore +0 -0
- {codext-1.15.5 → codext-1.15.8}/.readthedocs.yml +0 -0
- {codext-1.15.5 → codext-1.15.8}/LICENSE +0 -0
- {codext-1.15.5 → codext-1.15.8}/README.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/mkdocs.yml +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/cli.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/css/extra.css +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/demos/using-bases.gif +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/demos/using-codext.gif +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/demos/using-debase.gif +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/base.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/binary.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/common.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/compressions.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/crypto.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/hashing.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/languages.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/others.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/stegano.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/enc/web.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/features.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/guessing.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/howto.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/img/banner.png +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/img/icon.png +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/img/logo.png +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/index.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/pages/manipulations.md +0 -0
- {codext-1.15.5 → codext-1.15.8}/docs/requirements.txt +0 -0
- {codext-1.15.5 → codext-1.15.8}/pytest.ini +0 -0
- {codext-1.15.5 → codext-1.15.8}/requirements.txt +0 -0
- {codext-1.15.5 → codext-1.15.8}/setup.cfg +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/__info__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/_base.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/_base2n.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/base100.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/base122.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/base45.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/base85.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/base91.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/base/baseN.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/binary/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/binary/baudot.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/binary/bcd.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/binary/excess3.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/binary/gray.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/binary/manchester.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/binary/rotate.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/common/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/common/a1z26.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/common/cases.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/common/dummy.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/common/octal.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/common/ordinal.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/compressions/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/compressions/gzipp.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/compressions/lz77.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/compressions/lz78.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/compressions/pkzip.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/affine.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/atbash.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/bacon.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/barbie.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/citrix.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/railfence.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/rot.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/scytale.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/shift.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/crypto/xor.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/hashing/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/hashing/blake.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/hashing/checksums.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/hashing/md.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/hashing/sha.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/hashing/shake.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/braille.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/galactic.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/ipsum.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/leetspeak.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/morse.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/navajo.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/radio.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/southpark.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/tap.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/languages/tomtom.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/macros.json +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/others/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/others/dna.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/others/kbshift.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/others/letters.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/others/markdown.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/others/uuencode.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/stegano/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/stegano/hexagram.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/stegano/klopf.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/stegano/resistor.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/stegano/rick.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/stegano/sms.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/stegano/whitespace.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/web/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/web/html.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext/web/url.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext.egg-info/dependency_links.txt +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext.egg-info/entry_points.txt +0 -0
- {codext-1.15.5 → codext-1.15.8}/src/codext.egg-info/top_level.txt +0 -0
- {codext-1.15.5 → codext-1.15.8}/tests/__init__.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/tests/test_base.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/tests/test_common.py +0 -0
- {codext-1.15.5 → codext-1.15.8}/tests/test_generated.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.
|
|
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 }}
|
|
@@ -29,15 +29,9 @@ jobs:
|
|
|
29
29
|
- name: Install ${{ env.package }}
|
|
30
30
|
run: |
|
|
31
31
|
python -m pip install --upgrade pip
|
|
32
|
-
python -m pip install
|
|
32
|
+
python -m pip install pytest pytest-cov pytest-pythonpath coverage
|
|
33
33
|
pip install -r requirements.txt
|
|
34
34
|
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
35
|
- name: Test ${{ env.package }} with pytest
|
|
42
36
|
run: |
|
|
43
37
|
pytest --cov=$package
|
|
@@ -48,6 +42,10 @@ jobs:
|
|
|
48
42
|
cov_badge_path: docs/coverage.svg
|
|
49
43
|
steps:
|
|
50
44
|
- uses: actions/checkout@v3
|
|
45
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
46
|
+
uses: actions/setup-python@v4
|
|
47
|
+
with:
|
|
48
|
+
python-version: "3.12"
|
|
51
49
|
- name: Install ${{ env.package }}
|
|
52
50
|
run: |
|
|
53
51
|
python -m pip install --upgrade pip
|
|
@@ -77,3 +75,33 @@ jobs:
|
|
|
77
75
|
with:
|
|
78
76
|
github_token: ${{ secrets.github_token }}
|
|
79
77
|
branch: ${{ github.ref }}
|
|
78
|
+
deploy:
|
|
79
|
+
runs-on: ubuntu-latest
|
|
80
|
+
needs: coverage
|
|
81
|
+
steps:
|
|
82
|
+
- uses: actions/checkout@v3
|
|
83
|
+
with:
|
|
84
|
+
fetch-depth: 0
|
|
85
|
+
- name: Check for version change
|
|
86
|
+
uses: dorny/paths-filter@v2
|
|
87
|
+
id: filter
|
|
88
|
+
with:
|
|
89
|
+
filters: |
|
|
90
|
+
version:
|
|
91
|
+
- '**/VERSION.txt'
|
|
92
|
+
- if: steps.filter.outputs.version == 'true'
|
|
93
|
+
name: Cleanup README
|
|
94
|
+
run: |
|
|
95
|
+
sed -ri 's/^(##*)\s*:.*:\s*/\1 /g' README.md
|
|
96
|
+
awk '{if (match($0,"## Supporters")) exit; print}' README.md > README
|
|
97
|
+
mv -f README README.md
|
|
98
|
+
- if: steps.filter.outputs.version == 'true'
|
|
99
|
+
name: Build ${{ env.package }} package
|
|
100
|
+
run: python3 -m pip install --upgrade build && python3 -m build
|
|
101
|
+
- if: steps.filter.outputs.version == 'true'
|
|
102
|
+
name: Upload ${{ env.package }} to PyPi
|
|
103
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
104
|
+
with:
|
|
105
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
106
|
+
verbose: true
|
|
107
|
+
verify_metadata: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: codext
|
|
3
|
-
Version: 1.15.
|
|
3
|
+
Version: 1.15.8
|
|
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:
|
|
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>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.15.8
|
|
@@ -261,7 +261,7 @@ def add(ename, encode=None, decode=None, pattern=None, text=True, add_to_codecs=
|
|
|
261
261
|
while True:
|
|
262
262
|
try:
|
|
263
263
|
g = m.group(i) or ""
|
|
264
|
-
if g.isdigit() and not g.startswith("0") and "".join(set(g)) != "01":
|
|
264
|
+
if g.isdigit() and not g.startswith("0") and (re.match(r"10+", g) or "".join(set(g)) != "01"):
|
|
265
265
|
g = int(g)
|
|
266
266
|
args += [g]
|
|
267
267
|
i += 1
|
|
@@ -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)):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: codext
|
|
3
|
-
Version: 1.15.
|
|
3
|
+
Version: 1.15.8
|
|
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:
|
|
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>
|
|
@@ -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
|
-
|
|
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
|
codext-1.15.5/docs/coverage.svg
DELETED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|