[build-system] 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", "prompt_toolkit>=3.0", "pexpect>=4.8", ] [project.optional-dependencies] dev = ["pytest"] [project.scripts] pm3flash = "pm3py.flash_cli:main" pm3py = "pm3py.cli:main" # pyws workspace plugin — discovered by the pyws engine (installed alongside) via this group. [project.entry-points."pyws.plugins"] pm3py = "pm3py.pyws_plugin:Pm3pyPlugin" [tool.setuptools.packages.find] include = ["pm3py*"] [tool.pytest.ini_options] testpaths = ["tests"]