[package]
name = "rigetti-pyo3"
version = "0.5.5"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/rigetti/rigetti-pyo3"
readme = "README.md"
categories = ["development-tools::ffi"]
keywords = ["python", "pyo3", "ffi"]
description = "Utilities for creating a Python wrapper for a Rust library."
rust-version = "1.82"

[features]
opentelemetry = ["dep:qcs-dependencies-client"]
stubs = [
    "dep:indexmap",
    "dep:itertools",
    "dep:optipy",
    "dep:pyo3-stub-gen",
]
async-tokio = ["dep:pyo3-async-runtimes", "dep:tokio"]

[dependencies]
pastey = "0.2"

# Enabled with the `stubs` feature.
indexmap = { version = "2.2.6", optional = true }
itertools = { version = "0.14.0", optional = true }

# Enabled with the `opentelemetry` feature.
qcs-dependencies-client = { version = "0.3.1", optional = true }
optipy = { workspace = true, optional = true }
pyo3 = { version = "0.27.2", default-features = false, features = ["macros", "multiple-pymethods"] }

# Enabled with the `async-tokio` feature.
pyo3-async-runtimes = { version = "0.27.0", features = ["tokio-runtime"], optional = true }
pyo3-stub-gen = { version = "0.17.2", optional = true }
tokio = { version = "1.38.0", features = ["time"], optional = true }

[dev-dependencies]
optipy = { workspace = true }
thiserror = "2.0"
