[project] name = "quil" requires-python = ">=3.8" description = "A Python package for building and parsing Quil programs." documentation = "https://rigetti.github.io/quil-rs/quil.html" readme = "README-py.md" license = { text = "Apache-2.0" } authors = [{ name = "Rigetti Computing", email = "softapps@rigetti.com" }] classifiers = [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Operating System :: OS Independent", ] # PEP 621 specifies the [project] table as the source for project metadata. However, Poetry only supports [tool.poetry] # We can remove this table once this issue is resolved: https://github.com/python-poetry/poetry/issues/3332 [tool.poetry] name = "quil" version = "0.11.4" description = "A Python package for building and parsing Quil programs." readme = "README-py.md" authors = ["Rigetti Computing "] [tool.poetry.dependencies] python = "^3.8" numpy = "^1.21" [tool.poetry.group.dev.dependencies] ruff = "^0.3.7" maturin = "^1.2.3" mypy = "^1.1.1" pytest = "^7.2.2" pdoc = "^14.1.0" syrupy = "^3.0.6" [tool.maturin] features = ["pyo3/extension-module"] bindings = "pyo3" compatibility = "linux" sdist-include = ["README.md"] [build-system] requires = ["maturin>=1.0.0,<2.0.0"] build-backend = "maturin" [tool.ruff] exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", ".pyenv", ".pytest_cache", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "site-packages", "venv", ] line-length = 120 indent-width = 4 target-version = "py38" [tool.ruff.lint] select = ["D", "E4", "E7", "E9", "F", "I", "B", "S", "W"] ignore = [ "E741" # "Ambiguous" variable names like "I" aren't ambiguous in this contex. ] 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] "quil/**/*.py" = [ "F403", # * imports allowed in extension module glue. "D100", # docstrings belong in type stubs "D104", ] "test/**/*.py" = [ "D", # docstrings are not enforced in tests "S101", # asserts are allowed in tests "S301", # we need to test pickling ] "make_docs.py" = [ "D" ] [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.ruff.lint.pydocstyle] convention = "google" [tool.pyright] # This diagnostic is raised when a type stub is found without a corresponding source file. This is # necessarily the case for a pure Rust pyo3 module, so disabling it. reportMissingModuleSource = false [[tool.mypy.overrides]] module = [ "quil.quil", ] ignore_missing_imports = true