[package]
edition = "2024"
rust-version = "1.95"
name = "monty"
version = "0.0.21"
authors = ["Samuel Colvin <samuel@pydantic.dev>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A sandboxed, snapshotable Python interpreter written in Rust."
homepage = "https://github.com/pydantic/monty/"
readme = "README.md"
keywords = [
"python",
"interpreter",
"sandbox",
"embedded",
]
categories = [
"compilers",
"emulators",
"development-tools",
]
license = "MIT"
repository = "https://github.com/pydantic/monty/"
resolver = "2"
[features]
memory-model-checks = []
ref-count-return = ["test-hooks"]
test-hooks = ["monty-types/test-hooks"]
[lib]
name = "monty"
path = "src/lib.rs"
[[test]]
name = "assert_messages"
path = "tests/assert_messages.rs"
[[test]]
name = "asyncio"
path = "tests/asyncio.rs"
[[test]]
name = "binary_serde"
path = "tests/binary_serde.rs"
[[test]]
name = "bytecode_limits"
path = "tests/bytecode_limits.rs"
[[test]]
name = "collections"
path = "tests/collections.rs"
[[test]]
name = "dataclass_fields"
path = "tests/dataclass_fields.rs"
[[test]]
name = "dataclass_rejections"
path = "tests/dataclass_rejections.rs"
[[test]]
name = "datetime_format"
path = "tests/datetime_format.rs"
[[test]]
name = "encoding"
path = "tests/encoding.rs"
[[test]]
name = "error_locations"
path = "tests/error_locations.rs"
[[test]]
name = "external_function_identity"
path = "tests/external_function_identity.rs"
[[test]]
name = "file_error_paths"
path = "tests/file_error_paths.rs"
[[test]]
name = "heap_reader_compile_fail"
path = "tests/heap_reader_compile_fail.rs"
[[test]]
name = "inputs"
path = "tests/inputs.rs"
[[test]]
name = "json_error_data"
path = "tests/json_error_data.rs"
[[test]]
name = "json_serde"
path = "tests/json_serde.rs"
[[test]]
name = "main"
path = "tests/main.rs"
[[test]]
name = "math_module"
path = "tests/math_module.rs"
[[test]]
name = "module_dunders"
path = "tests/module_dunders.rs"
[[test]]
name = "name_lookup"
path = "tests/name_lookup.rs"
[[test]]
name = "os_tests"
path = "tests/os_tests.rs"
[[test]]
name = "parse_errors"
path = "tests/parse_errors.rs"
[[test]]
name = "parse_large_literals"
path = "tests/parse_large_literals.rs"
[[test]]
name = "print_collect_limits"
path = "tests/print_collect_limits.rs"
[[test]]
name = "print_writer"
path = "tests/print_writer.rs"
[[test]]
name = "py_object"
path = "tests/py_object.rs"
[[test]]
name = "regex"
path = "tests/regex.rs"
[[test]]
name = "repl"
path = "tests/repl.rs"
[[test]]
name = "resource_limits"
path = "tests/resource_limits.rs"
[[test]]
name = "security"
path = "tests/security.rs"
[[test]]
name = "try_from"
path = "tests/try_from.rs"
[[test]]
name = "type_names"
path = "tests/type_names.rs"
[dependencies.ahash]
version = "0.8.0"
features = ["serde"]
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.fancy-regex]
version = "0.17.0"
[dependencies.hashbrown]
version = "0.16"
[dependencies.indexmap]
version = "2"
[dependencies.itertools]
version = "0.14.0"
[dependencies.itoa]
version = "1"
[dependencies.jiter]
version = "0.16.0"
features = ["num-bigint"]
[dependencies.libm]
version = "0.2"
[dependencies.memchr]
version = "2.7"
[dependencies.monty-macros]
version = "0.0.21"
[dependencies.monty-types]
version = "0.0.21"
[dependencies.num-bigint]
version = "0.4"
features = ["serde"]
[dependencies.num-integer]
version = "0.1"
[dependencies.num-traits]
version = "0.2"
[dependencies.postcard]
version = "1.1"
features = ["alloc"]
[dependencies.ruff_python_ast]
version = "0.0.3"
[dependencies.ruff_python_codegen]
version = "0.0.3"
[dependencies.ruff_python_parser]
version = "0.0.3"
[dependencies.ruff_python_stdlib]
version = "0.0.3"
[dependencies.ruff_source_file]
version = "0.0.3"
[dependencies.ruff_text_size]
version = "0.0.3"
[dependencies.serde]
version = "1.0"
features = [
"derive",
"rc",
]
[dependencies.smallvec]
version = "1.13"
features = ["serde"]
[dependencies.speedate]
version = "0.17.0"
[dependencies.strum]
version = "0.27"
features = ["derive"]
[dependencies.unicode-general-category]
version = "1"
[dependencies.unicode-normalization]
version = "0.1"
[dependencies.unicode_names2]
version = "1"
[dev-dependencies.insta]
version = "1.47"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.tempfile]
version = "3"
[lints.clippy]
absolute_paths = "warn"
allow_attributes = "warn"
cast_precision_loss = "allow"
dbg_macro = "warn"
doc_markdown = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
redundant_clone = "warn"
similar_names = "allow"
too_many_lines = "allow"
undocumented_unsafe_blocks = "warn"
use_self = "warn"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "deny"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(codspeed)",
"cfg(heap_reader_compile_fail_tests)",
"cfg(heap_reader_compile_fail_test_read_while_ref_alive)",
"cfg(heap_reader_compile_fail_test_dec_ref_while_reading)",
"cfg(heap_reader_compile_fail_test_smuggle_heap_read)",
"cfg(heap_reader_compile_fail_test_double_get_mut)",
"cfg(heap_reader_compile_fail_test_heap_mutation_while_reading)",
"cfg(heap_reader_compile_fail_test_mutation_in_map_closure)",
"cfg(heap_reader_compile_fail_test_smuggle_vm)",
"cfg(heap_reader_compile_fail_test_smuggle_and_swap_reader)",
]
[lints.rustdoc]
invalid_codeblock_attributes = "allow"