pyo3 0.23.2

Bindings to Python interpreter
Documentation
[build-dependencies.pyo3-build-config]
features = ["resolve-config"]
version = "=0.23.2"

[dependencies.anyhow]
optional = true
version = "1.0.1"

[dependencies.cfg-if]
version = "1.0"

[dependencies.chrono]
default-features = false
optional = true
version = "0.4.25"

[dependencies.chrono-tz]
default-features = false
optional = true
version = ">= 0.10, < 0.11"

[dependencies.either]
optional = true
version = "1.9"

[dependencies.eyre]
optional = true
version = ">= 0.6.8, < 0.7"

[dependencies.hashbrown]
optional = true
version = ">= 0.14.5, < 0.16"

[dependencies.indexmap]
optional = true
version = ">= 2.5.0, < 3"

[dependencies.indoc]
optional = true
version = "2.0.1"

[dependencies.inventory]
optional = true
version = "0.3.0"

[dependencies.libc]
version = "0.2.62"

[dependencies.memoffset]
version = "0.9"

[dependencies.num-bigint]
optional = true
version = "0.4.2"

[dependencies.num-complex]
optional = true
version = ">= 0.4.6, < 0.5"

[dependencies.num-rational]
optional = true
version = "0.4.1"

[dependencies.once_cell]
version = "1.13"

[dependencies.pyo3-ffi]
version = "=0.23.2"

[dependencies.pyo3-macros]
optional = true
version = "=0.23.2"

[dependencies.rust_decimal]
default-features = false
optional = true
version = "1.15"

[dependencies.serde]
optional = true
version = "1.0"

[dependencies.smallvec]
optional = true
version = "1.0"

[dependencies.unindent]
optional = true
version = "0.2.1"

[dev-dependencies.assert_approx_eq]
version = "1.1.0"

[dev-dependencies.chrono]
version = "0.4.25"

[dev-dependencies.chrono-tz]
version = ">= 0.10, < 0.11"

[dev-dependencies.futures]
version = "0.3.28"

[dev-dependencies.proptest]
default-features = false
features = ["std"]
version = "1.0"

[dev-dependencies.rayon]
version = "1.6.1"

[dev-dependencies.send_wrapper]
version = "0.6"

[dev-dependencies.serde]
features = ["derive"]
version = "1.0"

[dev-dependencies.serde_json]
version = "1.0.61"

[dev-dependencies.static_assertions]
version = "1.1.0"

[dev-dependencies.tempfile]
version = "3.12.0"

[dev-dependencies.trybuild]
version = ">=1.0.70"

[dev-dependencies.uuid]
features = ["v4"]
version = "1.10.0"

[features]
abi3 = ["pyo3-build-config/abi3", "pyo3-ffi/abi3"]
abi3-py310 = ["abi3-py311", "pyo3-build-config/abi3-py310", "pyo3-ffi/abi3-py310"]
abi3-py311 = ["abi3-py312", "pyo3-build-config/abi3-py311", "pyo3-ffi/abi3-py311"]
abi3-py312 = ["abi3", "pyo3-build-config/abi3-py312", "pyo3-ffi/abi3-py312"]
abi3-py37 = ["abi3-py38", "pyo3-build-config/abi3-py37", "pyo3-ffi/abi3-py37"]
abi3-py38 = ["abi3-py39", "pyo3-build-config/abi3-py38", "pyo3-ffi/abi3-py38"]
abi3-py39 = ["abi3-py310", "pyo3-build-config/abi3-py39", "pyo3-ffi/abi3-py39"]
auto-initialize = []
default = ["macros"]
experimental-async = ["macros", "pyo3-macros/experimental-async"]
experimental-inspect = []
extension-module = ["pyo3-ffi/extension-module"]
full = ["macros", "anyhow", "chrono", "chrono-tz", "either", "experimental-async", "experimental-inspect", "eyre", "hashbrown", "indexmap", "num-bigint", "num-complex", "num-rational", "py-clone", "rust_decimal", "serde", "smallvec"]
generate-import-lib = ["pyo3-ffi/generate-import-lib"]
macros = ["pyo3-macros", "indoc", "unindent"]
multiple-pymethods = ["inventory", "pyo3-macros/multiple-pymethods"]
nightly = []
py-clone = []

[lib]
name = "pyo3"
path = "src/lib.rs"

[lints.clippy]
checked_conversions = "warn"
dbg_macro = "warn"
explicit_into_iter_loop = "warn"
explicit_iter_loop = "warn"
filter_map_next = "warn"
flat_map_option = "warn"
let_unit_value = "warn"
manual_assert = "warn"
manual_ok_or = "warn"
todo = "warn"
unnecessary_wraps = "warn"
used_underscore_binding = "warn"
useless_transmute = "warn"

[lints.rust]
elided_lifetimes_in_paths = "warn"
invalid_doc_attributes = "warn"
rust_2021_prelude_collisions = "warn"
unused_lifetimes = "warn"

[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1

[lints.rustdoc]
bare_urls = "warn"
broken_intra_doc_links = "warn"

[package]
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = "build.rs"
categories = ["api-bindings", "development-tools::ffi"]
description = "Bindings to Python interpreter"
documentation = "https://docs.rs/crate/pyo3/"
edition = "2021"
exclude = ["/.gitignore", ".cargo/config", "/codecov.yml", "/Makefile", "/pyproject.toml", "/noxfile.py", "/.github", "/tests/test_compile_error.rs", "/tests/ui"]
homepage = "https://github.com/pyo3/pyo3"
keywords = ["pyo3", "python", "cpython", "ffi"]
license = "MIT OR Apache-2.0"
name = "pyo3"
readme = "README.md"
repository = "https://github.com/pyo3/pyo3"
rust-version = "1.63"
version = "0.23.2"

[package.metadata.docs.rs]
features = ["full"]
no-default-features = true
rustdoc-args = ["--cfg", "docsrs"]

[target.'cfg(not(target_has_atomic = "64"))'.dependencies.portable-atomic]
version = "1.0"

[[test]]
name = "test_anyhow"
path = "tests/test_anyhow.rs"

[[test]]
name = "test_append_to_inittab"
path = "tests/test_append_to_inittab.rs"

[[test]]
name = "test_arithmetics"
path = "tests/test_arithmetics.rs"

[[test]]
name = "test_buffer"
path = "tests/test_buffer.rs"

[[test]]
name = "test_buffer_protocol"
path = "tests/test_buffer_protocol.rs"

[[test]]
name = "test_bytes"
path = "tests/test_bytes.rs"

[[test]]
name = "test_class_attributes"
path = "tests/test_class_attributes.rs"

[[test]]
name = "test_class_basics"
path = "tests/test_class_basics.rs"

[[test]]
name = "test_class_comparisons"
path = "tests/test_class_comparisons.rs"

[[test]]
name = "test_class_conversion"
path = "tests/test_class_conversion.rs"

[[test]]
name = "test_class_formatting"
path = "tests/test_class_formatting.rs"

[[test]]
name = "test_class_new"
path = "tests/test_class_new.rs"

[[test]]
name = "test_coroutine"
path = "tests/test_coroutine.rs"

[[test]]
name = "test_datetime"
path = "tests/test_datetime.rs"

[[test]]
name = "test_datetime_import"
path = "tests/test_datetime_import.rs"

[[test]]
name = "test_declarative_module"
path = "tests/test_declarative_module.rs"

[[test]]
name = "test_default_impls"
path = "tests/test_default_impls.rs"

[[test]]
name = "test_enum"
path = "tests/test_enum.rs"

[[test]]
name = "test_exceptions"
path = "tests/test_exceptions.rs"

[[test]]
name = "test_field_cfg"
path = "tests/test_field_cfg.rs"

[[test]]
name = "test_frompy_intopy_roundtrip"
path = "tests/test_frompy_intopy_roundtrip.rs"

[[test]]
name = "test_frompyobject"
path = "tests/test_frompyobject.rs"

[[test]]
name = "test_gc"
path = "tests/test_gc.rs"

[[test]]
name = "test_getter_setter"
path = "tests/test_getter_setter.rs"

[[test]]
name = "test_inheritance"
path = "tests/test_inheritance.rs"

[[test]]
name = "test_intopyobject"
path = "tests/test_intopyobject.rs"

[[test]]
name = "test_macro_docs"
path = "tests/test_macro_docs.rs"

[[test]]
name = "test_macros"
path = "tests/test_macros.rs"

[[test]]
name = "test_mapping"
path = "tests/test_mapping.rs"

[[test]]
name = "test_methods"
path = "tests/test_methods.rs"

[[test]]
name = "test_module"
path = "tests/test_module.rs"

[[test]]
name = "test_multiple_pymethods"
path = "tests/test_multiple_pymethods.rs"

[[test]]
name = "test_proto_methods"
path = "tests/test_proto_methods.rs"

[[test]]
name = "test_pyfunction"
path = "tests/test_pyfunction.rs"

[[test]]
name = "test_pyself"
path = "tests/test_pyself.rs"

[[test]]
name = "test_sequence"
path = "tests/test_sequence.rs"

[[test]]
name = "test_serde"
path = "tests/test_serde.rs"

[[test]]
name = "test_static_slots"
path = "tests/test_static_slots.rs"

[[test]]
name = "test_string"
path = "tests/test_string.rs"

[[test]]
name = "test_super"
path = "tests/test_super.rs"

[[test]]
name = "test_text_signature"
path = "tests/test_text_signature.rs"

[[test]]
name = "test_variable_arguments"
path = "tests/test_variable_arguments.rs"

[[test]]
name = "test_various"
path = "tests/test_various.rs"