[build-system] requires = [ "setuptools >= 77.0.3", "wheel" ] build-backend = "setuptools.build_meta" [project] name = "pyotp2289" description = "A pure Python implementation of 'A One-Time Password System'" dynamic = ["version"] license = "BSD-2-Clause" authors = [{name = "Simeon Simeonov"}] readme = "README.md" requires-python = ">= 3.10" classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3.15", "Operating System :: OS Independent", "Topic :: Security :: Cryptography", ] [dependency-groups] dev = [ "pytest>=7", "ruff>=0.15.0", "ty>=0.0.31", ] [project.scripts] otp2289 = "otp2289.__main__:main" [project.urls] Homepage = "https://codeberg.org/sgs/pyotp2289" Repository = "https://codeberg.org/sgs/pyotp2289" Issues = "https://codeberg.org/sgs/pyotp2289/issues" Changelog = "https://codeberg.org/sgs/pyotp2289/src/branch/master/CHANGELOG.md" [tool.pytest.ini_options] minversion = "7.0" cache_dir = "~/.cache/pytest_cache" pythonpath = [ "src" ] testpaths = [ "tests" ] [tool.setuptools.dynamic] version = {attr = "otp2289.__version__"} [tool.ty.environment] python-version = "3.10" root = ["./src"]