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


--

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker@noaa.gov