[build-system] requires = [ "setuptools>=42.0.0", "wheel", "setuptools-rust>=1.7.0", ] # Point to the setuptools' PEP517 build backend explicitly to # disable Pip's fallback guessing build-backend = "setuptools.build_meta" [project] name = "bcrypt" # When updating this, also update lib.rs version = "5.0.0" authors = [ {name = "The Python Cryptographic Authority developers", email = "cryptography-dev@python.org"} ] description = "Modern password hashing for your software and your servers" license = {text = "Apache-2.0"} classifiers = [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "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 :: 3.14", "Programming Language :: Python :: Free Threading :: 3 - Stable", ] requires-python = ">= 3.8" dynamic = ["readme"] [project.urls] homepage = "https://github.com/pyca/bcrypt/" changelog = "https://github.com/pyca/bcrypt/blob/main/CHANGELOG.rst" [tool.setuptools] zip-safe = false package-dir = {"" = "src"} packages = ["bcrypt"] [tool.setuptools.dynamic] readme = {file = "README.rst", content-type = "text/x-rst"} [project.optional-dependencies] tests = ["pytest>=3.2.1,!=3.3.0"] typecheck = ["mypy"] [[tool.setuptools-rust.ext-modules]] target = "bcrypt._bcrypt" path = "src/_bcrypt/Cargo.toml" py-limited-api = "auto" rust-version = ">=1.64.0" [tool.ruff] line-length = 79 lint.ignore = ['N818'] lint.select = ['E', 'F', 'I', 'N', 'W', 'UP', 'RUF'] [tool.ruff.lint.isort] known-first-party = ["bcrypt", "tests"] [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.check-manifest] ignore = ["tests/reference/*"]