[project] name = "qoqo-iqm" license = { text = "Proprietary. See LICENSE file included in delivery." } maintainers = [ { name = "HQS Quantum Simulations GmbH", email = "info@quantumsimulations.de" }, ] requires-python = ">=3.8" version = "0.10.2" dependencies = ['numpy', 'qoqo_calculator_pyo3>=1.2,<1.3', 'qoqo>=1.15'] [project.optional-dependencies] tests = ["coverage", "pytest"] dev = ["bandit", "black", "darglint", "mypy", "ruff"] docs = [ "sphinx >= 2.1", "nbsphinx", "pygments", "recommonmark", "myst_parser", "sphinx_rtd_theme", "tomli", ] [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [tool.maturin] bindings = "pyo3" compatibility = "manylinux2014" strip = true profile = "release" [tool.mypy] ignore_missing_imports = true pretty = true follow_imports = "silent" [tool.bandit] [tool.black] line-length = 99 target-version = ["py39", "py310", "py311"] [tool.ruff] line-length = 99 # same as black target-version = "py39" show-fixes = true output-format = "full" # activate the following checks select = [ "A", # builtins "ANN", # annotations "ARG", # unused arguments "B", # bugbear "C", # comprehensions "C90", # mccabe complexity "D", # pydocstyle "E", # pycodestyle "ERA", # remove commented out code "F", # pyflakes "NPY", # numpy "PL", # pylint "RUF", # ruff "S", # bandit "TCH", # type checking "W", # Warnings ] # ignore specific violations ignore = [ "ANN002", "ANN003", "ANN101", "ANN102", "ANN401", "D400", "D401", # "S403", # not implemented in ruff (yet?!) # "S404", # not implemented in ruff (yet?!) "PLR", "S301", ] # Allow autofix for all enabled rules (when `--fix`) is provided. fixable = [ "A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT", ] unfixable = [] # exclude the following patterns from linting exclude = [ ".git", "__pycache__", "doc/conf.py", "old", "build", "dist", "test_*", ] [tool.ruff.mccabe] max-complexity = 20 # 5 higher than sonarqube [tool.ruff.pydocstyle] convention = "google" [tool.ruff.per-file-ignores] "__init__.py" = ["F401"] [tool.flake8] max-line-length = 99 # same as black ignore = [ "E203", # Needed for compatibility with black "D400", "D401", "W503", "ANN101", "ANN102", "ANN002", "ANN003", "ANN401", "S403", "S404", "S301", ] exclude = [ ".git", "__pycache__", "doc/conf.py", "old", "build", "dist", "test_*", ] docstring-convention = "google" per-file-ignores = ["__init__.py:F401"]