diff --git a/.gitignore b/.gitignore index e810222..6656686 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ __pycache__/ *.pyc *.egg-info/ .pytest_cache/ +build/ +dist/ venv/ .venv/ .worktrees/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2ee07aa --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Dangerous Things + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/pyproject.toml b/pyproject.toml index 0d51c2e..1d6fda9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,50 @@ [build-system] -requires = ["setuptools"] +requires = ["setuptools>=77.0.0"] build-backend = "setuptools.build_meta" +[project] +name = "pm3py" +version = "0.1.0" +description = "Pure-Python async client for the Proxmark3 NG wire protocol over USB serial." +readme = "README.md" +requires-python = ">=3.10" +license = "MIT" +license-files = ["LICENSE"] +authors = [{ name = "Dangerous Things", email = "ops@dangerousthings.com" }] +keywords = [ + "proxmark3", + "rfid", + "nfc", + "iso14443", + "iso15693", + "mifare", + "ntag", + "t55xx", + "smartcard", +] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Topic :: Security", + "Topic :: Software Development :: Libraries :: Python Modules", +] +dependencies = [ + "pyserial-asyncio>=0.6", + "bitarray>=2.0", + "pycryptodome>=3.10", +] + +[project.optional-dependencies] +dev = ["pytest"] + +[tool.setuptools.packages.find] +include = ["pm3py*"] + [tool.pytest.ini_options] testpaths = ["tests"] diff --git a/setup.py b/setup.py deleted file mode 100644 index 74ca9ae..0000000 --- a/setup.py +++ /dev/null @@ -1,11 +0,0 @@ -from setuptools import setup, find_packages - -setup( - name="pm3py", - version="0.1.0", - packages=find_packages(), - install_requires=[ - "pyserial-asyncio>=0.6", - ], - python_requires=">=3.10", -)