[project] name = "wolfcrypt" description = "Python module that encapsulates wolfSSL's crypto engine API." readme = "README.rst" requires-python = ">=3.10" authors = [ {name = "wolfSSL Inc.", email="info@wolfssl.com"}, ] license = "GPL-3.0-or-later OR LicenseRef-WolfSSL" license-files = ["LICENSING.rst"] keywords = ["wolfssl", "wolfcrypt", "security", "cryptography"] classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python :: 3", "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", "Topic :: Security", "Topic :: Security :: Cryptography", "Topic :: Software Development" ] dynamic = ["version"] dependencies = [ "cffi>=1.17", "typing-extensions>=4.4.0", ] [project.urls] Homepage = "https://github.com/wolfssl/wolfcrypt-py" [build-system] # setuptools >= 77 is required for the PEP 639 `license` expression and # `license-files` above; 76 and older reject them. requires = ["setuptools>=77", "cffi>=1.17"] build-backend = "setuptools.build_meta:__legacy__" [dependency-groups] dev = [ "mypy", "pytest", "pytest-cov", "ruff", "sphinx", "sphinx-rtd-theme", "ty", "types-cffi", ] [tool.ruff] # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".idea", ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", ".pyenv", ".pytest_cache", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "lib", "node_modules", "site-packages", "venv", ] # The GitHub editor is 127 characters wide. line-length = 127 indent-width = 4 # Assume Python 3.10 target-version = "py310" [tool.ruff.lint] select = ["E", "F", "B", "UP", "ANN", "C4", "DTZ", "EXE", "FA", "INT", "ISC", "ICN", "LOG", "G", "RSE", "SLOT", "TID", "TC", "FLY", "PERF", "W", "FURB"] ignore = ["E501"] # Allow fix for all enabled rules (when `--fix`) is provided. fixable = ["ALL"] unfixable = [] # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" [tool.ruff.lint.per-file-ignores] "scripts/*.py" = ["ANN"] "tests/*.py" = ["ANN"] [tool.ruff.format] # Like Black, use double quotes for strings. quote-style = "double" # Like Black, indent with spaces, rather than tabs. indent-style = "space" # Like Black, respect magic trailing commas. skip-magic-trailing-comma = false # Like Black, automatically detect the appropriate line ending. line-ending = "auto" # Enable auto-formatting of code examples in docstrings. Markdown, # reStructuredText code/literal blocks and doctests are all supported. # # This is currently disabled by default, but it is planned for this # to be opt-out in the future. docstring-code-format = false # Set the line length limit used when formatting code snippets in # docstrings. # # This only has an effect when the `docstring-code-format` setting is # enabled. docstring-code-line-length = "dynamic" [tool.ty.environment] python-version = "3.10" root = ["."] [tool.ty.src] exclude = ["./lib"] [tool.ty.rules] all = "warn"