Our Timestamp constructor is not positionally aligned with datetime.datetime since we support a nanosecond argument which comes in between microsecond and tzinfo.

This is the main cause for https://github.com/pandas-dev/pandas/issues/32174 as dispatching to datetime.datetime methods sometimes reconstructs Timestamp with positional arguments.

nanosecond should be moved to the last positional argument in the Timestamp constructor.

Comment From: shang-vikas

Hi @mroeschke , i would like to take this up.

Comment From: mroeschke

Great @shang-vikas! This will involve a deprecation cycle as moving the position of the nanosecond argument would be a breaking API change.

Comment From: jbrockmendel

is this closed by #49416?

Comment From: mroeschke

Might not have been fully closed by #49416. According to test_constructor_nanosecond looks like nanosecond is still accepted positionally when in #49416 it was supposed to be keyword only?

Comment From: jbrockmendel

Huh. The signature in Timestamp.__new__ looks like nanosecond should be keyword only. Might be a cython issue?