* 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
151 lines
3.7 KiB
TOML
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"
|