| [build-system] |
| # These requirements must be kept sync with the requirements in |
| # ./github/requirements/build-requirements.{in,txt} |
| requires = [ |
| "maturin>=1,<2", |
| |
| # Must be kept in sync with `project.dependencies` |
| "cffi>=1.12; platform_python_implementation != 'PyPy'", |
| # Needed because cffi imports distutils, and in Python 3.12, distutils has |
| # been removed from the stdlib, but installing setuptools puts it back. |
| "setuptools!=74.0.0,!=74.1.0,!=74.1.1,!=74.1.2,!=74.1.3,!=75.0.0,!=75.1.0,!=75.2.0", |
| ] |
| build-backend = "maturin" |
| |
| [project] |
| name = "cryptography" |
| version = "43.0.2" |
| 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 :: 3.12", |
| "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; platform_python_implementation != 'PyPy'", |
| ] |
| |
| [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/" |
| |
| [project.optional-dependencies] |
| ssh = ["bcrypt >=3.1.5"] |
| |
| # All the following are used for our own testing. |
| nox = ["nox"] |
| test = [ |
| "cryptography_vectors==43.0.2", |
| "pytest >=6.2.0", |
| "pytest-benchmark", |
| "pytest-cov", |
| "pytest-xdist", |
| "pretend", |
| "certifi", |
| ] |
| test-randomorder = ["pytest-randomly"] |
| docs = ["sphinx >=5.3.0", "sphinx-rtd-theme >=1.1.1"] |
| docstest = ["pyenchant >=1.6.11", "readme-renderer", "sphinxcontrib-spelling >=4.0.1"] |
| sdist = ["build"] |
| # `click` included because its needed to type check `release.py` |
| pep8test = ["ruff", "mypy", "check-sdist", "click"] |
| |
| [tool.maturin] |
| python-source = "src" |
| python-packages = ["cryptography"] |
| manifest-path = "src/rust/Cargo.toml" |
| module-name = "cryptography.hazmat.bindings._rust" |
| locked = true |
| sdist-generator = "git" |
| features = ["pyo3/abi3-py37"] |
| include = [ |
| "CHANGELOG.rst", |
| "CONTRIBUTING.rst", |
| "LICENSE", |
| "LICENSE.APACHE", |
| "LICENSE.BSD", |
| |
| "docs/**/*", |
| |
| "src/_cffi_src/**/*.py", |
| "src/_cffi_src/**/*.c", |
| "src/_cffi_src/**/*.h", |
| |
| "src/rust/**/Cargo.toml", |
| "src/rust/**/Cargo.lock", |
| "src/rust/**/*.rs", |
| |
| "tests/**/*.py", |
| ] |
| exclude = [ |
| "vectors/**/*", |
| "src/rust/target/**/*", |
| "docs/_build/**/*", |
| ".github/**/*", |
| ".readthedocs.yml", |
| "ci-constraints-requirements.txt", |
| "mypy.ini", |
| ] |
| |
| [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] |
| line-length = 79 |
| |
| lint.ignore = ['N818'] |
| lint.select = ['E', 'F', 'I', 'N', 'W', 'UP', 'RUF'] |
| |
| [tool.ruff.lint.isort] |
| known-first-party = ["cryptography", "cryptography_vectors", "tests"] |
| |
| [tool.check-sdist] |
| git-only = [ |
| "vectors/*", |
| "release.py", |
| "ci-constraints-requirements.txt", |
| ".gitattributes", |
| ".gitignore", |
| ] |