Metadata-Version: 2.4
Name: python-dateutil-rust
Version: 2.9.0
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE
License-File: NOTICE
Summary: Pure-Rust dateutil engine: rrule, relativedelta, tz and parser/isoparser with the dateutil interface (rustsmith Stage-1 mirror of dateutil/dateutil)
Keywords: dateutil,rrule,timezone,rust
Home-Page: https://github.com/dateutil/dateutil
Author: dateutil contributors
License-Expression: Apache-2.0
Requires-Python: >=3.9, <4.0
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/John-Cusack/dateutil-rust
Project-URL: Upstream, https://github.com/dateutil/dateutil

# python-dateutil-rust

Pure-Rust port of the `python-dateutil` engine (`rrule`, `relativedelta`,
`tz`) plus the whole `parser`/`isoparser` path, with Python bindings
preserving the `dateutil` interface.
rustsmith Stage-1 mirror of [dateutil/dateutil](https://github.com/dateutil/dateutil)
(Apache-2.0), covering the recurrence/calendar/timezone engine and the
fuzzy/strict/ISO parse path (ADR-015 supersedes the ADR-013 parser
exclusion).

Layout: reusable core crate (`dateutil-core`, no Python dependency) plus a
thin PyO3 binding (`dateutil._dateutil`); `src/dateutil/{rrule,relativedelta,tz/tz}.py`
and `src/dateutil/parser/{_parser,isoparser}.py` are re-export shims over
the extension (`_parser_py.py` alongside is the verbatim upstream module
kept for the `_tzparser` lineage). Custom `parserinfo` subclasses and
`tzinfos` callables stay dynamic via the `Info`-trait/Python-callback seam
documented in `src/parser_mod.rs`. Two-track bench corpora + harness live
in `bench_parser/` (manifest hashes frozen before measurement; workload
contract and repro command in `bench_parser/WORKLOAD.md`).

<!-- RUSTSMITH-PERF:BEGIN (generated by `rustsmith release-prep`; do not hand-edit) -->
## Measured performance
No accepted optimizations yet (mirror baseline); re-run `release-prep` after `run --stage optimize` merges winners.
Artifact hashes are intentionally absent here; see `release-manifest.json`.
<!-- RUSTSMITH-PERF:END -->

