
On Wed, Dec 6, 2017 at 3:07 PM, Paul Ganssle pganssle@gmail.com wrote:
Here is the PR I've submitted:
https://github.com/python/cpython/pull/4699
The contract that I'm supporting (and, I think it can be argued, the only reasonable contract in the intial implementation) is the following:
dtstr = dt.isoformat(*args, **kwargs) dt_rt = datetime.fromisoformat(dtstr) assert dt_rt == dt # The two points represent the
same absolute time assert dt_rt.replace(tzinfo=None) == dt.replace(tzinfo=None) # And the same wall time
that looks good.
And I'm sorry, I got a bit lost in the PR, but you are attaching an "offset" tzinfo, when parsing an iso string that has one, yes?
I see this in the comments in the PR:
""" This does not support parsing arbitrary ISO 8601 strings - it is only intended as the inverse operation of :meth:`datetime.isoformat` """
I fully agree that that's the MVP -- but is it that hard to parse arbitrary ISO8601 strings in once you've gotten this far? It's a bit uglier than I'd like, but not THAT bad a spec.
what ISO8601 compatible features are not supported?
-CHB