direct conversions for dt64 units #19487
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ATM almost all datetimestruct conversions in tslibs use PANDAS_FR_ns. The exceptions are two functions in tslibs.conversions that convert non-nano datetime64 to datetime64[ns]. This PR replaces those two calls with a more performant implementation (asvs on the way).
The perf improvement is available b/c the functions currently convert dt64[not-ns] --> datetimestruct and then convert datetimestruct-->dt64[ns]. But for most units the conversion is just a multiplication, so we can cut out the convert-to-dtstruct step.
Finally
np_datetime.convert_datetime_to_dtstruct
is not actually used, but is included for exposition. After this PR, ujson notwithstanding (#19486), the remaining src/datetime files could be simplified quite a bit