[project]
name = "qcs-api-client-common"
version = "0.13.1-dev.4"
description = "Contains core QCS client functionality and middleware implementations."
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.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Operating System :: OS Independent",
]
dependencies = [
"grpcio>=1.63.0",
"grpc-interceptor>=0.15.0",
"httpx>=0.27.0",
]
[project.optional-dependencies]
dev = [
"grpcio-testing >= 1.63.0",
"pytest >= 8.1.1",
"pytest-asyncio >= 0.23.6",
"pytest-mock >= 3.14.0",
"pytest-sugar >= 1.0.0",
"pytest-clarity >= 1.0.1",
"mypy >= 1.4.1",
"ruff >= 0.3.5",
"syrupy >= 4.0.0",
"watchdog[watchmedo] >= 4.0.0",
"maturin >= 1.5.1",
"sphinx >= 7.3.7",
"sphinx-autoapi >= 3.0.0",
"furo >= 2024.5.6",
]
[build-system]
requires = ["maturin>=1.0.0,<2.0.0"]
build-backend = "maturin"
[tool.maturin]
bindings = "pyo3"
compatibility = "linux"
sdist-include = ["README.md"]
features = ["python", "pyo3/extension-module"]
[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",
"docs",
"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", "UP", "W"]
ignore = []
fixable = ["ALL"]
unfixable = []
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
[tool.ruff.lint.per-file-ignores]
"tests_py/**/*.py" = [
"D",
"S101",
"S105",
]
"qcs_api_client_common/**/*.pyi" = [
"B008"
]
[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]
reportMissingModuleSource = false
[[tool.mypy.overrides]]
module = [
"qcs_api_client_common.*",
"grpc.*",
]
ignore_missing_imports = true
disable_error_code = [
"import-untyped"
]
[tool.pytest.ini_options]
markers = [
"integration: mark a test as an integration test.",
]
filterwarnings = [
"ignore::DeprecationWarning::",
]