codext 1.15.4__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.
- {codext-1.15.4 → codext-1.15.7}/.github/workflows/python-package.yml +40 -8
- {codext-1.15.4 → codext-1.15.7}/PKG-INFO +4 -7
- codext-1.15.7/docs/coverage.svg +1 -0
- {codext-1.15.4 → codext-1.15.7}/pyproject.toml +1 -5
- codext-1.15.7/src/codext/VERSION.txt +1 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/__common__.py +7 -6
- {codext-1.15.4 → codext-1.15.7}/src/codext/hashing/crypt.py +4 -1
- {codext-1.15.4 → codext-1.15.7}/src/codext.egg-info/PKG-INFO +4 -7
- {codext-1.15.4 → codext-1.15.7}/src/codext.egg-info/SOURCES.txt +0 -1
- codext-1.15.7/src/codext.egg-info/requires.txt +4 -0
- {codext-1.15.4 → codext-1.15.7}/tests/test_manual.py +4 -1
- codext-1.15.4/.github/workflows/pypi-publish.yml +0 -37
- codext-1.15.4/docs/coverage.svg +0 -1
- codext-1.15.4/src/codext/VERSION.txt +0 -1
- codext-1.15.4/src/codext.egg-info/requires.txt +0 -1
- {codext-1.15.4 → codext-1.15.7}/.coveragerc +0 -0
- {codext-1.15.4 → codext-1.15.7}/.gitignore +0 -0
- {codext-1.15.4 → codext-1.15.7}/.readthedocs.yml +0 -0
- {codext-1.15.4 → codext-1.15.7}/LICENSE +0 -0
- {codext-1.15.4 → codext-1.15.7}/README.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/mkdocs.yml +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/cli.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/css/extra.css +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/demos/using-bases.gif +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/demos/using-codext.gif +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/demos/using-debase.gif +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/base.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/binary.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/common.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/compressions.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/crypto.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/hashing.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/languages.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/others.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/stegano.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/enc/web.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/features.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/guessing.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/howto.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/img/banner.png +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/img/icon.png +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/img/logo.png +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/index.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/pages/manipulations.md +0 -0
- {codext-1.15.4 → codext-1.15.7}/docs/requirements.txt +0 -0
- {codext-1.15.4 → codext-1.15.7}/pytest.ini +0 -0
- {codext-1.15.4 → codext-1.15.7}/requirements.txt +0 -0
- {codext-1.15.4 → codext-1.15.7}/setup.cfg +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/__info__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/_base.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/_base2n.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/base100.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/base122.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/base45.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/base85.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/base91.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/base/baseN.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/binary/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/binary/baudot.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/binary/bcd.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/binary/excess3.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/binary/gray.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/binary/manchester.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/binary/rotate.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/common/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/common/a1z26.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/common/cases.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/common/dummy.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/common/octal.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/common/ordinal.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/compressions/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/compressions/gzipp.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/compressions/lz77.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/compressions/lz78.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/compressions/pkzip.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/affine.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/atbash.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/bacon.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/barbie.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/citrix.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/railfence.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/rot.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/scytale.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/shift.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/crypto/xor.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/hashing/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/hashing/blake.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/hashing/checksums.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/hashing/md.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/hashing/sha.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/hashing/shake.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/braille.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/galactic.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/ipsum.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/leetspeak.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/morse.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/navajo.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/radio.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/southpark.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/tap.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/languages/tomtom.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/macros.json +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/others/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/others/dna.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/others/kbshift.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/others/letters.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/others/markdown.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/others/uuencode.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/stegano/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/stegano/hexagram.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/stegano/klopf.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/stegano/resistor.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/stegano/rick.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/stegano/sms.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/stegano/whitespace.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/web/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/web/html.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext/web/url.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext.egg-info/dependency_links.txt +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext.egg-info/entry_points.txt +0 -0
- {codext-1.15.4 → codext-1.15.7}/src/codext.egg-info/top_level.txt +0 -0
- {codext-1.15.4 → codext-1.15.7}/tests/__init__.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/tests/test_base.py +0 -0
- {codext-1.15.4 → codext-1.15.7}/tests/test_common.py +0 -0
- {codext-1.15.4 → 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.
|
|
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
|
|
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
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: codext
|
|
3
|
-
Version: 1.15.
|
|
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
|
|
@@ -688,16 +688,13 @@ Classifier: Environment :: Console
|
|
|
688
688
|
Classifier: Intended Audience :: Developers
|
|
689
689
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
690
690
|
Classifier: Programming Language :: Python :: 3
|
|
691
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
692
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
693
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
694
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
695
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
696
691
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
697
692
|
Requires-Python: <4,>=3.8
|
|
698
693
|
Description-Content-Type: text/markdown
|
|
699
694
|
License-File: LICENSE
|
|
695
|
+
Requires-Dist: legacycrypt; python_version >= "3.13"
|
|
700
696
|
Requires-Dist: markdown2>=2.4.0
|
|
697
|
+
Dynamic: license-file
|
|
701
698
|
|
|
702
699
|
<p align="center"><img src="https://github.com/dhondta/python-codext/raw/main/docs/pages/img/logo.png"></p>
|
|
703
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>
|
|
@@ -23,14 +23,10 @@ classifiers = [
|
|
|
23
23
|
"Intended Audience :: Developers",
|
|
24
24
|
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
|
|
25
25
|
"Programming Language :: Python :: 3",
|
|
26
|
-
"Programming Language :: Python :: 3.8",
|
|
27
|
-
"Programming Language :: Python :: 3.9",
|
|
28
|
-
"Programming Language :: Python :: 3.10",
|
|
29
|
-
"Programming Language :: Python :: 3.11",
|
|
30
|
-
"Programming Language :: Python :: 3.12",
|
|
31
26
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
32
27
|
]
|
|
33
28
|
dependencies = [
|
|
29
|
+
"legacycrypt; python_version >= '3.13'",
|
|
34
30
|
"markdown2>=2.4.0",
|
|
35
31
|
]
|
|
36
32
|
dynamic = ["version"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.15.7
|
|
@@ -200,8 +200,9 @@ def _input(infile):
|
|
|
200
200
|
|
|
201
201
|
def _set_exc(name, etype="ValueError"):
|
|
202
202
|
if not hasattr(builtins, name):
|
|
203
|
-
|
|
204
|
-
|
|
203
|
+
ns = {}
|
|
204
|
+
exec(f"class {name}({etype}): __module__ = 'builtins'", {}, ns)
|
|
205
|
+
setattr(builtins, name, ns[name])
|
|
205
206
|
_set_exc("InputSizeLimitError")
|
|
206
207
|
_set_exc("ParameterError")
|
|
207
208
|
|
|
@@ -369,7 +370,7 @@ def add_macro(mname, *encodings):
|
|
|
369
370
|
:param mname: macro name
|
|
370
371
|
:param encodings: encoding names of the encodings to be chained with the macro
|
|
371
372
|
"""
|
|
372
|
-
global PERS_MACROS
|
|
373
|
+
global PERS_MACROS # noqa: F824
|
|
373
374
|
# check for name clash with alreday existing macros and codecs
|
|
374
375
|
if mname in MACROS or mname in PERS_MACROS:
|
|
375
376
|
raise ValueError("Macro name already exists")
|
|
@@ -629,7 +630,7 @@ codecs.add_map = add_map
|
|
|
629
630
|
|
|
630
631
|
def clear():
|
|
631
632
|
""" Clear codext's local registry of search functions. """
|
|
632
|
-
global __codecs_registry, MACROS, PERS_MACROS
|
|
633
|
+
global __codecs_registry, MACROS, PERS_MACROS # noqa: F824
|
|
633
634
|
__codecs_registry, MACROS, PERS_MACROS = [], {}, {}
|
|
634
635
|
codecs.clear = clear
|
|
635
636
|
|
|
@@ -732,7 +733,7 @@ def list_macros():
|
|
|
732
733
|
def remove(name):
|
|
733
734
|
""" Remove all search functions matching the input encoding name from codext's local registry or any macro with the
|
|
734
735
|
given name. """
|
|
735
|
-
global __codecs_registry, MACROS, PERS_MACROS
|
|
736
|
+
global __codecs_registry, MACROS, PERS_MACROS # noqa: F824
|
|
736
737
|
tbr = []
|
|
737
738
|
for search_function in __codecs_registry:
|
|
738
739
|
if search_function(name) is not None:
|
|
@@ -763,7 +764,7 @@ codecs.remove = remove
|
|
|
763
764
|
|
|
764
765
|
def reset():
|
|
765
766
|
""" Reset codext's local registry of search functions and macros. """
|
|
766
|
-
global __codecs_registry, CODECS_REGISTRY, MACROS, PERS_MACROS
|
|
767
|
+
global __codecs_registry, CODECS_REGISTRY, MACROS, PERS_MACROS # noqa: F824
|
|
767
768
|
clear()
|
|
768
769
|
d = os.path.dirname(__file__)
|
|
769
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.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
|
|
@@ -688,16 +688,13 @@ Classifier: Environment :: Console
|
|
|
688
688
|
Classifier: Intended Audience :: Developers
|
|
689
689
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
690
690
|
Classifier: Programming Language :: Python :: 3
|
|
691
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
692
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
693
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
694
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
695
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
696
691
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
697
692
|
Requires-Python: <4,>=3.8
|
|
698
693
|
Description-Content-Type: text/markdown
|
|
699
694
|
License-File: LICENSE
|
|
695
|
+
Requires-Dist: legacycrypt; python_version >= "3.13"
|
|
700
696
|
Requires-Dist: markdown2>=2.4.0
|
|
697
|
+
Dynamic: license-file
|
|
701
698
|
|
|
702
699
|
<p align="center"><img src="https://github.com/dhondta/python-codext/raw/main/docs/pages/img/logo.png"></p>
|
|
703
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.4/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.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 +0,0 @@
|
|
|
1
|
-
1.15.4
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
markdown2>=2.4.0
|
|
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
|