diff options
| author | Jelmer Vernooij <jelmer@debian.org> | 2026-03-17 13:00:00 +0000 |
|---|---|---|
| committer | git-ubuntu importer <ubuntu-devel-discuss@lists.ubuntu.com> | 2026-03-17 16:44:00 +0000 |
| commit | fd811c1b6a3566e6950a0f0a90b4ecaf092e7438 (patch) | |
| tree | 471df90e28b171aa664ac73f667635809e36eb8a | |
| parent | a8bdb892993d7eba37b8114712b357edb59322e7 (diff) | |
0.3.10-1 (patches unapplied)HEADimport/0.3.10-1ubuntu/stonking-proposedubuntu/stonking-develubuntu/develdebian/sid
Imported using git-ubuntu import.
Notes
Notes:
* Drop pgpsigmangle for pypi.
* New upstream release.
* Update watch file format version to 5.
* Use PyPI template in watch file instead of explicit Source/Matching-Pattern.
* Upgrade upstream signing key to new packet format.
* Update standards version to 4.6.2, no changes needed.
* Drop no longer used upstream signing key.
| -rw-r--r-- | .github/dependabot.yaml | 13 | ||||
| -rw-r--r-- | .github/workflows/auto-merge.yml | 22 | ||||
| -rw-r--r-- | .github/workflows/disperse.yml | 14 | ||||
| -rw-r--r-- | .github/workflows/pythonpackage.yml | 45 | ||||
| -rw-r--r-- | .github/workflows/wheels.yaml | 94 | ||||
| -rw-r--r-- | .gitignore | 15 | ||||
| -rw-r--r-- | CODE_OF_CONDUCT.md | 76 | ||||
| -rw-r--r-- | Cargo.lock | 172 | ||||
| -rw-r--r-- | Cargo.toml | 4 | ||||
| -rw-r--r-- | PKG-INFO | 60 | ||||
| -rw-r--r-- | SECURITY.md | 5 | ||||
| -rw-r--r-- | debian/cargo_home/.package-cache | 0 | ||||
| -rw-r--r-- | debian/cargo_home/.package-cache-mutate | 0 | ||||
| -rw-r--r-- | debian/changelog | 12 | ||||
| -rw-r--r-- | debian/control | 6 | ||||
| -rw-r--r-- | debian/upstream/signing-key.asc | 740 | ||||
| -rw-r--r-- | debian/watch | 6 | ||||
| -rw-r--r-- | disperse.toml | 8 | ||||
| -rw-r--r-- | fastbencode.egg-info/PKG-INFO | 60 | ||||
| -rw-r--r-- | fastbencode.egg-info/SOURCES.txt | 17 | ||||
| -rw-r--r-- | fastbencode.egg-info/dependency_links.txt | 1 | ||||
| -rw-r--r-- | fastbencode.egg-info/requires.txt | 6 | ||||
| -rw-r--r-- | fastbencode.egg-info/top_level.txt | 1 | ||||
| -rw-r--r-- | fastbencode/__init__.py | 2 | ||||
| -rw-r--r-- | pyproject.toml | 2 | ||||
| -rw-r--r-- | setup.cfg | 4 |
26 files changed, 172 insertions, 1213 deletions
diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml deleted file mode 100644 index ecdad45..0000000 --- a/.github/dependabot.yaml +++ /dev/null @@ -1,13 +0,0 @@ -# Keep GitHub Actions up to date with GitHub's Dependabot... -# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot -# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: weekly - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: weekly diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml deleted file mode 100644 index 5657575..0000000 --- a/.github/workflows/auto-merge.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Dependabot auto-merge -on: pull_request_target - -permissions: - pull-requests: write - contents: write - -jobs: - dependabot: - runs-on: ubuntu-latest - if: ${{ github.actor == 'dependabot[bot]' }} - steps: - - name: Dependabot metadata - id: metadata - uses: dependabot/fetch-metadata@v2 - with: - github-token: "${{ secrets.GITHUB_TOKEN }}" - - name: Enable auto-merge for Dependabot PRs - run: gh pr merge --auto --squash "$PR_URL" - env: - PR_URL: ${{github.event.pull_request.html_url}} - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/disperse.yml b/.github/workflows/disperse.yml deleted file mode 100644 index df9197f..0000000 --- a/.github/workflows/disperse.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Disperse configuration - -"on": - - push - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v6 - - uses: jelmer/action-disperse-validate@v2 diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml deleted file mode 100644 index c9f81c6..0000000 --- a/.github/workflows/pythonpackage.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- -name: Python package - -"on": [push, pull_request] - -jobs: - build: - - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] - fail-fast: false - - steps: - - uses: actions/checkout@v6 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v6 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip cython - pip install -U pip ".[dev]" - - name: Style checks - run: | - python -m ruff check . - python -m ruff format --check . - - name: Test suite run (pure Python) - run: | - python -m unittest tests.test_suite - env: - PYTHONHASHSEED: random - - name: Run cargo fmt - run: | - cargo fmt --all -- --check - - name: Install in editable mode - run: | - pip install -e . - - name: Test suite run (with Rust extension) - run: | - python -m unittest tests.test_suite - env: - PYTHONHASHSEED: random diff --git a/.github/workflows/wheels.yaml b/.github/workflows/wheels.yaml deleted file mode 100644 index 7563738..0000000 --- a/.github/workflows/wheels.yaml +++ /dev/null @@ -1,94 +0,0 @@ ---- -name: Build Python distributions - -"on": - push: - pull_request: - schedule: - - cron: "0 6 * * *" # Daily 6AM UTC build - -jobs: - build-wheels: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - fail-fast: true - - steps: - - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel cibuildwheel setuptools-rust - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - if: "matrix.os == 'ubuntu-latest'" - - name: Build wheels - run: python -m cibuildwheel --output-dir wheelhouse - - name: Upload wheels - uses: actions/upload-artifact@v5 - with: - name: artifact-${{ matrix.os }} - path: ./wheelhouse/*.whl - - build-sdist: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install build - - name: Build sdist - run: python -m build --sdist - - name: Upload sdist - uses: actions/upload-artifact@v5 - with: - name: artifact-sdist - path: ./dist/*.tar.gz - - test-sdist: - needs: - - build-sdist - runs-on: ubuntu-latest - steps: - - uses: actions/setup-python@v6 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - # Upgrade packging to avoid a bug in twine. - # See https://github.com/pypa/twine/issues/1216 - pip install "twine>=6.1.0" "packaging>=24.2" - - name: Download sdist - uses: actions/download-artifact@v6 - with: - name: artifact-sdist - path: dist - - name: Test sdist - run: twine check dist/* - - name: Test installation from sdist - run: pip install dist/*.tar.gz - - publish: - runs-on: ubuntu-latest - needs: - - build-wheels - - build-sdist - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') - permissions: - id-token: write - environment: - name: pypi - url: https://pypi.org/p/fastbencode - steps: - - name: Download distributions - uses: actions/download-artifact@v6 - with: - merge-multiple: true - pattern: artifact-* - path: dist - - name: Publish package distributions to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 54d5b90..0000000 --- a/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.so -build -__pycache__ -fastbencode.egg-info -*.pyc -dist -*~ -.mypy_cache -*.swp -*.swo -*.swn - -# Rust -target/ -**/*.rs.bk diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 21d383a..0000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socioeconomic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at core@breezy-vcs.org. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index d41a38d..0000000 --- a/Cargo.lock +++ /dev/null @@ -1,172 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "fastbencode" -version = "0.3.8" -dependencies = [ - "pyo3", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "indoc" -version = "2.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" -dependencies = [ - "rustversion", -] - -[[package]] -name = "libc" -version = "0.2.178" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "portable-atomic" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" - -[[package]] -name = "proc-macro2" -version = "1.0.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "pyo3" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d" -dependencies = [ - "indoc", - "libc", - "memoffset", - "once_cell", - "portable-atomic", - "pyo3-build-config", - "pyo3-ffi", - "pyo3-macros", - "unindent", -] - -[[package]] -name = "pyo3-build-config" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6" -dependencies = [ - "target-lexicon", -] - -[[package]] -name = "pyo3-ffi" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089" -dependencies = [ - "libc", - "pyo3-build-config", -] - -[[package]] -name = "pyo3-macros" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02" -dependencies = [ - "proc-macro2", - "pyo3-macros-backend", - "quote", - "syn", -] - -[[package]] -name = "pyo3-macros-backend" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9" -dependencies = [ - "heck", - "proc-macro2", - "pyo3-build-config", - "quote", - "syn", -] - -[[package]] -name = "quote" -version = "1.0.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "syn" -version = "2.0.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "target-lexicon" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" - -[[package]] -name = "unindent" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" @@ -1,6 +1,6 @@ [package] name = "fastbencode" -version = "0.3.8" +version = "0.3.10" edition = "2021" authors = ["Jelmer Vernooij <jelmer@jelmer.uk>"] license = "Apache-2.0" @@ -14,4 +14,4 @@ name = "fastbencode__bencode_rs" crate-type = ["cdylib"] [dependencies] -pyo3 = { version = "0.27", features = ["extension-module"] } +pyo3 = { version = "0.28", features = ["extension-module"] } diff --git a/PKG-INFO b/PKG-INFO new file mode 100644 index 0000000..75dae68 --- /dev/null +++ b/PKG-INFO @@ -0,0 +1,60 @@ +Metadata-Version: 2.4 +Name: fastbencode +Version: 0.3.10 +Summary: Implementation of bencode with optional fast Rust extensions +Maintainer-email: Breezy Developers <breezy-core@googlegroups.com> +License-Expression: Apache-2.0 +Project-URL: Homepage, https://github.com/breezy-team/fastbencode +Project-URL: GitHub, https://github.com/breezy-team/fastbencode +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Operating System :: POSIX +Classifier: Operating System :: Microsoft :: Windows +Requires-Python: >=3.10 +Description-Content-Type: text/markdown +License-File: COPYING +Provides-Extra: rust +Requires-Dist: setuptools-rust>=1.0.0; extra == "rust" +Provides-Extra: dev +Requires-Dist: ruff==0.15.6; extra == "dev" +Dynamic: license-file + +fastbencode +=========== + +fastbencode is an implementation of the bencode serialization format originally +used by BitTorrent. + +The package includes both a pure-Python version and an optional Rust extension +based on PyO3. Both provide the same functionality, but the Rust extension +provides significantly better performance. + +Example: + + >>> from fastbencode import bencode, bdecode + >>> bencode([1, 2, b'a', {b'd': 3}]) + b'li1ei2e1:ad1:di3eee' + >>> bdecode(bencode([1, 2, b'a', {b'd': 3}])) + [1, 2, b'a', {b'd': 3}] + +The default ``bencode``/``bdecode`` functions just operate on +bytestrings. Use ``bencode_utf8`` / ``bdecode_utf8`` to +serialize/deserialize all plain strings as UTF-8 bytestrings. +Note that for performance reasons, all dictionary keys still have to be +bytestrings. + +License +======= +fastbencode is available under the Apache License, version 2. + +Copyright +========= + +* Original Pure-Python bencoder © Petru Paler +* Split out from Bazaar/Breezy by Jelmer Vernooij +* Rust extension © Jelmer Vernooij diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index f9c320b..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security Policy - -## Reporting a Vulnerability - -Please report security issues by e-mail to core@breezy-vcs.org. diff --git a/debian/cargo_home/.package-cache b/debian/cargo_home/.package-cache deleted file mode 100644 index e69de29..0000000 --- a/debian/cargo_home/.package-cache +++ /dev/null diff --git a/debian/cargo_home/.package-cache-mutate b/debian/cargo_home/.package-cache-mutate deleted file mode 100644 index e69de29..0000000 --- a/debian/cargo_home/.package-cache-mutate +++ /dev/null diff --git a/debian/changelog b/debian/changelog index 52167d8..e209817 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +python-fastbencode (0.3.10-1) unstable; urgency=medium + + * Drop pgpsigmangle for pypi. + * New upstream release. + * Update watch file format version to 5. + * Use PyPI template in watch file instead of explicit Source/Matching-Pattern. + * Upgrade upstream signing key to new packet format. + * Update standards version to 4.6.2, no changes needed. + * Drop no longer used upstream signing key. + + -- Jelmer Vernooij <jelmer@debian.org> Tue, 17 Mar 2026 13:00:00 -0000 + python-fastbencode (0.3.8-1) unstable; urgency=medium * New upstream release. diff --git a/debian/control b/debian/control index 3c6d6e8..48bfc9b 100644 --- a/debian/control +++ b/debian/control @@ -1,11 +1,11 @@ Rules-Requires-Root: no -Standards-Version: 4.5.1 +Standards-Version: 4.6.2 Build-Depends: debhelper-compat (= 13), dh-sequence-python3, cargo:native, cython3, - librust-pyo3-0.27+default-dev, - librust-pyo3-0.27+extension-module-dev, + librust-pyo3-0.28+default-dev, + librust-pyo3-0.28+extension-module-dev, libstd-rust-dev, python3-all-dev, python3-setuptools, diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc deleted file mode 100644 index ab5568c..0000000 --- a/debian/upstream/signing-key.asc +++ /dev/null @@ -1,740 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -AAoJEACAbyvXKaRXcQ0P/23tOfMis8J0KPI+QymR/dYj3I0xbXm3qCNVMeznnos4 -t/LQnsMvlgVfjkHaE6ScK9iOd7LqXEHDKPNOAbCLy4kyp9Ylw/hjCM5zR/S84wX3 -QdPsTvzdYwtmPr3zSbbkRK3vEKHQWyofXSFqPSeEJs6WAAWswHRKGDxL01tZTD8t -EJNGMwrnguTB+wnwiLjizjLLDy1EV7zKlzBaS2onbHBWov57cV9MqJuIu8+LK3jX -ApLPXebUZm4ywq0c3LblJu1YQyb2yKtzJxY9AiV9Oe7Kri7KP3v8Qa+UeI79UABh -WVH45aWOurdJx33XzAmYKkIKPa2Md9e4/uf5vHj8W9CILYhoudo8ko1cnMNiFqDR -bYZN1VG55ujzoT+AqeI6GKXTJ+9rzYhJtJZU7eUt58sbQH8Pm3sp4WBNUpMo36go -fHg2YJU2Pedn7TogRIhcWeU8ZiFYFNrsjCmj2hfKoK5Z7b50ywQokdnhXVWtb05D -+BVXrO7CPIt1mjMQpV2xgAear8DUThcsN/n6T6SrsIbgBfYkAAKdO4Qra4bmZmdv -Q323rYvu0MPwsciYReJ6i3qosoI4rUKkxZb3QbZ0OY0DkthVy/U6PmL+nJvsFQBP -jLqKhuGR4Itswbfh1Zn+VQ/qPUnPjR+yNlCMKnRNdT5GWn7XA6hlq3rQnYU3VYfo -tCVKZWxtZXIgVmVybm9vaWogPGplbG1lckBubC5saW51eC5vcmc+iQI8BDABAgAm -BQJNb7RSHx0gbmwubGludXgub3JnIG5vIGxvbmdlciBleGlzdHMACgkQAIBvK9cp -pFcOOw//VRlFHgGefSIkxg381wo8t38g7NXbLwGtjxvJjnrwnxQSVnesGxpZHgyo -/Tq0Ly+PPYtPzPUX2rbVw90Jx6gD2Yl7I6rnYoNurNhJqGsGRIyCQ11UdKmDu5jg -PEurEjycxZK1UOkqnfrVeCubDilFNgTuvOQaC1rw51M00sqv/8KvkhWE4ZGkvgOe -GKLe5NbxNuBTiPOyRIVWJD2q42LCaayYrcM/1cIZk55dMePiSCHkDLg0GYMdkbhs -ohE8YBr3PWm5r6LGI15ihm43YawM4kVdgSbvDB5kn11jNuOeMLqVT8VCfhN8V9J/ -oPfd8n4EZchvwiupGCi8iR5uwWIg4WOQL8dT/uuCPM0fZeZYU5oxcvjmT48FSTzZ -HOfXg8HhzhlNap4tQS+cvHleUmDvImXo/Dn9L20v5OgwBu/Wq8lREBVZjuEUxp4a -+G9v6SMhtYkFetWnAvCui3DOQKlmiL6GKpUOx3ZbXBe9uSsjMsahhhHjyc4MRsFj -4BcxCc3IMK/p8RWvrrl3l9bJlQrRsxWbT95fVPnUIqG7O+8Ttxl+oIuubnKBn3nZ -8lWBbgWbM7PeVHJNyfV91KQp/xaHV0sWLlwLmN0S5GAuqhN7gyPMHdCgfLuUN42i -AkUqehVSfJyFX0qCaoqUiIeLDrtC1f5jmbR4maiIuuUmv/p6vqu0JkplbG1lciBW -ZXJub29paiA8amVsbWVyQGNhbm9uaWNhbC5jb20+iQIfBDABAgAJBQJQlSLBAh0g -AAoJEACAbyvXKaRXQlcP/A1iUm2F6If39VmiYUa3ZA9ESi3ABtXc9OatlKzFlw/4 -nL4QVOCm9T+i0SO8Vm7IIMv76BIUgIo+JzkTpq0K7HP83rLTHjyKzkQlkMMITXYl -tzOhfLGZHgqlJZn1GNWkEuQK0ggrkqJbIWRVYepd8IgPGgK1Dlu1y+BSSRkeHR90 -6n2OasIIITgySbskEUjf+XukB2O9vzTVS8zT1Y3nUlCim6RRwhPBMPKrwSrCssCr -r24Lri6gwyrhZb3FaXVmmvHC4PNjf7jUHdyUpp7FAZ2v5ghQc9OCXLelO0QW6wnp -4TFEFvpmw910Du1fA7EnWR7kFlGaQdgifr9hQYDi9AcuEuu2+PfEx58WcLoc/+dB -4PWMX+AopVbLW/xtXNDxPrKgb96mUPd0OYQLpl5SX7B+PEk/GbuUfda54d3lmLq/ -G1v9r7bRI+r4do3ImDFUyZ/adFajP0jNApQdYmdutFWMtZNVuxvzCq/wXS9Grbft -llD96xHvoiTR1R1QF5VxGvsWVOSBcvnq+kglaVa18MwhPBiCdFJM0xRlJoqvlXJn -k4Sg8DscMGrxVgxQ/HCT1yiud+mShh7ClQlGIB+DPcyn4YYzrbKXVV23telJjMeM -KLbdBllCktaUCal2g4gxa+9zCD69pxS++usrLOeuYo7rktpRGxZ2T/7bzkQPznxr -tCdKZWxtZXIgVmVybm9vaWogPGplbG1lckBvcGVuY2hhbmdlLm9yZz6JAmoEEwEK -AFQCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AVGGhrcDovL2tleXMuZ251cGcu -bmV0FiEE3IN+4Up+NzR+hwYXAIBvK9cppFcFAl2vvAgFCRchYD0ACgkQAIBvK9cp -pFf6xg/+K2LZk+MsjqGGzf6u51d/6jBL1Eno6QR0Fhl3Rxk5Ed3mwSV+pENL4LMS -ubvAAuZN/hXkyuYzkccmxUfadoerQjrzf4f7ku1uSlNzZ/yNvByqoR4V3mvTVqfI -WWsUVJweBEFj584uu+BqJsM1hDlIzj/QBJan0MM5acgV82zSs2BXdrgzHnbErWHo -FT1xTnfCzbQkc1MZg0rydoaBWFJomYFwzCOIpJD4nBp1Ts72opCF5elkHSdVO89Z -j/eUE/HSzNvRSuDwCiWm8864f1+BjpQpLcOnyVGtgFWH8pgY/Ct965k4AqvzUha6 -dZ8vlg/FQb8WQWJLgxBAKxSZGmevkytzlZ2CImdxw1a+nDWaUcEIiN9OeDrKxV/A -kSJ7x4Zgof+EHhiLSlg0jTG4y/dL1PQr7kByGmQ/h/EtKg6YeK6y4nNQrMt39xf9 -h/sknbKQrk3oOMCJlR6b7vLo6UfdnnTLpUaBUho57z9ewBcJixiTU/y+uUa8LIKO -2A0mUq8K1J+2xWo0UwmzP++joI8IYPxVl5VtigKmKx0lwq9oQwmX3FWdRK6RiVz+ -8dmdmiuQq8ebbYfCBorJReF1GMaJ+qXAZ5xivztBcf10gzdBMIBEk7XFMzAXTjPv -9B8Epqriqxx0pdb0N/YVw9INBY0aGTg+YxGmJeiRWPeLUWEFp1e0J0plbG1lciBW -ZXJub29paiA8anJ2ZXJub29pakB0aWdyaXMub3JnPokCWAQwAQoAQhYhBNyDfuFK -fjc0focGFwCAbyvXKaRXBQJZjzDtJB0gdGlncmlzLm9yZyBubyBsb25nZXIgZm9y -d2FyZHMgbWFpbAAKCRAAgG8r1ymkV8QzD/9Znw0sI4R06w+KD0eeFSEYnC8w7pTl -ZlXKRuGQIIXjcnS4l0dxUEsr54QZ0YreoquF65HWwuxT1SszzhnIi5l5T6d2sOg9 -8OYCGEVpLTC90HNhgdBHH6D+MnqzY7hUrE6RzSt4C4MYmA0b5e9w4RsFNna9/8oK -dzvj4VYCalDGVw+prHi7grooj3bMuMzeKFTu/eBTJ4mTs1G6yNw7zvUqBSGaXtlW -9liru4aUug/9S3EF0BK4DpwnHNO8n2CaINBm8CjhL2UQyl2EPvji+hys1dYpBdZB -JFuYqFYy3cnAMJEnNNTR3Fjy0d1WrH18lcNNR/we2IuzR7AAy8fkLturmfPcH/52 -E+fPRi6TGSvupzk/z7c8XvoWwYfJ+dDx68QAOluN6JBxTAE+i9HhmBKCAmi8xff3 -upLB6U2xZEc/QrHSkJ0p9tUyGmH/95OL1mzeUPh9yaj9+z30BRYt8rTmiV5REONP -lX8Vm2m2elx3ox1/ZdelfdzQQtqJI7fpoGaHmuSCwciiC3UlqAhwa1dYY0E0oWc1 -n6fV+Y1tJ/Z2HAdd23CzeW8rjt9G3v9H/enzko0h6C7vb5Ti8wDQLjtmGJUgPcGo -ciMJfIdPDQnwgAaR+GwZPeafxwFl62WWF6Z6JMXNDgtnsCAs575Eemeo4mvzGTCv -zX0yI0vxaQpFRbQoSmVsbWVyIFZlcm5vb2lqIDxqZWxtZXJAYS1lc2t3YWRyYWF0 -Lm5sPokCHwQwAQIACQUCS1Zv1QIdIAAKCRAAgG8r1ymkV2UsD/9irbZ2M0vpsKoz -r/Mmk/DVYivXWdiYuZRaNP6fRyi51R8XY2zi/Sge+cjZvO0SsViiyUzf1fX6Vza7 -7TcF85Eac4YlKUyiTHByCZouAtWCE4CiFiixZtTnxzb+TCyOOWaM8bImz27GsZk8 -5Z9pVl2bDRTdvSmCEugjCiXnN/uUACQ9FlSSNdOfQv93NLNirCNh4RErN3dniQkE -xzvVOcXezF6OnKQef0/oXbedZ9qbAcIe5KVg/Wed6jT0fHytXJAxDyAsQPgtfH/i -THWKD8JemDcQ7LVqFMTFo9yfo+mLP+Y4cNbbS88Q3cahab1iL4ckRyrXgv7X4rOV -q5QP2ej6fDFd0Gwo71w02cnRm4ggHpGyMVUMmKZeHNKvbT2P1PRn9QPz8DMy/X2p -M+ohMy4Z5NfXRetSCDzaRXnRAIb534ONErhqYc7wMcPdVl2u12/3tPmpA2TgRSbI -mn2Eb8+xfC0ZuNc8+QeM6f5u8DIpnJyQ4kBNKSGBGA+HQMrS2YigAr3D1QZvGs9+ -nBURlhSmDlqrMTEU7n7tLKmOUgNPGfDA6n2tFGcz7Vjl0QRVtiDueOTk4+pswx/9 -XiZtAc75do6wy8xX1+FyX7+WQ0c39bDIvATylMn1aiwLtsGzKQTHyPE4pfKubYnw -C86vUY+3XeY7fW26q/OyxVoBWX9dVrQvSmVsbWVyIFZlcm5vb2lqIDxqZWxtZXIu -dmVybm9vaWpAY2Fub25pY2FsLmNvbT6JAh8EMAECAAkFAlCVItgCHSAACgkQAIBv -K9cppFe0ThAAl86nhgROfIiuYwdy8d+cQP406Ni9hJ8HKUJax5YGoFynidzJoGqk -zAooFwaZbVUAJrFtdLDHDfSXow0lAy3ga7P7Two7wtSailnO84ueLCbiJ0cnmyGj -lu/iYiyqS3lgsFMX7OZ6eYijNyvjfvb/kjdP3SOgLZnu47LIe3xVnzVU2NNs/997 -Rgyz2W0K5T/E+q8bYUXVUhTRT1Z6e5XlwSY7L1JWSXuj92fz/kp/LdXVMurLV2kQ -9gjksBOQqGoAOegYVmUnvOs8NfnM8wvVSbsq5OELrlDhcjIe5TzjVIDOhAiW135R -PUgP9bnZPmSCI0v81coRTswOHf7IiDSb2RRFWQZjhYFtVgdQfMBnwiW6Ca1ZUXDM -IMRsTNHNzvL9vjDtyIupDIexnE9lJ70p/tiVKqw4PWGle9u3W5UY0LHmWMX9PB9K -eeWAE7ICsrSMHl9MX748pCKBD5J5DBExBFjE8RLHjoI53B/TXtMkaRS4h/OceljV -CAV7MCsa+5JW035Olm3BRJ9h69SACUieaprk+PIw1EsOOrH4o69KqmA85s3vkKsF -dHNpkBylhg0BrXK1cruGXAKvt9kKoYyV8LBpKMTo9q0+sQ+GCdI48theQGnJ//ka -ItICJlnH0XxBReHfgjzF1L9k221KgtMC7QSw0u+LeRz/uWNf6w1UwR+0I0plbG1l -ciBWZXJub2/EsyA8amVsbWVyQGRlYmlhbi5vcmc+iQJrBBMBCgBVAhsDBgsJCAcD -AgYVCAIJCgsEFgIDAQIeAQIXgBUYaGtwOi8va2V5cy5nbnVwZy5uZXQWIQTcg37h -Sn43NH6HBhcAgG8r1ymkVwUCXa+8CQUJFyFgPQAKCRAAgG8r1ymkVxRTD/9dsmGl -0n6uKKtvzqjeWm8sz88fl63O0CQty+xW/dBDmVlEhzPVL2chEI2nvMO1m2dE/wCa -fP2cF4F2Q9SqbPKaEhL5+xbvw2BRWEPcK+pYiXjv0JO9MBP8omVz0sytHm/IjBSC -sc1OK6pYi05ES84ys2xT0k7Pj1qyaoDuk5c5AkWlorTdvDSv6hOP8d0JyENApKgK -7gCGXj1Qg4llqGLoJyj97kS+raraaAwaFiaafvtYET32kI5azmOUztJvuHpS16Dg -e4ZpvUXeLepBsRkXpZxZCR3sE3P5++XGKDipEt+09qeo03F+S+piVmlPaBWV7U4v -IZe8AZv+ImPd7b7jr7VjzJgEKuimI7BtkNZbMmbkIV4furNI+9+m8CpvG+u44EFl -720irpfHi+q2pDQRTt9JI3aBiSFH4jPvyRd72IKL9XQ9My9CCTghVQd/XnuUy9Oy -gwaPWYq/xkn3W/ley/Nf141cL8p89w2v7ISkzDjuuW11mrtqwlDncwTquv7hPvYE -i8La51pMWFbyzNYeOQOma4nnkLVvdT6mANksp/Rlxt6NG9z2z3y3qUmPHkD3Ch8s -vmmfaXEe8JxFLjV4/Zx0Banr4tZBVvUiGs0c60g44XB7JCvCOGLUePaoJUvW3CEf -aExNj6d1H7TA983hcZGrEFlF6cIPyTA9jUtf57kBDQRU36z/AQgAlVtfJtb/iv1x -N8/YfBkBv08fVvZzp5dxgcrJ5Tel0/nONkW+JZ/Ojf0RWCZieTHHuuusY/mW9Tqn -SHhJ7pXvEGKdpUaEhv8MshA70y3EfmHNRM1xQevH7nlIEcxlRMGIFRQdhdZerQYK -Y5aLfSSOkKDJJAj77I6Aj6qBrild3T9TZDgSVNaAu0xYjjlR5TR2RMROTCBlx1w2 -eTBF5a7Jvg1bLY0FZs+ixJG7M3A7/WDR0CinVMtzoZ4ksCy539Ml7mzYkPV1o9Vd -ZDDzyyVrgeSgFU8hytMTP34brvxiaL2R6qoVzLyuVrwJW5butevLtf8TLkqouX/n -vA3L1uKgTQARAQABiQIfBCgBCgAJBQJVB3MUAh0DAAoJEACAbyvXKaRXPdIP/R5k -6hXSqZidd6a6gy4RRj4BbDEjgkLhCUyXONM1eF6cm5fYSs5KAJgzsFzgf1VihlhG -Lh3+fksNXIUKWi49otTc+dFtYPs8OaOZeTWMeclDcJXIx9xyLQGIaHuLMop+6D/0 -1vBjBZhGOE0eX5eC8EvIjOQjg33jjI1a399L52GnEO79n47vodUEfu0PUZ5YIASS -bd/nXzhAfKH/QWoSkRFhrYQlH9UsV+9gmq88dqjbr21w/EsI+85C3nCGgAOao8oO -zZZOLriYRAsowRNDQOx3y9EkN81p+FhCbSipZ3ZquZlmR3Wzgrmm2MsftOog1WwA -VAmKJ6T+oMCTqZN55oKOUbZ8IB0UBuCEXcalmKPs57YkauSbb9Chswrt2y9w0icZ -td7UCWj9i23IkX40AUJEf9z+xS2B6sdtvHdDiSezfb6KNRabV2cHLzb8IBe2WX8+ -c3y2ka0qDaKwStznA8c99enC2mDC4stQdKeSVCwWAh2KvT7ZGi4yPN1Mpx1CplKD -+luMo23FFlC6Imn5Kdy6M8NhjL7XL44eAo65E7Za9dyUvYWxSNINAujzCVCGh95w -6YrH4aXoLQBnVJC+TxRcqo4brqOScir+Ir2JjQbxS8cm33zoFc5yo0ebV4bdOEF+ -Qux5J8Ev11qWxzsu9dCP1uBO5Bw+CEp65/GVl1LIiQIlBBgBCgAPAhsgBQJXZFZl -BQkGRxBmAAoJEACAbyvXKaRXKGUQAITBRaXp7kqjfNV0ORNt7Aj6FTQb7fu5RWTC -G2HKWNiSQwfk8bUJB3yW+yHzKP455rtZqBNkTZ4+snVuzZwOjwnqIk3FbLwThGYr -lQDOpxLjqWFYa+HGl/e/8KaVKXHZu/gxB12T7qcVWxYf6AbQox9ivU/flaQNMB6o -BmtGC8jZLujN2LWsSoee2ScOfmwCgh7w3ELtfHVoKi48ciiUdJXIg6uZL5Jompfb -AgSEVJVw0c/CeZHnUgskQZlzEkgn4b+qZiq+5kX13pZwgppq/LDA5vrGi4B8N/Wq -TrHGrm/ER4FdOecrNMD05OSAkgL4kgGwDfLF0NKIZmu6crzxWEWhZVB+ifUsn1A0 -lP3ipAd1LELARUswpMRIpMGh3Xu9tLHnG7lGF4zvrCL8TPucgZdPUMDxUdRn2AJH -Qz1O+FtCYGieJGAiIt88lMZGfmayjbFAyIoiPdxUbktezpdgSWuSw8bxUHYwemfh -dgz2Mz/ctfuRVbwPr0V7g5untIm+VvONFE2m9sC61l3haHzJdXkDk7JUcxW0JI39 -6GRS+4kXb/+o5EiymeAHDJnoFViuq0oUaoKhd17MO/Oof5+XqPigM1oMKLCVBxA7 -3+Bd9KQzpxpjh/ywmL7sM+Ke69Lg/zE5kI17aM/K6g+9KzgQcU6GvY2b8HVeKgR5 -TgVoW9NHuQENBFTfrjIBCADNQ9HDQjm8JgBPbMlDeSgxjpfuDdmSiM804lVg0peh -x1Ba6TKTUuONiAw66HvapQp0eGJyexZ44CWJr/0wLgON3q3lDUqv8U0LZrn924fR -IOmrWLLiDYzvM32hKt34fDqGgBYWiO6wr7OBsr2EKI/nn1xN+Z5ulmssjtYzNL0z -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 -j9taGC+R/Tk0Ini8 -=Xecr ------END PGP PUBLIC KEY BLOCK----- diff --git a/debian/watch b/debian/watch index c386f8d..9ecf47a 100644 --- a/debian/watch +++ b/debian/watch @@ -1,2 +1,4 @@ -version=4 -opts=pgpsigurlmangle=s/$/.asc/ https://pypi.debian.net/fastbencode/fastbencode-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) +Version: 5 + +Template: PyPI +Dist: fastbencode/fastbencode-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) diff --git a/disperse.toml b/disperse.toml deleted file mode 100644 index a3af0a7..0000000 --- a/disperse.toml +++ /dev/null @@ -1,8 +0,0 @@ -tag-name = "v$VERSION" -verify-command = "python3 -m unittest fastbencode.tests.test_suite" -tarball-location = [] -release-timeout = 5 - -[[update_version]] -path = "fastbencode/__init__.py" -new-line = "__version__ = $TUPLED_VERSION" diff --git a/fastbencode.egg-info/PKG-INFO b/fastbencode.egg-info/PKG-INFO new file mode 100644 index 0000000..75dae68 --- /dev/null +++ b/fastbencode.egg-info/PKG-INFO @@ -0,0 +1,60 @@ +Metadata-Version: 2.4 +Name: fastbencode +Version: 0.3.10 +Summary: Implementation of bencode with optional fast Rust extensions +Maintainer-email: Breezy Developers <breezy-core@googlegroups.com> +License-Expression: Apache-2.0 +Project-URL: Homepage, https://github.com/breezy-team/fastbencode +Project-URL: GitHub, https://github.com/breezy-team/fastbencode +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Operating System :: POSIX +Classifier: Operating System :: Microsoft :: Windows +Requires-Python: >=3.10 +Description-Content-Type: text/markdown +License-File: COPYING +Provides-Extra: rust +Requires-Dist: setuptools-rust>=1.0.0; extra == "rust" +Provides-Extra: dev +Requires-Dist: ruff==0.15.6; extra == "dev" +Dynamic: license-file + +fastbencode +=========== + +fastbencode is an implementation of the bencode serialization format originally +used by BitTorrent. + +The package includes both a pure-Python version and an optional Rust extension +based on PyO3. Both provide the same functionality, but the Rust extension +provides significantly better performance. + +Example: + + >>> from fastbencode import bencode, bdecode + >>> bencode([1, 2, b'a', {b'd': 3}]) + b'li1ei2e1:ad1:di3eee' + >>> bdecode(bencode([1, 2, b'a', {b'd': 3}])) + [1, 2, b'a', {b'd': 3}] + +The default ``bencode``/``bdecode`` functions just operate on +bytestrings. Use ``bencode_utf8`` / ``bdecode_utf8`` to +serialize/deserialize all plain strings as UTF-8 bytestrings. +Note that for performance reasons, all dictionary keys still have to be +bytestrings. + +License +======= +fastbencode is available under the Apache License, version 2. + +Copyright +========= + +* Original Pure-Python bencoder © Petru Paler +* Split out from Bazaar/Breezy by Jelmer Vernooij +* Rust extension © Jelmer Vernooij diff --git a/fastbencode.egg-info/SOURCES.txt b/fastbencode.egg-info/SOURCES.txt new file mode 100644 index 0000000..6e4650a --- /dev/null +++ b/fastbencode.egg-info/SOURCES.txt @@ -0,0 +1,17 @@ +COPYING +Cargo.toml +MANIFEST.in +README.md +pyproject.toml +setup.py +fastbencode/__init__.py +fastbencode/_bencode_py.py +fastbencode/py.typed +fastbencode.egg-info/PKG-INFO +fastbencode.egg-info/SOURCES.txt +fastbencode.egg-info/dependency_links.txt +fastbencode.egg-info/requires.txt +fastbencode.egg-info/top_level.txt +src/lib.rs +tests/__init__.py +tests/test_bencode.py
\ No newline at end of file diff --git a/fastbencode.egg-info/dependency_links.txt b/fastbencode.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/fastbencode.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/fastbencode.egg-info/requires.txt b/fastbencode.egg-info/requires.txt new file mode 100644 index 0000000..3bccd4b --- /dev/null +++ b/fastbencode.egg-info/requires.txt @@ -0,0 +1,6 @@ + +[dev] +ruff==0.15.6 + +[rust] +setuptools-rust>=1.0.0 diff --git a/fastbencode.egg-info/top_level.txt b/fastbencode.egg-info/top_level.txt new file mode 100644 index 0000000..fc7ff1e --- /dev/null +++ b/fastbencode.egg-info/top_level.txt @@ -0,0 +1 @@ +fastbencode diff --git a/fastbencode/__init__.py b/fastbencode/__init__.py index d18a24f..84d5d78 100644 --- a/fastbencode/__init__.py +++ b/fastbencode/__init__.py @@ -18,7 +18,7 @@ from typing import Type -__version__ = (0, 3, 7) +__version__ = (0, 3, 10) Bencached: Type diff --git a/pyproject.toml b/pyproject.toml index 650f400..2bff901 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,7 @@ GitHub = "https://github.com/breezy-team/fastbencode" [project.optional-dependencies] rust = ["setuptools-rust>=1.0.0"] dev = [ - "ruff==0.14.6" + "ruff==0.15.6" ] [tool.setuptools] diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..8bfd5a1 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,4 @@ +[egg_info] +tag_build = +tag_date = 0 + |
