[package]
name = "cloacina-python"
version.workspace = true
edition = "2021"
description = "Python runtime + pyo3 bindings for Cloacina. Split out of the main cloacina crate so binaries that don't execute Python don't transitively link pyo3 (CLOACI-T-0529)."
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
readme.workspace = true

[lib]
name = "cloacina_python"
crate-type = ["lib", "cdylib"]

[features]
# Default includes postgres + sqlite + macros so the maturin-built `cloaca`
# wheel retains the same feature surface it had when Python lived inside
# `cloacina`. `extension-module` is the pyo3 switch maturin flips on.
default = ["postgres", "sqlite", "macros"]
postgres = ["cloacina/postgres"]
sqlite = ["cloacina/sqlite"]
macros = ["cloacina/macros"]
kafka = ["cloacina/kafka"]
auth = ["cloacina/auth"]
extension-module = ["pyo3/extension-module"]

[dependencies]
cloacina = { version = "0.9.0", path = "../cloacina", default-features = false }
cloacina-computation-graph = { version = "0.9.0", path = "../cloacina-computation-graph" }
cloacina-workflow = { workspace = true }
cloacina-workflow-plugin = { version = "0.9.0", path = "../cloacina-workflow-plugin" }

async-trait.workspace = true
serde_json.workspace = true
serde = { version = "1.0", features = ["derive"] }
chrono = { version = "0.4", features = ["serde"] }
fidius-core = "0.2.1"
once_cell.workspace = true
pyo3 = { version = "0.25", features = ["abi3-py39"] }
pythonize = { version = "0.25" }
tempfile = { version = "3.2" }
tokio = { version = "1.0", features = ["full"] }
thiserror = { version = "1.0" }
tracing = { version = "0.1" }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
parking_lot = { version = "0.12" }
url = { version = "2.5" }
uuid = { version = "1.0", features = ["serde", "v4", "v5"] }

[build-dependencies]
cloacina-build = { version = "0.9.0", path = "../cloacina-build" }

[dev-dependencies]
fidius-core = "0.2.1"
serial_test = "3.2.0"
tempfile = "3.2"
tokio = { version = "1.0", features = ["full"] }
uuid = { version = "1.0", features = ["v4"] }
