[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "tzst" dynamic = ["version"] description = "The next-generation Python library engineered for modern archive management, leveraging cutting-edge Zstandard compression to deliver superior performance, security, and reliability" readme = "README.md" license = "BSD-3-Clause" requires-python = ">=3.12" authors = [{ name = "tzst contributors" }] keywords = ["tar", "zstandard", "compression", "archive"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: System :: Archiving :: Compression", "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = ["zstandard>=0.19.0,<1.0.0"] [project.optional-dependencies] dev = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", "ruff>=0.1.0", "pre-commit>=3.6.0", "build>=1.0.0", "twine>=4.0.0", ] [project.urls] Homepage = "https://github.com/xixu-me/tzst" Documentation = "https://github.com/xixu-me/tzst#readme" Repository = "https://github.com/xixu-me/tzst.git" "Bug Tracker" = "https://github.com/xixu-me/tzst/issues" [project.scripts] tzst = "tzst.cli:main" [tool.hatch.version] path = "src/tzst/__init__.py" [tool.hatch.build.targets.wheel] packages = ["src/tzst"] [tool.hatch.build.targets.sdist] include = ["src", "tests", "README.md", "LICENSE", "CONTRIBUTING.md"] [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] addopts = "--cov --cov-report=term-missing --cov-report=html" markers = ["integration: marks tests as integration tests"] [tool.ruff] line-length = 88 target-version = "py312" src = ["src"] [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "B", # flake8-bugbear "C90", # flake8-complexity "C4", # flake8-comprehensions "UP", # pyupgrade "RUF", # ruff specific rules ] ignore = [ "E501", # line too long - handled by formatter "C901", # function too complex - accepted for core functionality ] fixable = ["ALL"] [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto"