blob: 1a409e35c39dbcb3b9bc95048b53d328a6d77519 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[project]
name = "qumat"
version = "0.6.0"
description = "A library for composing quantum machine learning."
authors = [{ name = "Apache Mahout", email = "dev@mahout.apache.org" }]
license = "Apache-2.0"
requires-python = ">=3.10,<3.13"
readme = "README.md"
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"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 :: Only",
"Programming Language :: Rust",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Physics",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
"qiskit>=2.2.0,<3.0.0",
"qiskit-aer>=0.17.2,<0.18.0",
"cirq>=1.5.0,<1.6.0",
"amazon-braket-sdk>=1.108.0,<2.0",
"sympy>=1.14.0,<2.0",
]
[project.optional-dependencies]
qdp = ["qumat-qdp"]
[dependency-groups]
dev = [
"pytest>=9.0.1",
"ruff>=0.13.1",
"ty>=0.0.16",
"pre-commit>=3.0.0",
"maturin>=1.10.2",
"patchelf>=0.17.2.4",
"torch>=2.2,<=2.9.0",
"numpy>=1.24,<2.0",
"setuptools>=80.9.0",
"tensorflow>=2.20",
"pytest-cov>=7.0.0",
]
[tool.uv]
# Override to fix amazon-braket-default-simulator dependency on old numba/llvmlite
# The simulator v1.32.1 requires numba 0.53.1 which doesn't support Python 3.10+
override-dependencies = [
"numba>=0.60.0",
"llvmlite>=0.43.0",
]
[tool.uv.sources]
qumat-qdp = { path = "qdp/qdp-python", editable = true }
[tool.pytest.ini_options]
testpaths = ["testing"]
python_files = "test_*.py"
python_functions = "test_*"
addopts = ["-v", "--tb=short", "-rs"]
markers = [
"gpu: marks tests as requiring GPU and _qdp extension (auto-skipped if unavailable)",
"slow: marks tests as slow running",
]
[tool.ty.src]
exclude = [
".github/scripts/",
"qdp/qdp-python/benchmark/",
]
[tool.ty.analysis]
# _qdp: compiled Rust extension (no type info for members)
# api: benchmark module loaded via sys.path in tests
allowed-unresolved-imports = ["_qdp", "_qdp.*", "api", "api.*"]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.sdist]
only-include = [
"qumat",
"LICENSE",
"README.md",
]