argon2-cffi/pyproject.toml
Hynek Schlawack 1133f3c2ba
Redo CI (#128)
* Update .gitignore

* Simplify packaging, move mypy config to pyproject.toml

* Reflow Tidelift spiel

* Freshen up contribution guide

* Update CI

* Modernize tox & CI

* 3.11

* Don't pass args to build in CI

* oops

* Add wheel/dist inspection

* Simplify conf.py

* fix

* simplify

* Clarify license

* cleanup

* docs

* add missing _

* parallel output sucks
2022-08-19 09:15:15 +02:00

151 lines
3.7 KiB
TOML

# SPDX-License-Identifier: MIT
[build-system]
requires = ["flit_core >=3.4,<4"]
build-backend = "flit_core.buildapi"
[project]
name = "argon2-cffi"
authors = [{ name = "Hynek Schlawack", email = "hs@ox.cx" }]
dynamic = ["version", "description"]
requires-python = ">=3.6"
license = { file = "LICENSE" }
readme = "README.rst"
keywords = ["password", "hash", "hashing", "security"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Operating System :: Unix",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Programming Language :: Python",
"Topic :: Security :: Cryptography",
"Topic :: Security",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
"argon2-cffi-bindings",
"dataclasses; python_version < '3.7'",
"typing-extensions; python_version < '3.8'", # c.f. _typing.py module
]
[project.optional-dependencies]
tests = ["hypothesis", "pytest"]
docs = ["sphinx", "sphinx-notfound-page", "furo"]
dev = ["argon2-cffi[tests,docs]", "mypy"]
[project.urls]
Changelog = "https://github.com/hynek/argon2-cffi/blob/main/CHANGELOG.md"
Documentation = "https://argon2-cffi.readthedocs.io/"
"Source Code" = "https://github.com/hynek/argon2-cffi"
Funding = "https://github.com/sponsors/hynek"
Tidelift = "https://tidelift.com/subscription/pkg/pypi-argon2-cffi?utm_source=pypi-argon2-cffi&utm_medium=pypi"
Ko-fi = "https://ko-fi.com/the_hynek"
[tool.flit.module]
name = "argon2"
[tool.flit.sdist]
include = [
".github",
".pre-commit-config.yaml",
".readthedocs.yml",
"*.ini",
"*.md",
"*.rst",
"docs",
"tests",
]
exclude = ["docs/_build", "tests/__pycache__", "tests/.mypy_cache"]
[tool.pytest.ini_options]
addopts = ["-ra", "--strict-markers", "--strict-config"]
xfail_strict = true
testpaths = "tests"
filterwarnings = ["once::Warning"]
[tool.coverage.run]
parallel = true
branch = true
source = ["argon2"]
[tool.coverage.paths]
source = ["src", ".tox/*/site-packages"]
[tool.coverage.report]
show_missing = true
skip_covered = true
exclude_lines = [
# a more strict default pragma
"\\# pragma: no cover\\b",
# allow defensive code
"^\\s*raise AssertionError\\b",
"^\\s*raise NotImplementedError\\b",
"^\\s*return NotImplemented\\b",
"^\\s*raise$",
# typing-related code
"^if (False|TYPE_CHECKING):",
": \\.\\.\\.(\\s*#.*)?$",
"^ +\\.\\.\\.$",
"-> ['\"]?NoReturn['\"]?:",
]
omit = []
[tool.mypy]
# show error messages from unrelated files
follow_imports = "normal"
# suppress errors about unsatisfied imports
ignore_missing_imports = true
# be strict
check_untyped_defs = true
disallow_any_generics = true
disallow_incomplete_defs = true
disallow_untyped_calls = true
disallow_untyped_defs = true
no_implicit_optional = true
strict_optional = true
warn_no_return = true
warn_redundant_casts = true
warn_unreachable = true
warn_unused_ignores = true
# sometimes redefinition is just fine
allow_redefinition = true
[[tool.mypy.overrides]]
module = "tests.*"
ignore_errors = true
[[tool.mypy.overrides]]
module = "conftest.*"
ignore_errors = true
[tool.black]
line-length = 79
[tool.isort]
profile = "attrs"