[build-system] requires = [ # First version of setuptools to support pyproject.toml configuration "setuptools>=61.0.0", "wheel", # Must be kept in sync with `project.dependencies` "cffi>=1.12; platform_python_implementation != 'PyPy'", "setuptools-rust>=0.11.4", ] build-backend = "setuptools.build_meta" [project] name = "cryptography" version = "41.0.0.dev1" authors = [ {name = "The Python Cryptographic Authority and individual contributors", email = "cryptography-dev@python.org"} ] description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." readme = "README.rst" license = {text = "Apache-2.0 OR BSD-3-Clause"} classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: POSIX :: BSD", "Operating System :: POSIX :: Linux", 'Operating System :: Microsoft :: Windows', "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "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", "Topic :: Security :: Cryptography", ] requires-python = ">=3.7" dependencies = [ # Must be kept in sync with `build-system.requires` "cffi >=1.12", ] [project.urls] homepage = "https://github.com/pyca/cryptography" documentation = "https://cryptography.io/" source = "https://github.com/pyca/cryptography/" issues = "https://github.com/pyca/cryptography/issues" changelog = "https://cryptography.io/en/latest/changelog/" [tool.setuptools] zip-safe = false package-dir = {"" = "src"} [tool.setuptools.packages.find] where = ["src"] include = ["cryptography*"] [project.optional-dependencies] ssh = ["bcrypt >=3.1.5"] # All the following are used for our own testing. nox = ["nox"] test = [ "pytest >=6.2.0", "pytest-benchmark", "pytest-cov", "pytest-xdist", "pretend", ] test-randomorder = ["pytest-randomly"] docs = ["sphinx >=5.3.0", "sphinx-rtd-theme >=1.1.1"] docstest = ["pyenchant >=1.6.11", "twine >=1.12.0", "sphinxcontrib-spelling >=4.0.1"] sdist = ["build"] pep8test = ["black", "ruff", "mypy", "check-sdist"] [tool.black] line-length = 79 target-version = ["py37"] [tool.pytest.ini_options] addopts = "-r s --capture=no --strict-markers --benchmark-disable" console_output_style = "progress-even-when-capture-no" markers = [ "skip_fips: this test is not executed in FIPS mode", "supported: parametrized test requiring only_if and skip_message", ] [tool.mypy] show_error_codes = true check_untyped_defs = true no_implicit_reexport = true warn_redundant_casts = true warn_unused_ignores = true warn_unused_configs = true strict_equality = true [[tool.mypy.overrides]] module = [ "pretend" ] ignore_missing_imports = true [tool.coverage.run] branch = true relative_files = true source = [ "cryptography", "tests/", ] [tool.coverage.paths] source = [ "src/cryptography", "*.nox/*/lib*/python*/site-packages/cryptography", "*.nox\\*\\Lib\\site-packages\\cryptography", "*.nox/pypy/site-packages/cryptography", ] tests =[ "tests/", "*tests\\", ] [tool.coverage.report] exclude_lines = [ "@abc.abstractmethod", "@typing.overload", "if typing.TYPE_CHECKING", ] [tool.ruff] # UP006: Minimum Python 3.9 # UP007, UP038: Minimum Python 3.10 ignore = ['N818', 'UP006', 'UP007', 'UP038'] select = ['E', 'F', 'I', 'N', 'W', 'UP'] line-length = 79 [tool.ruff.isort] known-first-party = ["cryptography", "cryptography_vectors", "tests"] [tool.check-sdist] git-only = [ "vectors/*", "release.py", "ci-constraints-requirements.txt", ".gitattributes", ".gitignore", ]