# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" rust-version = "1.83" name = "pyo3" version = "0.29.2" authors = ["PyO3 Project and Contributors "] build = "build.rs" links = "pyo3-python" exclude = [ "/.gitignore", ".cargo/config", "/codecov.yml", "/Makefile", "/pyproject.toml", "/noxfile.py", "/.github", "/tests/test_compile_error.rs", "/tests/ui", ] autolib = false autobins = false autoexamples = false autotests = false autobenches = false description = "Bindings to Python interpreter" homepage = "https://github.com/pyo3/pyo3" documentation = "https://docs.rs/crate/pyo3/" readme = "README.md" keywords = [ "pyo3", "python", "cpython", "ffi", ] categories = [ "api-bindings", "development-tools::ffi", ] license = "MIT OR Apache-2.0" repository = "https://github.com/pyo3/pyo3" [package.metadata.docs.rs] no-default-features = true features = ["full"] rustdoc-args = [ "--cfg", "docsrs", ] [features] abi3 = ["pyo3-ffi/abi3"] abi3-py310 = [ "abi3-py311", "pyo3-ffi/abi3-py310", ] abi3-py311 = [ "abi3-py312", "pyo3-ffi/abi3-py311", ] abi3-py312 = [ "abi3-py313", "pyo3-ffi/abi3-py312", ] abi3-py313 = [ "abi3-py314", "pyo3-ffi/abi3-py313", ] abi3-py314 = [ "abi3-py315", "pyo3-ffi/abi3-py314", ] abi3-py315 = [ "abi3", "pyo3-ffi/abi3-py315", ] abi3-py38 = [ "abi3-py39", "pyo3-ffi/abi3-py38", ] abi3-py39 = [ "abi3-py310", "pyo3-ffi/abi3-py39", ] abi3t = ["pyo3-ffi/abi3t"] abi3t-py315 = [ "abi3t", "pyo3-ffi/abi3t-py315", ] arc_lock = [ "lock_api", "lock_api/arc_lock", "parking_lot?/arc_lock", ] auto-initialize = [] bigdecimal = [ "dep:bigdecimal", "num-bigint", ] chrono-local = [ "chrono/clock", "dep:iana-time-zone", ] default = ["macros"] experimental-async = [ "macros", "pyo3-macros/experimental-async", ] experimental-inspect = ["pyo3-macros/experimental-inspect"] extension-module = ["pyo3-ffi/extension-module"] full = [ "macros", "anyhow", "arc_lock", "bigdecimal", "bytes", "chrono", "chrono-local", "chrono-tz", "either", "experimental-async", "experimental-inspect", "eyre", "hashbrown", "indexmap", "jiff-02", "lock_api", "num-bigint", "num-complex", "num-rational", "ordered-float", "parking_lot", "py-clone", "rust_decimal", "serde", "smallvec", "time", "uuid", ] generate-import-lib = ["pyo3-ffi/generate-import-lib"] macros = ["pyo3-macros"] multiple-pymethods = [ "inventory", "pyo3-macros/multiple-pymethods", ] nightly = [] num-bigint = [ "dep:num-bigint", "dep:num-traits", ] parking_lot = [ "dep:parking_lot", "lock_api", ] py-clone = [] [lib] name = "pyo3" path = "src/lib.rs" [[test]] name = "test_anyhow" path = "tests/test_anyhow.rs" required-features = ["anyhow"] [[test]] name = "test_append_to_inittab" path = "tests/test_append_to_inittab.rs" required-features = ["macros"] [[test]] name = "test_arithmetics" path = "tests/test_arithmetics.rs" required-features = ["macros"] [[test]] name = "test_buffer" path = "tests/test_buffer.rs" required-features = ["macros"] [[test]] name = "test_buffer_protocol" path = "tests/test_buffer_protocol.rs" required-features = ["macros"] [[test]] name = "test_bytes" path = "tests/test_bytes.rs" required-features = ["macros"] [[test]] name = "test_class_attributes" path = "tests/test_class_attributes.rs" required-features = ["macros"] [[test]] name = "test_class_basics" path = "tests/test_class_basics.rs" required-features = ["macros"] [[test]] name = "test_class_comparisons" path = "tests/test_class_comparisons.rs" required-features = ["macros"] [[test]] name = "test_class_conversion" path = "tests/test_class_conversion.rs" required-features = ["macros"] [[test]] name = "test_class_formatting" path = "tests/test_class_formatting.rs" required-features = ["macros"] [[test]] name = "test_class_init" path = "tests/test_class_init.rs" required-features = ["macros"] [[test]] name = "test_class_new" path = "tests/test_class_new.rs" required-features = ["macros"] [[test]] name = "test_coroutine" path = "tests/test_coroutine.rs" required-features = ["experimental-async"] [[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" required-features = ["macros"] [[test]] name = "test_default_impls" path = "tests/test_default_impls.rs" required-features = ["macros"] [[test]] name = "test_enum" path = "tests/test_enum.rs" required-features = ["macros"] [[test]] name = "test_exceptions" path = "tests/test_exceptions.rs" required-features = ["macros"] [[test]] name = "test_field_cfg" path = "tests/test_field_cfg.rs" required-features = ["macros"] [[test]] name = "test_frompy_intopy_roundtrip" path = "tests/test_frompy_intopy_roundtrip.rs" required-features = ["macros"] [[test]] name = "test_frompyobject" path = "tests/test_frompyobject.rs" required-features = ["macros"] [[test]] name = "test_gc" path = "tests/test_gc.rs" required-features = ["macros"] [[test]] name = "test_getter_setter" path = "tests/test_getter_setter.rs" required-features = ["macros"] [[test]] name = "test_inheritance" path = "tests/test_inheritance.rs" required-features = ["macros"] [[test]] name = "test_init_race" path = "tests/test_init_race.rs" [[test]] name = "test_intopyobject" path = "tests/test_intopyobject.rs" required-features = ["macros"] [[test]] name = "test_macro_docs" path = "tests/test_macro_docs.rs" required-features = ["macros"] [[test]] name = "test_macros" path = "tests/test_macros.rs" required-features = ["macros"] [[test]] name = "test_mapping" path = "tests/test_mapping.rs" required-features = ["macros"] [[test]] name = "test_methods" path = "tests/test_methods.rs" required-features = ["macros"] [[test]] name = "test_module" path = "tests/test_module.rs" required-features = ["macros"] [[test]] name = "test_multiple_pymethods" path = "tests/test_multiple_pymethods.rs" required-features = ["multiple-pymethods"] [[test]] name = "test_proto_methods" path = "tests/test_proto_methods.rs" required-features = ["macros"] [[test]] name = "test_pybuffer_drop_without_interpreter" path = "tests/test_pybuffer_drop_without_interpreter.rs" [[test]] name = "test_pyerr_debug_unformattable" path = "tests/test_pyerr_debug_unformattable.rs" [[test]] name = "test_pyfunction" path = "tests/test_pyfunction.rs" required-features = ["macros"] [[test]] name = "test_pyself" path = "tests/test_pyself.rs" required-features = ["macros"] [[test]] name = "test_sequence" path = "tests/test_sequence.rs" required-features = ["macros"] [[test]] name = "test_serde" path = "tests/test_serde.rs" required-features = ["serde"] [[test]] name = "test_static_slots" path = "tests/test_static_slots.rs" required-features = ["macros"] [[test]] name = "test_string" path = "tests/test_string.rs" required-features = ["macros"] [[test]] name = "test_super" path = "tests/test_super.rs" required-features = ["macros"] [[test]] name = "test_text_signature" path = "tests/test_text_signature.rs" required-features = ["macros"] [[test]] name = "test_variable_arguments" path = "tests/test_variable_arguments.rs" required-features = ["macros"] [[test]] name = "test_various" path = "tests/test_various.rs" required-features = ["macros"] [dependencies.anyhow] version = "1.0.1" optional = true [dependencies.bigdecimal] version = "0.4.7" optional = true [dependencies.bytes] version = "1.10" optional = true [dependencies.chrono] version = "0.4.25" optional = true default-features = false [dependencies.chrono-tz] version = ">= 0.10, < 0.11" optional = true default-features = false [dependencies.either] version = "1.9" optional = true [dependencies.eyre] version = ">= 0.6.8, < 0.7" optional = true [dependencies.hashbrown] version = ">= 0.15.0, < 0.18" features = ["default-hasher"] optional = true default-features = false [dependencies.iana-time-zone] version = "0.1" features = ["fallback"] optional = true [dependencies.indexmap] version = ">= 2.5.0, < 3" optional = true [dependencies.inventory] version = "0.3.5" optional = true [dependencies.jiff-02] version = "0.2" optional = true package = "jiff" [dependencies.libc] version = "0.2.62" [dependencies.lock_api] version = "0.4" optional = true [dependencies.num-bigint] version = "0.4.4" optional = true [dependencies.num-complex] version = ">= 0.4.6, < 0.5" optional = true [dependencies.num-rational] version = "0.4.1" optional = true [dependencies.num-traits] version = "0.2.16" optional = true [dependencies.once_cell] version = "1.21" [dependencies.ordered-float] version = "5.0.0" optional = true default-features = false [dependencies.parking_lot] version = "0.12" optional = true [dependencies.pyo3-ffi] version = "=0.29.2" [dependencies.pyo3-macros] version = "=0.29.2" optional = true [dependencies.rust_decimal] version = "1.15" optional = true default-features = false [dependencies.serde] version = "1.0" optional = true [dependencies.smallvec] version = "1.0" optional = true [dependencies.time] version = "0.3.38" optional = true default-features = false [dependencies.uuid] version = "1.12.0" optional = true [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.parking_lot] version = "0.12.3" features = ["arc_lock"] [dev-dependencies.proptest] version = "1.0" features = ["std"] default-features = false [dev-dependencies.rayon] version = "1.6.1" [dev-dependencies.regex] version = "1.12.3" [dev-dependencies.send_wrapper] version = "0.6" [dev-dependencies.serde] version = "1.0" features = ["derive"] [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.ui_test] version = "0.30.4" [dev-dependencies.uuid] version = "1.10.0" features = ["v4"] [build-dependencies.pyo3-build-config] version = "=0.29.2" [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.ctrlc] version = "3.5.2" [target.'cfg(not(target_has_atomic = "64"))'.dependencies.portable-atomic] version = "1.0" [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" undocumented_unsafe_blocks = "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" unsafe_op_in_unsafe_fn = "warn" unused_lifetimes = "warn" [lints.rust.rust_2018_idioms] level = "warn" priority = -1 [lints.rust.unexpected_cfgs] level = "warn" priority = 0 check-cfg = [ "cfg(pyo3_disable_reference_pool)", "cfg(pyo3_leak_on_drop_without_reference_pool)", "cfg(pyo3_use_raw_dylib)", 'cfg(pyo3_dll, values("python3", "python3_d", "python3t", "python3t_d", "python38", "python38_d", "python39", "python39_d", "python310", "python310_d", "python311", "python311_d", "python312", "python312_d", "python313", "python313_d", "python313t", "python313t_d", "python314", "python314_d", "python314t", "python314t_d", "python315", "python315_d", "python315t", "python315t_d", "python316", "python316_d", "python316t", "python316t_d", "libpypy3.11-c"))', ] [lints.rustdoc] bare_urls = "warn" broken_intra_doc_links = "warn"