Merge pull request #8 from BillTheMaker/gobrrr

added explicit chrono-tz version 2
This commit is contained in:
BillTheMaker
2025-11-18 19:53:16 -07:00
committed by GitHub
3 changed files with 106 additions and 13 deletions

100
Cargo.lock generated
View File

@@ -86,7 +86,7 @@ dependencies = [
"arrow-data",
"arrow-schema",
"chrono",
"chrono-tz",
"chrono-tz 0.10.4",
"half",
"hashbrown",
"num-complex",
@@ -353,6 +353,17 @@ dependencies = [
"windows-link 0.2.1",
]
[[package]]
name = "chrono-tz"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e"
dependencies = [
"chrono",
"chrono-tz-build",
"phf 0.11.3",
]
[[package]]
name = "chrono-tz"
version = "0.10.4"
@@ -363,6 +374,17 @@ dependencies = [
"phf 0.12.1",
]
[[package]]
name = "chrono-tz-build"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
dependencies = [
"parse-zoneinfo",
"phf 0.11.3",
"phf_codegen",
]
[[package]]
name = "comfy-table"
version = "7.1.2"
@@ -1027,12 +1049,30 @@ dependencies = [
"windows-link 0.2.1",
]
[[package]]
name = "parse-zoneinfo"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24"
dependencies = [
"regex",
]
[[package]]
name = "percent-encoding"
version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
name = "phf"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
dependencies = [
"phf_shared 0.11.3",
]
[[package]]
name = "phf"
version = "0.12.1"
@@ -1052,6 +1092,35 @@ dependencies = [
"serde",
]
[[package]]
name = "phf_codegen"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
dependencies = [
"phf_generator",
"phf_shared 0.11.3",
]
[[package]]
name = "phf_generator"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
dependencies = [
"phf_shared 0.11.3",
"rand 0.8.5",
]
[[package]]
name = "phf_shared"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
dependencies = [
"siphasher",
]
[[package]]
name = "phf_shared"
version = "0.12.1"
@@ -1110,7 +1179,7 @@ dependencies = [
"hmac",
"md-5",
"memchr",
"rand",
"rand 0.9.2",
"sha2",
"stringprep",
]
@@ -1151,7 +1220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37a6df7eab65fc7bee654a421404947e10a0f7085b6951bf2ea395f4659fb0cf"
dependencies = [
"chrono",
"chrono-tz",
"chrono-tz 0.10.4",
"indexmap",
"indoc",
"libc",
@@ -1177,7 +1246,7 @@ dependencies = [
"arrow-schema",
"arrow-select",
"chrono",
"chrono-tz",
"chrono-tz 0.10.4",
"half",
"indexmap",
"numpy",
@@ -1244,6 +1313,15 @@ version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
[[package]]
name = "rand"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"rand_core 0.6.4",
]
[[package]]
name = "rand"
version = "0.9.2"
@@ -1251,7 +1329,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
dependencies = [
"rand_chacha",
"rand_core",
"rand_core 0.9.3",
]
[[package]]
@@ -1261,9 +1339,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
dependencies = [
"ppv-lite86",
"rand_core",
"rand_core 0.9.3",
]
[[package]]
name = "rand_core"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
[[package]]
name = "rand_core"
version = "0.9.3"
@@ -1640,7 +1724,7 @@ dependencies = [
"pin-project-lite",
"postgres-protocol",
"postgres-types",
"rand",
"rand 0.9.2",
"socket2",
"tokio",
"tokio-util",
@@ -1768,7 +1852,7 @@ dependencies = [
"byteorder",
"bytes",
"chrono",
"chrono-tz",
"chrono-tz 0.8.6",
"deadpool-postgres",
"futures-util",
"mimalloc",

View File

@@ -13,7 +13,7 @@ crate-type = ["cdylib", "rlib"]
# 1. Python Bindings for FFI
pyo3 = { version = "0.27.1", features = ["extension-module", "chrono-tz"] }
chrono-tz = "0.10"
chrono-tz = "0.8"
# 2. Configuration Parsing (YAML)
serde = { version = "1.0", features = ["derive"] }
@@ -54,9 +54,11 @@ pyo3-arrow = "0.15.0"
# 13. System CPU Count (NEW)
num_cpus = "1.16"
[target.'cfg(not(target_env = "msvc"))'.dependencies]
mimalloc = { version = "0.1.39" }
tracing-subscriber = "0.3.20"
tracing = "0.1"
tracing-subscriber = "0.3"
tracing-tracy = "0.11"
tracing-tracy = "0.11"
[target.'cfg(not(target_env = "msvc"))'.dependencies]
mimalloc = { version = "0.1.39" }

View File

@@ -23,6 +23,8 @@ use crate::config::{load_and_validate_config, ConnectorConfig};
// NOTE: run_profiler_logic added, requires definition in parser.rs
use crate::parser::{run_db_logic, run_profiler_logic};
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
// --- THE PYTHON-CALLABLE ENTRY POINT (Load Data) ---
@@ -90,6 +92,11 @@ fn profile_data(config_path: String) -> PyResult<String> {
// --- PYTHON MODULE EXPORT ---
#[pymodule]
fn unchecked_io(_py: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> {
let _ = tracing_subscriber::registry()
.with(tracing_tracy::TracyLayer::new())
.try_init();
m.add_function(wrap_pyfunction!(load_data_from_config, m)?)?;
m.add_function(wrap_pyfunction!(to_pandas_dataframe, m)?)?;
m.add_function(wrap_pyfunction!(profile_data, m)?)?; // NEW: Schema profiler