# 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.63"
name = "pyo3"
version = "0.23.2"
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
build = "build.rs"
exclude = [
    "/.gitignore",
    ".cargo/config",
    "/codecov.yml",
    "/Makefile",
    "/pyproject.toml",
    "/noxfile.py",
    "/.github",
    "/tests/test_compile_error.rs",
    "/tests/ui",
]
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]
features = ["full"]
no-default-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

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

[[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"

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

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

[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.14.5, < 0.16"
optional = true

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

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

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

[dependencies.libc]
version = "0.2.62"

[dependencies.memoffset]
version = "0.9"

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

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

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

[dependencies.once_cell]
version = "1.13"

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

[dependencies.pyo3-macros]
version = "=0.23.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.unindent]
version = "0.2.1"
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.proptest]
version = "1.0"
features = ["std"]
default-features = false

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

[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.trybuild]
version = ">=1.0.70"

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

[build-dependencies.pyo3-build-config]
version = "=0.23.2"
features = ["resolve-config"]

[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 = []

[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"
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"
