mirror of
https://github.com/saymrwulf/cryptography.git
synced 2026-05-14 20:37:55 +00:00
Right now our deps are basically wrong, and impossible to use with lowest version resolution. Let's start trying to specify minimums so our deps are properly accurate.
196 lines
5.5 KiB
TOML
196 lines
5.5 KiB
TOML
[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",
|
|
]
|
|
build-backend = "maturin"
|
|
|
|
[project]
|
|
name = "cryptography"
|
|
version = "44.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 :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"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", "nox[uv] >=2024.03.02; python_version >= '3.8'"]
|
|
test = [
|
|
"cryptography_vectors",
|
|
"pytest >=7.2.0",
|
|
"pytest-benchmark",
|
|
"pytest-cov",
|
|
"pytest-xdist",
|
|
"pretend",
|
|
"certifi",
|
|
]
|
|
test-randomorder = ["pytest-randomly"]
|
|
docs = ["sphinx >=5.3.0", "sphinx-rtd-theme >=3.0.0; python_version >= '3.8'"]
|
|
docstest = ["pyenchant >=1.6.11", "readme-renderer", "sphinxcontrib-spelling >=4.0.1"]
|
|
sdist = ["build >=1.0.0"]
|
|
# `click` included because its needed to type check `release.py`
|
|
pep8test = ["ruff", "mypy", "check-sdist; python_version >= '3.8'", "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",
|
|
|
|
"**/Cargo.toml",
|
|
"**/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",
|
|
]
|
|
|
|
[tool.uv]
|
|
# These cover all Python versions, but by expressing multiple environments we
|
|
# force uv's resolver to pick the latest versions of packages for each version.
|
|
environments = [
|
|
"python_version >= '3.10'",
|
|
"python_version >= '3.9' and python_version < '3.10'",
|
|
"python_version >= '3.8' and python_version < '3.9'",
|
|
"python_version < '3.8'",
|
|
]
|