pyo3-built icon indicating copy to clipboard operation
pyo3-built copied to clipboard

Do not add import bounds

Open orlp opened this issue 1 year ago • 0 comments

The pyo3_built macro adds an import bound for email.utils to parse a string date into a datetime, which seems really unnecessary to me. It adds a significant amount of import time to our library.

    ($py: ident, $info: ident, $dict: ident, "time") => {
        let dt = $py
            .import_bound("email.utils")?
            .call_method1("parsedate_to_datetime", ($info::BUILT_TIME_UTC,))?;
        $dict.set_item("info-time", dt)?;
    };

Even parsing the date in Rust and importing datetime to generate a Datetime object directly (while significantly better) seems unnecessary, although that would be a backwards-compatible.

My suggestion would be to replace the info-time field with a ISO 8601 timestamp string that we generate on the Rust side. Then if a user really wants a Datetime they can just datetime.datetime.fromisoformat the string.

orlp avatar May 18 '24 11:05 orlp