ciso8601


Nameciso8601 JSON
Version 2.3.2 PyPI version JSON
download
home_pagehttps://github.com/closeio/ciso8601
SummaryFast ISO8601 date time parser for Python written in C
upload_time2024-12-09 12:26:40
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ========
ciso8601
========

.. image:: https://img.shields.io/circleci/project/github/closeio/ciso8601.svg
    :target: https://circleci.com/gh/closeio/ciso8601/tree/master

.. image:: https://img.shields.io/pypi/v/ciso8601.svg
    :target: https://pypi.org/project/ciso8601/

.. image:: https://img.shields.io/pypi/pyversions/ciso8601.svg
    :target: https://pypi.org/project/ciso8601/

``ciso8601`` converts `ISO 8601`_ or `RFC 3339`_ date time strings into Python datetime objects.

Since it's written as a C module, it is much faster than other Python libraries.
Tested with cPython 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13.

.. _ISO 8601: https://en.wikipedia.org/wiki/ISO_8601
.. _RFC 3339: https://tools.ietf.org/html/rfc3339

(Interested in working on projects like this? `Close`_ is looking for `great engineers`_ to join our team)

.. _Close: https://close.com
.. _great engineers: https://jobs.close.com


.. contents:: Contents


Quick start
-----------

.. code:: bash

  % pip install ciso8601

.. code:: python

  In [1]: import ciso8601

  In [2]: ciso8601.parse_datetime('2014-12-05T12:30:45.123456-05:30')
  Out[2]: datetime.datetime(2014, 12, 5, 12, 30, 45, 123456, tzinfo=pytz.FixedOffset(330))

  In [3]: ciso8601.parse_datetime('20141205T123045')
  Out[3]: datetime.datetime(2014, 12, 5, 12, 30, 45)

Migration to v2
---------------

Version 2.0.0 of ``ciso8601`` changed the core implementation. This was not entirely backwards compatible, and care should be taken when migrating
See `CHANGELOG`_ for the Migration Guide.

.. _CHANGELOG: https://github.com/closeio/ciso8601/blob/master/CHANGELOG.md

When should I not use ``ciso8601``?
-----------------------------------

``ciso8601`` is not necessarily the best solution for every use case (especially since Python 3.11). See `Should I use ciso8601?`_

.. _`Should I use ciso8601?`: https://github.com/closeio/ciso8601/blob/master/why_ciso8601.md

Error handling
--------------

Starting in v2.0.0, ``ciso8601`` offers strong guarantees when it comes to parsing strings.

``parse_datetime(dt: String): datetime`` is a function that takes a string and either:

* Returns a properly parsed Python datetime, **if and only if** the **entire** string conforms to the supported subset of ISO 8601
* Raises a ``ValueError`` with a description of the reason why the string doesn't conform to the supported subset of ISO 8601

If time zone information is provided, an aware datetime object will be returned. Otherwise, a naive datetime is returned.

Benchmark
---------

Parsing a timestamp with no time zone information (e.g., ``2014-01-09T21:48:00``):

.. <include:benchmark_with_no_time_zone.rst>

.. table::

    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |             Module             |Python 3.13|Python 3.12|Python 3.11|Python 3.10|Relative slowdown (versus ciso8601, latest Python)|…|Python 3.9|Python 3.8|
    +================================+===========+===========+===========+===========+==================================================+=+==========+==========+
    |ciso8601                        |64.8 nsec  |62.8 nsec  |60.1 nsec  |91.7 nsec  |N/A                                               |…|86 nsec   |92.9 nsec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |backports.datetime_fromisoformat|N/A        |N/A        |N/A        |73.6 nsec  |0.8x                                              |…|70 nsec   |75.9 nsec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |datetime (builtin)              |147 nsec   |138 nsec   |123 nsec   |N/A        |2.3x                                              |…|N/A       |N/A       |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |pendulum                        |171 nsec   |181 nsec   |175 nsec   |214 nsec   |2.6x                                              |…|179 nsec  |180 nsec  |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |udatetime                       |542 nsec   |563 nsec   |525 nsec   |555 nsec   |8.4x                                              |…|551 nsec  |553 nsec  |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |str2date                        |3.29 usec  |3.53 usec  |3.52 usec  |3.85 usec  |50.8x                                             |…|3.72 usec |3.9 usec  |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |iso8601utils                    |N/A        |N/A        |N/A        |N/A        |56.9x                                             |…|4.89 usec |4.89 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |iso8601                         |5.1 usec   |5.4 usec   |5.18 usec  |5.38 usec  |78.8x                                             |…|5.36 usec |5.55 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |isodate                         |5.76 usec  |5.85 usec  |5.21 usec  |5.91 usec  |89.0x                                             |…|5.97 usec |6.07 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |PySO8601                        |10 usec    |11.5 usec  |7.99 usec  |10.9 usec  |155.0x                                            |…|9.83 usec |9.81 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |aniso8601                       |12.1 usec  |12.5 usec  |11.1 usec  |15.1 usec  |186.9x                                            |…|15.4 usec |15.6 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |zulu                            |12.3 usec  |13.6 usec  |12.6 usec  |14.2 usec  |189.4x                                            |…|14.5 usec |14.2 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |maya                            |35.9 usec  |N/A        |40.6 usec  |46.7 usec  |554.3x                                            |…|45.4 usec |46.3 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |python-dateutil                 |36.2 usec  |36.9 usec  |36.1 usec  |44 usec    |558.5x                                            |…|46.4 usec |45.2 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |arrow                           |42.9 usec  |43.8 usec  |41.2 usec  |48.8 usec  |662.7x                                            |…|50.7 usec |50.1 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |metomi-isodatetime              |828 usec   |822 usec   |791 usec   |1.09 msec  |12781.0x                                          |…|1.1 msec  |1.11 msec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |moment                          |1.28 msec  |1.32 msec  |1.29 msec  |1.36 msec  |19696.9x                                          |…|1.37 msec |1.34 msec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+

ciso8601 takes 64.8 nsec, which is **2.3x faster than datetime (builtin)**, the next fastest Python 3.13 parser in this comparison.

.. </include:benchmark_with_no_time_zone.rst>

Parsing a timestamp with time zone information (e.g., ``2014-01-09T21:48:00-05:30``):

.. <include:benchmark_with_time_zone.rst>

.. table::

    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |             Module             |Python 3.13|Python 3.12|Python 3.11|Python 3.10|Relative slowdown (versus ciso8601, latest Python)|…|Python 3.9|Python 3.8|
    +================================+===========+===========+===========+===========+==================================================+=+==========+==========+
    |ciso8601                        |73.9 nsec  |71 nsec    |65.6 nsec  |97.5 nsec  |N/A                                               |…|92.9 nsec |96.6 nsec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |backports.datetime_fromisoformat|N/A        |N/A        |N/A        |99.2 nsec  |1.0x                                              |…|93 nsec   |99.4 nsec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |datetime (builtin)              |205 nsec   |198 nsec   |178 nsec   |N/A        |2.8x                                              |…|N/A       |N/A       |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |pendulum                        |251 nsec   |259 nsec   |251 nsec   |262 nsec   |3.4x                                              |…|264 nsec  |264 nsec  |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |udatetime                       |684 nsec   |700 nsec   |646 nsec   |684 nsec   |9.3x                                              |…|688 nsec  |676 nsec  |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |str2date                        |5.95 usec  |4.34 usec  |4.11 usec  |4.58 usec  |80.5x                                             |…|4.6 usec  |4.82 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |iso8601                         |7.68 usec  |8.56 usec  |7.62 usec  |7.99 usec  |103.9x                                            |…|7.83 usec |8.16 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |isodate                         |7.77 usec  |8.53 usec  |7.54 usec  |7.88 usec  |105.0x                                            |…|8.12 usec |8.4 usec  |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |iso8601utils                    |N/A        |N/A        |N/A        |N/A        |152.2x                                            |…|14.1 usec |14.6 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |zulu                            |17.8 usec  |16.9 usec  |15.7 usec  |17.3 usec  |241.3x                                            |…|17.3 usec |17.6 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |aniso8601                       |18 usec    |18.7 usec  |16.4 usec  |21.5 usec  |243.1x                                            |…|22.5 usec |22.8 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |PySO8601                        |18.3 usec  |16.6 usec  |14.3 usec  |15.8 usec  |247.5x                                            |…|16.2 usec |16.4 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |maya                            |46.2 usec  |N/A        |41 usec    |47.5 usec  |625.0x                                            |…|45.2 usec |47 usec   |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |python-dateutil                 |47.1 usec  |48.2 usec  |47.1 usec  |57.3 usec  |636.5x                                            |…|60.4 usec |58.9 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |arrow                           |57.7 usec  |53.8 usec  |50.8 usec  |60.2 usec  |780.2x                                            |…|59.4 usec |60.1 usec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |metomi-isodatetime              |876 usec   |823 usec   |795 usec   |1.09 msec  |11846.4x                                          |…|1.09 msec |1.13 msec |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+
    |moment                          |❌         |❌         |❌         |❌         |2070678.8x                                        |…|❌        |❌        |
    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+

ciso8601 takes 73.9 nsec, which is **2.8x faster than datetime (builtin)**, the next fastest Python 3.13 parser in this comparison.

.. </include:benchmark_with_time_zone.rst>

.. <include:benchmark_module_versions.rst>

Tested on Linux 6.11.5-orbstack-00280-g96d99c92a42b using the following modules:

.. code:: python

  aniso8601==9.0.1
  arrow==1.3.0
  backports.datetime_fromisoformat==2.0.2
  ciso8601==2.3.1
  iso8601==2.1.0
  iso8601utils==0.1.2
  isodate==0.7.2
  maya==0.6.1
  metomi-isodatetime==1!3.1.0
  moment==0.12.1
  pendulum==3.0.0
  PySO8601==0.2.0
  python-dateutil==2.9.0.post0
  str2date==0.905
  udatetime==0.0.17
  zulu==2.0.1

.. </include:benchmark_module_versions.rst>

For full benchmarking details (or to run the benchmark yourself), see `benchmarking/README.rst`_

.. _`benchmarking/README.rst`: https://github.com/closeio/ciso8601/blob/master/benchmarking/README.rst

Supported subset of ISO 8601
----------------------------

.. |datetime.fromisoformat| replace:: ``datetime.fromisoformat``
.. _datetime.fromisoformat: https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat

``ciso8601`` only supports a subset of ISO 8601, but supports a superset of what is supported by Python itself (|datetime.fromisoformat|_), and supports the entirety of the `RFC 3339`_ specification.

Date formats
^^^^^^^^^^^^

The following date formats are supported:

.. table::
   :widths: auto

   ============================= ============== ==================
   Format                        Example        Supported
   ============================= ============== ==================
   ``YYYY-MM-DD`` (extended)     ``2018-04-29`` ✅
   ``YYYY-MM`` (extended)        ``2018-04``    ✅
   ``YYYYMMDD`` (basic)          ``20180429``   ✅
   ``YYYY-Www-D`` (week date)    ``2009-W01-1`` ✅
   ``YYYY-Www`` (week date)      ``2009-W01``   ✅
   ``YYYYWwwD`` (week date)      ``2009W011``   ✅
   ``YYYYWww`` (week date)       ``2009W01``    ✅
   ``YYYY-DDD`` (ordinal date)   ``1981-095``   ✅
   ``YYYYDDD`` (ordinal date)    ``1981095``    ✅
   ============================= ============== ==================

Uncommon ISO 8601 date formats are not supported:

.. table::
   :widths: auto

   ============================= ============== ==================
   Format                        Example        Supported
   ============================= ============== ==================
   ``--MM-DD`` (omitted year)    ``--04-29``    ❌
   ``--MMDD`` (omitted year)     ``--0429``     ❌
   ``±YYYYY-MM`` (>4 digit year) ``+10000-04``  ❌
   ``+YYYY-MM`` (leading +)      ``+2018-04``   ❌
   ``-YYYY-MM`` (negative -)     ``-2018-04``   ❌
   ============================= ============== ==================

Time formats
^^^^^^^^^^^^

Times are optional and are separated from the date by the letter ``T``.

Consistent with `RFC 3339`__, ``ciso8601`` also allows either a space character, or a lower-case ``t``, to be used instead of a ``T``.

__ https://stackoverflow.com/questions/522251/whats-the-difference-between-iso-8601-and-rfc-3339-date-formats

The following time formats are supported:

.. table::
   :widths: auto

   =================================== =================== ==============
   Format                              Example             Supported
   =================================== =================== ==============
   ``hh``                              ``11``              ✅
   ``hhmm``                            ``1130``            ✅
   ``hh:mm``                           ``11:30``           ✅
   ``hhmmss``                          ``113059``          ✅
   ``hh:mm:ss``                        ``11:30:59``        ✅
   ``hhmmss.ssssss``                   ``113059.123456``   ✅
   ``hh:mm:ss.ssssss``                 ``11:30:59.123456`` ✅
   ``hhmmss,ssssss``                   ``113059,123456``   ✅
   ``hh:mm:ss,ssssss``                 ``11:30:59,123456`` ✅
   Midnight (special case)             ``24:00:00``        ✅
   ``hh.hhh`` (fractional hours)       ``11.5``            ❌
   ``hh:mm.mmm`` (fractional minutes)  ``11:30.5``         ❌
   =================================== =================== ==============

**Note:** Python datetime objects only have microsecond precision (6 digits). Any additional precision will be truncated.

Time zone information
^^^^^^^^^^^^^^^^^^^^^

Time zone information may be provided in one of the following formats:

.. table::
   :widths: auto

   ========== ========== ===========
   Format     Example    Supported
   ========== ========== ===========
   ``Z``      ``Z``      ✅
   ``z``      ``z``      ✅
   ``±hh``    ``+11``    ✅
   ``±hhmm``  ``+1130``  ✅
   ``±hh:mm`` ``+11:30`` ✅
   ========== ========== ===========

While the ISO 8601 specification allows the use of MINUS SIGN (U+2212) in the time zone separator, ``ciso8601`` only supports the use of the HYPHEN-MINUS (U+002D) character.

Consistent with `RFC 3339`_, ``ciso8601`` also allows a lower-case ``z`` to be used instead of a ``Z``.

Strict RFC 3339 parsing
-----------------------

``ciso8601`` parses ISO 8601 datetimes, which can be thought of as a superset of `RFC 3339`_ (`roughly`_). In cases where you might want strict RFC 3339 parsing, ``ciso8601`` offers a ``parse_rfc3339`` method, which behaves in a similar manner to ``parse_datetime``:

.. _roughly: https://stackoverflow.com/questions/522251/whats-the-difference-between-iso-8601-and-rfc-3339-date-formats

``parse_rfc3339(dt: String): datetime`` is a function that takes a string and either:

* Returns a properly parsed Python datetime, **if and only if** the **entire** string conforms to RFC 3339.
* Raises a ``ValueError`` with a description of the reason why the string doesn't conform to RFC 3339.

Ignoring time zone information while parsing
--------------------------------------------

It takes more time to parse timestamps with time zone information, especially if they're not in UTC. However, there are times when you don't care about time zone information, and wish to produce naive datetimes instead.
For example, if you are certain that your program will only parse timestamps from a single time zone, you might want to strip the time zone information and only output naive datetimes.

In these limited cases, there is a second function provided.
``parse_datetime_as_naive`` will ignore any time zone information it finds and, as a result, is faster for timestamps containing time zone information.

.. code:: python

  In [1]: import ciso8601

  In [2]: ciso8601.parse_datetime_as_naive('2014-12-05T12:30:45.123456-05:30')
  Out[2]: datetime.datetime(2014, 12, 5, 12, 30, 45, 123456)

NOTE: ``parse_datetime_as_naive`` is only useful in the case where your timestamps have time zone information, but you want to ignore it. This is somewhat unusual.
If your timestamps don't have time zone information (i.e. are naive), simply use ``parse_datetime``. It is just as fast.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/closeio/ciso8601",
    "name": "ciso8601",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/09/e9/d83711081c997540aee59ad2f49d81f01d33e8551d766b0ebde346f605af/ciso8601-2.3.2.tar.gz",
    "platform": null,
    "description": "========\nciso8601\n========\n\n.. image:: https://img.shields.io/circleci/project/github/closeio/ciso8601.svg\n    :target: https://circleci.com/gh/closeio/ciso8601/tree/master\n\n.. image:: https://img.shields.io/pypi/v/ciso8601.svg\n    :target: https://pypi.org/project/ciso8601/\n\n.. image:: https://img.shields.io/pypi/pyversions/ciso8601.svg\n    :target: https://pypi.org/project/ciso8601/\n\n``ciso8601`` converts `ISO 8601`_ or `RFC 3339`_ date time strings into Python datetime objects.\n\nSince it's written as a C module, it is much faster than other Python libraries.\nTested with cPython 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13.\n\n.. _ISO 8601: https://en.wikipedia.org/wiki/ISO_8601\n.. _RFC 3339: https://tools.ietf.org/html/rfc3339\n\n(Interested in working on projects like this? `Close`_ is looking for `great engineers`_ to join our team)\n\n.. _Close: https://close.com\n.. _great engineers: https://jobs.close.com\n\n\n.. contents:: Contents\n\n\nQuick start\n-----------\n\n.. code:: bash\n\n  % pip install ciso8601\n\n.. code:: python\n\n  In [1]: import ciso8601\n\n  In [2]: ciso8601.parse_datetime('2014-12-05T12:30:45.123456-05:30')\n  Out[2]: datetime.datetime(2014, 12, 5, 12, 30, 45, 123456, tzinfo=pytz.FixedOffset(330))\n\n  In [3]: ciso8601.parse_datetime('20141205T123045')\n  Out[3]: datetime.datetime(2014, 12, 5, 12, 30, 45)\n\nMigration to v2\n---------------\n\nVersion 2.0.0 of ``ciso8601`` changed the core implementation. This was not entirely backwards compatible, and care should be taken when migrating\nSee `CHANGELOG`_ for the Migration Guide.\n\n.. _CHANGELOG: https://github.com/closeio/ciso8601/blob/master/CHANGELOG.md\n\nWhen should I not use ``ciso8601``?\n-----------------------------------\n\n``ciso8601`` is not necessarily the best solution for every use case (especially since Python 3.11). See `Should I use ciso8601?`_\n\n.. _`Should I use ciso8601?`: https://github.com/closeio/ciso8601/blob/master/why_ciso8601.md\n\nError handling\n--------------\n\nStarting in v2.0.0, ``ciso8601`` offers strong guarantees when it comes to parsing strings.\n\n``parse_datetime(dt: String): datetime`` is a function that takes a string and either:\n\n* Returns a properly parsed Python datetime, **if and only if** the **entire** string conforms to the supported subset of ISO 8601\n* Raises a ``ValueError`` with a description of the reason why the string doesn't conform to the supported subset of ISO 8601\n\nIf time zone information is provided, an aware datetime object will be returned. Otherwise, a naive datetime is returned.\n\nBenchmark\n---------\n\nParsing a timestamp with no time zone information (e.g., ``2014-01-09T21:48:00``):\n\n.. <include:benchmark_with_no_time_zone.rst>\n\n.. table::\n\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |             Module             |Python 3.13|Python 3.12|Python 3.11|Python 3.10|Relative slowdown (versus ciso8601, latest Python)|\u2026|Python 3.9|Python 3.8|\n    +================================+===========+===========+===========+===========+==================================================+=+==========+==========+\n    |ciso8601                        |64.8 nsec  |62.8 nsec  |60.1 nsec  |91.7 nsec  |N/A                                               |\u2026|86 nsec   |92.9 nsec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |backports.datetime_fromisoformat|N/A        |N/A        |N/A        |73.6 nsec  |0.8x                                              |\u2026|70 nsec   |75.9 nsec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |datetime (builtin)              |147 nsec   |138 nsec   |123 nsec   |N/A        |2.3x                                              |\u2026|N/A       |N/A       |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |pendulum                        |171 nsec   |181 nsec   |175 nsec   |214 nsec   |2.6x                                              |\u2026|179 nsec  |180 nsec  |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |udatetime                       |542 nsec   |563 nsec   |525 nsec   |555 nsec   |8.4x                                              |\u2026|551 nsec  |553 nsec  |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |str2date                        |3.29 usec  |3.53 usec  |3.52 usec  |3.85 usec  |50.8x                                             |\u2026|3.72 usec |3.9 usec  |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |iso8601utils                    |N/A        |N/A        |N/A        |N/A        |56.9x                                             |\u2026|4.89 usec |4.89 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |iso8601                         |5.1 usec   |5.4 usec   |5.18 usec  |5.38 usec  |78.8x                                             |\u2026|5.36 usec |5.55 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |isodate                         |5.76 usec  |5.85 usec  |5.21 usec  |5.91 usec  |89.0x                                             |\u2026|5.97 usec |6.07 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |PySO8601                        |10 usec    |11.5 usec  |7.99 usec  |10.9 usec  |155.0x                                            |\u2026|9.83 usec |9.81 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |aniso8601                       |12.1 usec  |12.5 usec  |11.1 usec  |15.1 usec  |186.9x                                            |\u2026|15.4 usec |15.6 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |zulu                            |12.3 usec  |13.6 usec  |12.6 usec  |14.2 usec  |189.4x                                            |\u2026|14.5 usec |14.2 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |maya                            |35.9 usec  |N/A        |40.6 usec  |46.7 usec  |554.3x                                            |\u2026|45.4 usec |46.3 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |python-dateutil                 |36.2 usec  |36.9 usec  |36.1 usec  |44 usec    |558.5x                                            |\u2026|46.4 usec |45.2 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |arrow                           |42.9 usec  |43.8 usec  |41.2 usec  |48.8 usec  |662.7x                                            |\u2026|50.7 usec |50.1 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |metomi-isodatetime              |828 usec   |822 usec   |791 usec   |1.09 msec  |12781.0x                                          |\u2026|1.1 msec  |1.11 msec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |moment                          |1.28 msec  |1.32 msec  |1.29 msec  |1.36 msec  |19696.9x                                          |\u2026|1.37 msec |1.34 msec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n\nciso8601 takes 64.8 nsec, which is **2.3x faster than datetime (builtin)**, the next fastest Python 3.13 parser in this comparison.\n\n.. </include:benchmark_with_no_time_zone.rst>\n\nParsing a timestamp with time zone information (e.g., ``2014-01-09T21:48:00-05:30``):\n\n.. <include:benchmark_with_time_zone.rst>\n\n.. table::\n\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |             Module             |Python 3.13|Python 3.12|Python 3.11|Python 3.10|Relative slowdown (versus ciso8601, latest Python)|\u2026|Python 3.9|Python 3.8|\n    +================================+===========+===========+===========+===========+==================================================+=+==========+==========+\n    |ciso8601                        |73.9 nsec  |71 nsec    |65.6 nsec  |97.5 nsec  |N/A                                               |\u2026|92.9 nsec |96.6 nsec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |backports.datetime_fromisoformat|N/A        |N/A        |N/A        |99.2 nsec  |1.0x                                              |\u2026|93 nsec   |99.4 nsec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |datetime (builtin)              |205 nsec   |198 nsec   |178 nsec   |N/A        |2.8x                                              |\u2026|N/A       |N/A       |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |pendulum                        |251 nsec   |259 nsec   |251 nsec   |262 nsec   |3.4x                                              |\u2026|264 nsec  |264 nsec  |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |udatetime                       |684 nsec   |700 nsec   |646 nsec   |684 nsec   |9.3x                                              |\u2026|688 nsec  |676 nsec  |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |str2date                        |5.95 usec  |4.34 usec  |4.11 usec  |4.58 usec  |80.5x                                             |\u2026|4.6 usec  |4.82 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |iso8601                         |7.68 usec  |8.56 usec  |7.62 usec  |7.99 usec  |103.9x                                            |\u2026|7.83 usec |8.16 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |isodate                         |7.77 usec  |8.53 usec  |7.54 usec  |7.88 usec  |105.0x                                            |\u2026|8.12 usec |8.4 usec  |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |iso8601utils                    |N/A        |N/A        |N/A        |N/A        |152.2x                                            |\u2026|14.1 usec |14.6 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |zulu                            |17.8 usec  |16.9 usec  |15.7 usec  |17.3 usec  |241.3x                                            |\u2026|17.3 usec |17.6 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |aniso8601                       |18 usec    |18.7 usec  |16.4 usec  |21.5 usec  |243.1x                                            |\u2026|22.5 usec |22.8 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |PySO8601                        |18.3 usec  |16.6 usec  |14.3 usec  |15.8 usec  |247.5x                                            |\u2026|16.2 usec |16.4 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |maya                            |46.2 usec  |N/A        |41 usec    |47.5 usec  |625.0x                                            |\u2026|45.2 usec |47 usec   |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |python-dateutil                 |47.1 usec  |48.2 usec  |47.1 usec  |57.3 usec  |636.5x                                            |\u2026|60.4 usec |58.9 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |arrow                           |57.7 usec  |53.8 usec  |50.8 usec  |60.2 usec  |780.2x                                            |\u2026|59.4 usec |60.1 usec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |metomi-isodatetime              |876 usec   |823 usec   |795 usec   |1.09 msec  |11846.4x                                          |\u2026|1.09 msec |1.13 msec |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n    |moment                          |\u274c         |\u274c         |\u274c         |\u274c         |2070678.8x                                        |\u2026|\u274c        |\u274c        |\n    +--------------------------------+-----------+-----------+-----------+-----------+--------------------------------------------------+-+----------+----------+\n\nciso8601 takes 73.9 nsec, which is **2.8x faster than datetime (builtin)**, the next fastest Python 3.13 parser in this comparison.\n\n.. </include:benchmark_with_time_zone.rst>\n\n.. <include:benchmark_module_versions.rst>\n\nTested on Linux 6.11.5-orbstack-00280-g96d99c92a42b using the following modules:\n\n.. code:: python\n\n  aniso8601==9.0.1\n  arrow==1.3.0\n  backports.datetime_fromisoformat==2.0.2\n  ciso8601==2.3.1\n  iso8601==2.1.0\n  iso8601utils==0.1.2\n  isodate==0.7.2\n  maya==0.6.1\n  metomi-isodatetime==1!3.1.0\n  moment==0.12.1\n  pendulum==3.0.0\n  PySO8601==0.2.0\n  python-dateutil==2.9.0.post0\n  str2date==0.905\n  udatetime==0.0.17\n  zulu==2.0.1\n\n.. </include:benchmark_module_versions.rst>\n\nFor full benchmarking details (or to run the benchmark yourself), see `benchmarking/README.rst`_\n\n.. _`benchmarking/README.rst`: https://github.com/closeio/ciso8601/blob/master/benchmarking/README.rst\n\nSupported subset of ISO 8601\n----------------------------\n\n.. |datetime.fromisoformat| replace:: ``datetime.fromisoformat``\n.. _datetime.fromisoformat: https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat\n\n``ciso8601`` only supports a subset of ISO 8601, but supports a superset of what is supported by Python itself (|datetime.fromisoformat|_), and supports the entirety of the `RFC 3339`_ specification.\n\nDate formats\n^^^^^^^^^^^^\n\nThe following date formats are supported:\n\n.. table::\n   :widths: auto\n\n   ============================= ============== ==================\n   Format                        Example        Supported\n   ============================= ============== ==================\n   ``YYYY-MM-DD`` (extended)     ``2018-04-29`` \u2705\n   ``YYYY-MM`` (extended)        ``2018-04``    \u2705\n   ``YYYYMMDD`` (basic)          ``20180429``   \u2705\n   ``YYYY-Www-D`` (week date)    ``2009-W01-1`` \u2705\n   ``YYYY-Www`` (week date)      ``2009-W01``   \u2705\n   ``YYYYWwwD`` (week date)      ``2009W011``   \u2705\n   ``YYYYWww`` (week date)       ``2009W01``    \u2705\n   ``YYYY-DDD`` (ordinal date)   ``1981-095``   \u2705\n   ``YYYYDDD`` (ordinal date)    ``1981095``    \u2705\n   ============================= ============== ==================\n\nUncommon ISO 8601 date formats are not supported:\n\n.. table::\n   :widths: auto\n\n   ============================= ============== ==================\n   Format                        Example        Supported\n   ============================= ============== ==================\n   ``--MM-DD`` (omitted year)    ``--04-29``    \u274c\n   ``--MMDD`` (omitted year)     ``--0429``     \u274c\n   ``\u00b1YYYYY-MM`` (>4 digit year) ``+10000-04``  \u274c\n   ``+YYYY-MM`` (leading +)      ``+2018-04``   \u274c\n   ``-YYYY-MM`` (negative -)     ``-2018-04``   \u274c\n   ============================= ============== ==================\n\nTime formats\n^^^^^^^^^^^^\n\nTimes are optional and are separated from the date by the letter ``T``.\n\nConsistent with `RFC 3339`__, ``ciso8601`` also allows either a space character, or a lower-case ``t``, to be used instead of a ``T``.\n\n__ https://stackoverflow.com/questions/522251/whats-the-difference-between-iso-8601-and-rfc-3339-date-formats\n\nThe following time formats are supported:\n\n.. table::\n   :widths: auto\n\n   =================================== =================== ==============\n   Format                              Example             Supported\n   =================================== =================== ==============\n   ``hh``                              ``11``              \u2705\n   ``hhmm``                            ``1130``            \u2705\n   ``hh:mm``                           ``11:30``           \u2705\n   ``hhmmss``                          ``113059``          \u2705\n   ``hh:mm:ss``                        ``11:30:59``        \u2705\n   ``hhmmss.ssssss``                   ``113059.123456``   \u2705\n   ``hh:mm:ss.ssssss``                 ``11:30:59.123456`` \u2705\n   ``hhmmss,ssssss``                   ``113059,123456``   \u2705\n   ``hh:mm:ss,ssssss``                 ``11:30:59,123456`` \u2705\n   Midnight (special case)             ``24:00:00``        \u2705\n   ``hh.hhh`` (fractional hours)       ``11.5``            \u274c\n   ``hh:mm.mmm`` (fractional minutes)  ``11:30.5``         \u274c\n   =================================== =================== ==============\n\n**Note:** Python datetime objects only have microsecond precision (6 digits). Any additional precision will be truncated.\n\nTime zone information\n^^^^^^^^^^^^^^^^^^^^^\n\nTime zone information may be provided in one of the following formats:\n\n.. table::\n   :widths: auto\n\n   ========== ========== ===========\n   Format     Example    Supported\n   ========== ========== ===========\n   ``Z``      ``Z``      \u2705\n   ``z``      ``z``      \u2705\n   ``\u00b1hh``    ``+11``    \u2705\n   ``\u00b1hhmm``  ``+1130``  \u2705\n   ``\u00b1hh:mm`` ``+11:30`` \u2705\n   ========== ========== ===========\n\nWhile the ISO 8601 specification allows the use of MINUS SIGN (U+2212) in the time zone separator, ``ciso8601`` only supports the use of the HYPHEN-MINUS (U+002D) character.\n\nConsistent with `RFC 3339`_, ``ciso8601`` also allows a lower-case ``z`` to be used instead of a ``Z``.\n\nStrict RFC 3339 parsing\n-----------------------\n\n``ciso8601`` parses ISO 8601 datetimes, which can be thought of as a superset of `RFC 3339`_ (`roughly`_). In cases where you might want strict RFC 3339 parsing, ``ciso8601`` offers a ``parse_rfc3339`` method, which behaves in a similar manner to ``parse_datetime``:\n\n.. _roughly: https://stackoverflow.com/questions/522251/whats-the-difference-between-iso-8601-and-rfc-3339-date-formats\n\n``parse_rfc3339(dt: String): datetime`` is a function that takes a string and either:\n\n* Returns a properly parsed Python datetime, **if and only if** the **entire** string conforms to RFC 3339.\n* Raises a ``ValueError`` with a description of the reason why the string doesn't conform to RFC 3339.\n\nIgnoring time zone information while parsing\n--------------------------------------------\n\nIt takes more time to parse timestamps with time zone information, especially if they're not in UTC. However, there are times when you don't care about time zone information, and wish to produce naive datetimes instead.\nFor example, if you are certain that your program will only parse timestamps from a single time zone, you might want to strip the time zone information and only output naive datetimes.\n\nIn these limited cases, there is a second function provided.\n``parse_datetime_as_naive`` will ignore any time zone information it finds and, as a result, is faster for timestamps containing time zone information.\n\n.. code:: python\n\n  In [1]: import ciso8601\n\n  In [2]: ciso8601.parse_datetime_as_naive('2014-12-05T12:30:45.123456-05:30')\n  Out[2]: datetime.datetime(2014, 12, 5, 12, 30, 45, 123456)\n\nNOTE: ``parse_datetime_as_naive`` is only useful in the case where your timestamps have time zone information, but you want to ignore it. This is somewhat unusual.\nIf your timestamps don't have time zone information (i.e. are naive), simply use ``parse_datetime``. It is just as fast.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Fast ISO8601 date time parser for Python written in C",
    "version": "2.3.2",
    "project_urls": {
        "Homepage": "https://github.com/closeio/ciso8601"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "63547522b0056ff0f59790d15cc043fdbf067d9af0fa313e4a8811b65c0b4ded",
                "md5": "5aede1f40b273228968d5fb079d060fd",
                "sha256": "1bb2d4d20d7ed65fcc7137652d7d980c6eb2aa19c935579309170137d33064ce"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5aede1f40b273228968d5fb079d060fd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 15724,
            "upload_time": "2024-12-09T12:25:46",
            "upload_time_iso_8601": "2024-12-09T12:25:46.332276Z",
            "url": "https://files.pythonhosted.org/packages/63/54/7522b0056ff0f59790d15cc043fdbf067d9af0fa313e4a8811b65c0b4ded/ciso8601-2.3.2-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a49817f6e3bf01857cc2594f29ecc5316a4591d40e54c14d85cde433fc0d5cbb",
                "md5": "c5da9fe21c68c84828c2af2488f2e831",
                "sha256": "3039f11ced0bc971341ab63be222860eb2cc942d51a7aa101b1809b633ad2288"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp310-cp310-macosx_11_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "c5da9fe21c68c84828c2af2488f2e831",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 23809,
            "upload_time": "2024-12-09T12:25:48",
            "upload_time_iso_8601": "2024-12-09T12:25:48.043018Z",
            "url": "https://files.pythonhosted.org/packages/a4/98/17f6e3bf01857cc2594f29ecc5316a4591d40e54c14d85cde433fc0d5cbb/ciso8601-2.3.2-cp310-cp310-macosx_11_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9d486a396459dd24b3d7a05b3858b58c3dbc19a7d561cd9accaf77b6ddd2242c",
                "md5": "cafea1f16926d29fab5f8ff34b35d667",
                "sha256": "d64634b02cfb194e54569d8de3ace89cec745644cab38157aea0b03d32031eda"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp310-cp310-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cafea1f16926d29fab5f8ff34b35d667",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 15586,
            "upload_time": "2024-12-09T12:25:49",
            "upload_time_iso_8601": "2024-12-09T12:25:49.818598Z",
            "url": "https://files.pythonhosted.org/packages/9d/48/6a396459dd24b3d7a05b3858b58c3dbc19a7d561cd9accaf77b6ddd2242c/ciso8601-2.3.2-cp310-cp310-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "59644f9362e7f3817d9a408e17ae0a71cd3d16037e33e4dd0f3a301b4727c2e5",
                "md5": "9b3d020491824d097f3fcb94bf316389",
                "sha256": "b0dcb8dc5998bc50346cec9d3b8b5deda8ddabeda70a923c110efb5100cd9754"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9b3d020491824d097f3fcb94bf316389",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 39279,
            "upload_time": "2024-12-09T12:25:50",
            "upload_time_iso_8601": "2024-12-09T12:25:50.910068Z",
            "url": "https://files.pythonhosted.org/packages/59/64/4f9362e7f3817d9a408e17ae0a71cd3d16037e33e4dd0f3a301b4727c2e5/ciso8601-2.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cdf956a707dc73604472dfdab611f210c22741b73b5b7795b6dc6422d072bae6",
                "md5": "8b5a26a251a0334b360c72586e3a0690",
                "sha256": "13a3ca99eadbee4a9bb7dfb2bcf266a21828033853cd99803a9893d3473ac0e9"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8b5a26a251a0334b360c72586e3a0690",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 39014,
            "upload_time": "2024-12-09T12:25:52",
            "upload_time_iso_8601": "2024-12-09T12:25:52.477706Z",
            "url": "https://files.pythonhosted.org/packages/cd/f9/56a707dc73604472dfdab611f210c22741b73b5b7795b6dc6422d072bae6/ciso8601-2.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "872702dc32c3ff7ca18a0f595a13d5f5e749a1270a030ce8f50d6b78ae95a984",
                "md5": "8af1799e40eb1324554197529b4a9600",
                "sha256": "d61daee5e8daee87eba34151b9952ec8c3327ad9e54686b6247dcb9b2b135312"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8af1799e40eb1324554197529b4a9600",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 39892,
            "upload_time": "2024-12-09T12:25:54",
            "upload_time_iso_8601": "2024-12-09T12:25:54.182433Z",
            "url": "https://files.pythonhosted.org/packages/87/27/02dc32c3ff7ca18a0f595a13d5f5e749a1270a030ce8f50d6b78ae95a984/ciso8601-2.3.2-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "41ba57016baecaab3f9fae9399ee0ad25573eec82042c55560f86d004717381c",
                "md5": "553e5c8bb4dbb467e67996034fbbdd10",
                "sha256": "2f20654de6b0374eade96d8dcb0642196632067b6dd2e24068c563ac6b8551c6"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "553e5c8bb4dbb467e67996034fbbdd10",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 39650,
            "upload_time": "2024-12-09T12:25:55",
            "upload_time_iso_8601": "2024-12-09T12:25:55.803567Z",
            "url": "https://files.pythonhosted.org/packages/41/ba/57016baecaab3f9fae9399ee0ad25573eec82042c55560f86d004717381c/ciso8601-2.3.2-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8e9bb924dbd5aa378208c7a24bd867b174b13fd0377ba9293fab5c2f977895a6",
                "md5": "9d61c2b91d3c24ac2015eca5068ff2ff",
                "sha256": "0283884c33dbe0555f9a24749ac947f93eac7b131fdfeeee110ad999947d1680"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9d61c2b91d3c24ac2015eca5068ff2ff",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 17245,
            "upload_time": "2024-12-09T12:25:56",
            "upload_time_iso_8601": "2024-12-09T12:25:56.837132Z",
            "url": "https://files.pythonhosted.org/packages/8e/9b/b924dbd5aa378208c7a24bd867b174b13fd0377ba9293fab5c2f977895a6/ciso8601-2.3.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9a00489c0724d2a273384344b76c1420f21ede894d3f1d9ba240176f0d8595e6",
                "md5": "a84ddfd8dc3d02d8e49fb250c5d84d1a",
                "sha256": "f0e856903cb6019ab26849af7270ef183b2314f87fd17686a8c98315eff794df"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a84ddfd8dc3d02d8e49fb250c5d84d1a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 15722,
            "upload_time": "2024-12-09T12:25:57",
            "upload_time_iso_8601": "2024-12-09T12:25:57.851741Z",
            "url": "https://files.pythonhosted.org/packages/9a/00/489c0724d2a273384344b76c1420f21ede894d3f1d9ba240176f0d8595e6/ciso8601-2.3.2-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d15e5c29a477ec5207f0e1604fbd15280401e4715163bf51f316b5ee907da1c4",
                "md5": "8dfe8d69353ee85bda6fd975ac489cb7",
                "sha256": "d99297a5925ef3c9ac316cab082c1b1623d976acdb5056fbb8cb12a854116351"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp311-cp311-macosx_11_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "8dfe8d69353ee85bda6fd975ac489cb7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 23815,
            "upload_time": "2024-12-09T12:25:59",
            "upload_time_iso_8601": "2024-12-09T12:25:59.477842Z",
            "url": "https://files.pythonhosted.org/packages/d1/5e/5c29a477ec5207f0e1604fbd15280401e4715163bf51f316b5ee907da1c4/ciso8601-2.3.2-cp311-cp311-macosx_11_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bf351000cebcd41863394ec3d4ba05656be9a20ae4a27de1646da12c6d336cdd",
                "md5": "336a1611ed34914c0a0b1f0c0428b7b4",
                "sha256": "2e740d2dcac81b5adb0cff641706d5a9e54ff4f3bb7e24437cdacdab3937c0a3"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp311-cp311-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "336a1611ed34914c0a0b1f0c0428b7b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 15585,
            "upload_time": "2024-12-09T12:26:00",
            "upload_time_iso_8601": "2024-12-09T12:26:00.356967Z",
            "url": "https://files.pythonhosted.org/packages/bf/35/1000cebcd41863394ec3d4ba05656be9a20ae4a27de1646da12c6d336cdd/ciso8601-2.3.2-cp311-cp311-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "933df763d2bfa22a50fb004d77106c18a58dbde3fa5d4c5cf7d096bb23af8dc5",
                "md5": "bffbed29e28c112ff5fd0e7ace65b579",
                "sha256": "e883a08b294694313bd3a85c1a136f4326ca26050552742c489159c52e296060"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "bffbed29e28c112ff5fd0e7ace65b579",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 39534,
            "upload_time": "2024-12-09T12:26:01",
            "upload_time_iso_8601": "2024-12-09T12:26:01.937461Z",
            "url": "https://files.pythonhosted.org/packages/93/3d/f763d2bfa22a50fb004d77106c18a58dbde3fa5d4c5cf7d096bb23af8dc5/ciso8601-2.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bcba012ac7082fd10c15c0cd347cb62ad88eaf135dc6e4b6190a9becf9acfeaa",
                "md5": "6b2e0803ea9e6f8b8ef6d461bb856a8e",
                "sha256": "6994b393b1e1147dbc2f13d6d508f6e95b96d7f770299a4af70b7c1d380242c1"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6b2e0803ea9e6f8b8ef6d461bb856a8e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 39260,
            "upload_time": "2024-12-09T12:26:02",
            "upload_time_iso_8601": "2024-12-09T12:26:02.975231Z",
            "url": "https://files.pythonhosted.org/packages/bc/ba/012ac7082fd10c15c0cd347cb62ad88eaf135dc6e4b6190a9becf9acfeaa/ciso8601-2.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02418310f8998c3e98c334f8dfaf905725c85771eee4ece9e5ee833070d483f2",
                "md5": "359b916499a5fd3d3094a3612e2556ef",
                "sha256": "2d31a04bea97f21b797fd414b465c00283b70d9523e8e51bc303bec04195a278"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "359b916499a5fd3d3094a3612e2556ef",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 40014,
            "upload_time": "2024-12-09T12:26:04",
            "upload_time_iso_8601": "2024-12-09T12:26:04.012455Z",
            "url": "https://files.pythonhosted.org/packages/02/41/8310f8998c3e98c334f8dfaf905725c85771eee4ece9e5ee833070d483f2/ciso8601-2.3.2-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "009f28d592b034a8a8c1ddeac55812172d9b22942077e681c84c268173bfe4e1",
                "md5": "cb587caaa293a0328e739327621064b4",
                "sha256": "ce014a3559592320a2a7a7205257e57dd1277580038a30f153627c5d30ed7a07"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cb587caaa293a0328e739327621064b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 39861,
            "upload_time": "2024-12-09T12:26:05",
            "upload_time_iso_8601": "2024-12-09T12:26:05.082561Z",
            "url": "https://files.pythonhosted.org/packages/00/9f/28d592b034a8a8c1ddeac55812172d9b22942077e681c84c268173bfe4e1/ciso8601-2.3.2-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2153bb466b34c8853a2ca54009fa3bb3aa8ddc46f90fc504b9433471b9a40fa7",
                "md5": "99d3c93d0a1b37571744413188dc8bfb",
                "sha256": "b069800ea5613eea7d323716133a74bd0fba4a781286167a20639b6628a7e068"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "99d3c93d0a1b37571744413188dc8bfb",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 17240,
            "upload_time": "2024-12-09T12:26:06",
            "upload_time_iso_8601": "2024-12-09T12:26:06.254181Z",
            "url": "https://files.pythonhosted.org/packages/21/53/bb466b34c8853a2ca54009fa3bb3aa8ddc46f90fc504b9433471b9a40fa7/ciso8601-2.3.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d6fce852e664bb90bf1112e17778512d6cbc5fa5f49b7c22969e4ee131f13d06",
                "md5": "fcb11d036c6030e71baad364576241d5",
                "sha256": "75870a1e496a17e9e8d2ac90125600e1bafe51679d2836b2f6cb66908fef7ad6"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "fcb11d036c6030e71baad364576241d5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 15755,
            "upload_time": "2024-12-09T12:26:07",
            "upload_time_iso_8601": "2024-12-09T12:26:07.259441Z",
            "url": "https://files.pythonhosted.org/packages/d6/fc/e852e664bb90bf1112e17778512d6cbc5fa5f49b7c22969e4ee131f13d06/ciso8601-2.3.2-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "22dac82e665c627836be4d7d0a8ed38518f9833124a6fd85735881cac72427b8",
                "md5": "3941b82dff545b7b0f8c71e99fd90d39",
                "sha256": "c117c415c43aa3db68ee16a2446cb85c5e88459650421d773f6f6444ce5e5819"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp312-cp312-macosx_11_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "3941b82dff545b7b0f8c71e99fd90d39",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 24291,
            "upload_time": "2024-12-09T12:26:08",
            "upload_time_iso_8601": "2024-12-09T12:26:08.230062Z",
            "url": "https://files.pythonhosted.org/packages/22/da/c82e665c627836be4d7d0a8ed38518f9833124a6fd85735881cac72427b8/ciso8601-2.3.2-cp312-cp312-macosx_11_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3c6a822b178b6c473533e5023aab6447b05d1683f95c3210eda5680f9262c93c",
                "md5": "3568f547d85b974817b6e37593637ded",
                "sha256": "ce5f76297b6138dc5c085d4c5a0a631afded99f250233fe583dc365f67fe8a8d"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp312-cp312-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3568f547d85b974817b6e37593637ded",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 15713,
            "upload_time": "2024-12-09T12:26:09",
            "upload_time_iso_8601": "2024-12-09T12:26:09.191485Z",
            "url": "https://files.pythonhosted.org/packages/3c/6a/822b178b6c473533e5023aab6447b05d1683f95c3210eda5680f9262c93c/ciso8601-2.3.2-cp312-cp312-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dec363b89c7ec2a4f9bcbdeb3401485992d13eeb4da943accef58f0820c62552",
                "md5": "37c13b78777f661683613a7796fde052",
                "sha256": "8e3205e4cfd63100f454ea67100c7c6123af32da0022bdc6e81058e95476a8ad"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "37c13b78777f661683613a7796fde052",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 40253,
            "upload_time": "2024-12-09T12:26:10",
            "upload_time_iso_8601": "2024-12-09T12:26:10.149910Z",
            "url": "https://files.pythonhosted.org/packages/de/c3/63b89c7ec2a4f9bcbdeb3401485992d13eeb4da943accef58f0820c62552/ciso8601-2.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9601b12f356afaa6dfc339c4b964f01c7b78f7d844dfe087cbbc9c68a5f048c0",
                "md5": "0084db432ac91e7d8363e1c2ab945551",
                "sha256": "5308a14ac72898f91332ccfded2f18a6c558ccd184ccff84c4fb36c7e4c2a0e6"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0084db432ac91e7d8363e1c2ab945551",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 40087,
            "upload_time": "2024-12-09T12:26:11",
            "upload_time_iso_8601": "2024-12-09T12:26:11.066191Z",
            "url": "https://files.pythonhosted.org/packages/96/01/b12f356afaa6dfc339c4b964f01c7b78f7d844dfe087cbbc9c68a5f048c0/ciso8601-2.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "05aede5f920ebf5cdb2ef28237bdb48ac9ea980d794e16f1fbedffc430064208",
                "md5": "d5a1988c87e14222690c7ae7b2a9d3a8",
                "sha256": "e825cb5ecd232775a94ef3c456ab19752ee8e66eaeb20562ea45472eaa8614ec"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d5a1988c87e14222690c7ae7b2a9d3a8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 40908,
            "upload_time": "2024-12-09T12:26:12",
            "upload_time_iso_8601": "2024-12-09T12:26:12.092526Z",
            "url": "https://files.pythonhosted.org/packages/05/ae/de5f920ebf5cdb2ef28237bdb48ac9ea980d794e16f1fbedffc430064208/ciso8601-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b23ccd79c9305480cc9bf8dce286bd7ec2035a3d140b3f3ae0b1232087a65240",
                "md5": "a2bb2b155bfcfad3d21f14960d2e6197",
                "sha256": "7a8f96f91bdeabee7ebca2c6e48185bea45e195f406ff748c87a3c9ecefb25cc"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a2bb2b155bfcfad3d21f14960d2e6197",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 40881,
            "upload_time": "2024-12-09T12:26:12",
            "upload_time_iso_8601": "2024-12-09T12:26:12.997989Z",
            "url": "https://files.pythonhosted.org/packages/b2/3c/cd79c9305480cc9bf8dce286bd7ec2035a3d140b3f3ae0b1232087a65240/ciso8601-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1f7f1b64a6dac1ff824ad6eee9c2b540fbe411f288b40218a06644fa2e4f075",
                "md5": "150fe9eb9e98a8cfc0d1b24f434cd5e5",
                "sha256": "3fe497819e50a245253a3b2d62ec4c68f8cf337d79dc18e2f3b0a74d24dc5e93"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "150fe9eb9e98a8cfc0d1b24f434cd5e5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 17278,
            "upload_time": "2024-12-09T12:26:14",
            "upload_time_iso_8601": "2024-12-09T12:26:14.027594Z",
            "url": "https://files.pythonhosted.org/packages/b1/f7/f1b64a6dac1ff824ad6eee9c2b540fbe411f288b40218a06644fa2e4f075/ciso8601-2.3.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2232d2cd32d62fa7ddf23a9375990ab1db27064722f9c9de652b8fde9c0a8d62",
                "md5": "2785335501ade45c87163f12a8c20f63",
                "sha256": "361a49da3e53811ddc371ff2183d32ee673321899e4653c4d55ed06d0a81ef3d"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2785335501ade45c87163f12a8c20f63",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 15719,
            "upload_time": "2024-12-09T12:26:15",
            "upload_time_iso_8601": "2024-12-09T12:26:15.051682Z",
            "url": "https://files.pythonhosted.org/packages/22/32/d2cd32d62fa7ddf23a9375990ab1db27064722f9c9de652b8fde9c0a8d62/ciso8601-2.3.2-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35c5c7b9b33afbdf1dd291d65d6a4556cec19d22d6b66909804834d3b1fef520",
                "md5": "33e3e0662b45fcc99e9aaa8a96c9fe50",
                "sha256": "af26301e0e0cfc6cda225fd2a8b1888bf3828a7d24756774325bda7d29ab2468"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp38-cp38-macosx_11_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "33e3e0662b45fcc99e9aaa8a96c9fe50",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 23822,
            "upload_time": "2024-12-09T12:26:16",
            "upload_time_iso_8601": "2024-12-09T12:26:16.242550Z",
            "url": "https://files.pythonhosted.org/packages/35/c5/c7b9b33afbdf1dd291d65d6a4556cec19d22d6b66909804834d3b1fef520/ciso8601-2.3.2-cp38-cp38-macosx_11_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0446fcab76d2ecc5f6474ed3987303492f32c6ebc049b40b9992db6544776a42",
                "md5": "e3c7ca794787c350e153ede1681fc37d",
                "sha256": "af399c2671dfe8fead4f34908a6e6ef3689db9606f2028269b578afd2326b96e"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp38-cp38-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e3c7ca794787c350e153ede1681fc37d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 15588,
            "upload_time": "2024-12-09T12:26:17",
            "upload_time_iso_8601": "2024-12-09T12:26:17.406523Z",
            "url": "https://files.pythonhosted.org/packages/04/46/fcab76d2ecc5f6474ed3987303492f32c6ebc049b40b9992db6544776a42/ciso8601-2.3.2-cp38-cp38-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c58eac8adb80856d8b557ea14482ed3af36de0703c0b93517d8419cca68f4bd4",
                "md5": "97e56aa692c2f466caa71d1692a278ec",
                "sha256": "fa8978a69a6061380b352442160d468915d102c18b0b805a950311e6e0f3b821"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "97e56aa692c2f466caa71d1692a278ec",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 39773,
            "upload_time": "2024-12-09T12:26:18",
            "upload_time_iso_8601": "2024-12-09T12:26:18.433596Z",
            "url": "https://files.pythonhosted.org/packages/c5/8e/ac8adb80856d8b557ea14482ed3af36de0703c0b93517d8419cca68f4bd4/ciso8601-2.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d60644d89362e5c804429e9eabe0c7b236a1df5e3262545d5507e0e1d86a76f1",
                "md5": "2341e2146b19317c6fcc3bd5c549792a",
                "sha256": "347db58040ad1cb3d2175f5699f0fb1abcb9e894ad744e3460b01bd101bb78a1"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2341e2146b19317c6fcc3bd5c549792a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 39518,
            "upload_time": "2024-12-09T12:26:19",
            "upload_time_iso_8601": "2024-12-09T12:26:19.459038Z",
            "url": "https://files.pythonhosted.org/packages/d6/06/44d89362e5c804429e9eabe0c7b236a1df5e3262545d5507e0e1d86a76f1/ciso8601-2.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba08ea4418f87674849a915ae34c7c7cfa0a57b12f203db0fdc2e49eec7590ec",
                "md5": "882a5b4d128c58445abd289442ea110a",
                "sha256": "d7860ad2b52007becfd604cfe596f0b7ffa8ffe4f7336b58ef1a2234dc53fa10"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp38-cp38-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "882a5b4d128c58445abd289442ea110a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 39642,
            "upload_time": "2024-12-09T12:26:20",
            "upload_time_iso_8601": "2024-12-09T12:26:20.952271Z",
            "url": "https://files.pythonhosted.org/packages/ba/08/ea4418f87674849a915ae34c7c7cfa0a57b12f203db0fdc2e49eec7590ec/ciso8601-2.3.2-cp38-cp38-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "26d8039d89c7ae2994a5155f4366088ad6f86ee658e440d874dafdebebb2c586",
                "md5": "15ad67783b6649f64678f0209095912b",
                "sha256": "91dab638ffaff1da12e0a6de4cfca520430426a1c0eaba5841b1311f45516d49"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp38-cp38-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "15ad67783b6649f64678f0209095912b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 39426,
            "upload_time": "2024-12-09T12:26:21",
            "upload_time_iso_8601": "2024-12-09T12:26:21.894210Z",
            "url": "https://files.pythonhosted.org/packages/26/d8/039d89c7ae2994a5155f4366088ad6f86ee658e440d874dafdebebb2c586/ciso8601-2.3.2-cp38-cp38-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "20018fbc0c6f9c1c59527e6ad44578200bed92b8ffd0c16fcdc6f4aff934f34e",
                "md5": "e1b3ae3028dd67e62b09e0b411507c6e",
                "sha256": "2e9a072465ecdbaa3bd2b17e26cc7a0376f9729021c8000656dd97a9343f8723"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e1b3ae3028dd67e62b09e0b411507c6e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 17245,
            "upload_time": "2024-12-09T12:26:23",
            "upload_time_iso_8601": "2024-12-09T12:26:23.448162Z",
            "url": "https://files.pythonhosted.org/packages/20/01/8fbc0c6f9c1c59527e6ad44578200bed92b8ffd0c16fcdc6f4aff934f34e/ciso8601-2.3.2-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3bbba7bb497fa6093e478e54d870c8ffbfcd44c6b6400a3a0c8f485b229595b",
                "md5": "01e9ebb9809af8826cce37157aa9e484",
                "sha256": "0fbbe659093d4aef1e66de0ee9a10487439527be4b2f6a6710960f98a41e2cc5"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "01e9ebb9809af8826cce37157aa9e484",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 15716,
            "upload_time": "2024-12-09T12:26:24",
            "upload_time_iso_8601": "2024-12-09T12:26:24.576948Z",
            "url": "https://files.pythonhosted.org/packages/a3/bb/ba7bb497fa6093e478e54d870c8ffbfcd44c6b6400a3a0c8f485b229595b/ciso8601-2.3.2-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "af8af08d6c7bd5f53f2896e91ffdb849e1197fb543a011ee2f7c3200ffe1c1e8",
                "md5": "87073380eaaeb670e35055d22dce2b5e",
                "sha256": "8ccb16db7ca83cc39df3c73285e9ab4920a90f0dbef566f60f0c6cca44becaba"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp39-cp39-macosx_11_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "87073380eaaeb670e35055d22dce2b5e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 23807,
            "upload_time": "2024-12-09T12:26:25",
            "upload_time_iso_8601": "2024-12-09T12:26:25.635825Z",
            "url": "https://files.pythonhosted.org/packages/af/8a/f08d6c7bd5f53f2896e91ffdb849e1197fb543a011ee2f7c3200ffe1c1e8/ciso8601-2.3.2-cp39-cp39-macosx_11_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "536b6d3f90c4018eec00aa560356cf41fd1315d084863305c077f6af484ce673",
                "md5": "131b298e4ae02606cc04cf8ace8dec46",
                "sha256": "dac06a1bd3c12ab699c29024c5f052e7016cb904e085a5e2b26e6b92fd2dd1dc"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp39-cp39-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "131b298e4ae02606cc04cf8ace8dec46",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 15586,
            "upload_time": "2024-12-09T12:26:26",
            "upload_time_iso_8601": "2024-12-09T12:26:26.583697Z",
            "url": "https://files.pythonhosted.org/packages/53/6b/6d3f90c4018eec00aa560356cf41fd1315d084863305c077f6af484ce673/ciso8601-2.3.2-cp39-cp39-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1a78078b57970e82b2dc80ce89249beb4c0d464bffb9e84d479dcd8179c36d0f",
                "md5": "8401e89a234c9d23d39e53bacc3bf694",
                "sha256": "a323aa0143ad8e99d7a0b0ac3005419c505e073e6f850f0443b5994b31a52d14"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8401e89a234c9d23d39e53bacc3bf694",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 38927,
            "upload_time": "2024-12-09T12:26:28",
            "upload_time_iso_8601": "2024-12-09T12:26:28.160090Z",
            "url": "https://files.pythonhosted.org/packages/1a/78/078b57970e82b2dc80ce89249beb4c0d464bffb9e84d479dcd8179c36d0f/ciso8601-2.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "78b90fc865c2fd9870b6d220f2f9f47fd2ab51af29ebd8ceae56e7059bc43841",
                "md5": "06e32c5f7db3684dc24a422cb0620226",
                "sha256": "5e9290e7e1b1c3a6df3967e3f1b22c334c980e841f5a1967ab6ef92b30a540d8"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "06e32c5f7db3684dc24a422cb0620226",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 38633,
            "upload_time": "2024-12-09T12:26:29",
            "upload_time_iso_8601": "2024-12-09T12:26:29.186579Z",
            "url": "https://files.pythonhosted.org/packages/78/b9/0fc865c2fd9870b6d220f2f9f47fd2ab51af29ebd8ceae56e7059bc43841/ciso8601-2.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2030d4303931e31fe2df4b2c886cbac261b9e69515cade3d1de639793fba5092",
                "md5": "a3c9317625f7565cf4c335d1fdcee507",
                "sha256": "fc2a6bb31030b875c7706554b99e1d724250e0fc8160aa2f3ae32520b8dccbc5"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp39-cp39-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a3c9317625f7565cf4c335d1fdcee507",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 39488,
            "upload_time": "2024-12-09T12:26:30",
            "upload_time_iso_8601": "2024-12-09T12:26:30.202925Z",
            "url": "https://files.pythonhosted.org/packages/20/30/d4303931e31fe2df4b2c886cbac261b9e69515cade3d1de639793fba5092/ciso8601-2.3.2-cp39-cp39-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "99285a2d1e7df04a37ad5e19c149ba74eb1f1fdbcef48ad13acd9d71d1ec9454",
                "md5": "31656518449c7805ecc107235ab2fc7c",
                "sha256": "69e137cf862c724a9477b62d89fb8190f141ed6d036f6c4cf824be6d9a7b819e"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "31656518449c7805ecc107235ab2fc7c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 39244,
            "upload_time": "2024-12-09T12:26:31",
            "upload_time_iso_8601": "2024-12-09T12:26:31.237632Z",
            "url": "https://files.pythonhosted.org/packages/99/28/5a2d1e7df04a37ad5e19c149ba74eb1f1fdbcef48ad13acd9d71d1ec9454/ciso8601-2.3.2-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d416b045848e51e646d549f151a7d230a3cdc0739b4652f4570221cc4eab6234",
                "md5": "5d2f914f47befdf1794c7acfb5d360b6",
                "sha256": "6591d8f191b0a12fa5ac53e1bc0e799f6f2068d0fa5684815706c59a4831f412"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5d2f914f47befdf1794c7acfb5d360b6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 17247,
            "upload_time": "2024-12-09T12:26:32",
            "upload_time_iso_8601": "2024-12-09T12:26:32.464354Z",
            "url": "https://files.pythonhosted.org/packages/d4/16/b045848e51e646d549f151a7d230a3cdc0739b4652f4570221cc4eab6234/ciso8601-2.3.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9f8c344f1db4606408ac00803692baf988fdd8d4c82abaf9911272286dc30785",
                "md5": "c21d16a24e5a6e352495949b9c8fb37a",
                "sha256": "ecc2f7090e7b8427288b9528fa9571682426f2c7d45d39cf940321192d8796c8"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c21d16a24e5a6e352495949b9c8fb37a",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": null,
            "size": 17483,
            "upload_time": "2024-12-09T12:26:34",
            "upload_time_iso_8601": "2024-12-09T12:26:34.183699Z",
            "url": "https://files.pythonhosted.org/packages/9f/8c/344f1db4606408ac00803692baf988fdd8d4c82abaf9911272286dc30785/ciso8601-2.3.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9976572d904b3307d9ab01b4586a0935b0a62dded5e57565ac87cd13a55dd332",
                "md5": "49f67ec64f512a1f6fcd910559227309",
                "sha256": "c585a05d745c36f974030d1831ed899f8b00afd760f6eff6b8de7eef72cb1336"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "49f67ec64f512a1f6fcd910559227309",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": null,
            "size": 16559,
            "upload_time": "2024-12-09T12:26:35",
            "upload_time_iso_8601": "2024-12-09T12:26:35.051372Z",
            "url": "https://files.pythonhosted.org/packages/99/76/572d904b3307d9ab01b4586a0935b0a62dded5e57565ac87cd13a55dd332/ciso8601-2.3.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62ee7383005feb6d089e6536639a74161a1e04d2ebd0bf427d706ed2c7203866",
                "md5": "2b18a02c3592fbf8020b04644121574e",
                "sha256": "fbbe0af7ef440d679ce546f926fc441e31025c6a96c1bb54087df0e5e6c8e021"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2b18a02c3592fbf8020b04644121574e",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": null,
            "size": 17482,
            "upload_time": "2024-12-09T12:26:36",
            "upload_time_iso_8601": "2024-12-09T12:26:36.037207Z",
            "url": "https://files.pythonhosted.org/packages/62/ee/7383005feb6d089e6536639a74161a1e04d2ebd0bf427d706ed2c7203866/ciso8601-2.3.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "177af7a21101028204158a3ed4e9af477b3941cb4d39cf4c5f13f063295f9d54",
                "md5": "96fcf4d9f52293cf6e34d0b36bf53e46",
                "sha256": "69136ef63e7d5178727f358a9cfe4dfda52f132eafcddfa7e6d5933ee1d73b7a"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "96fcf4d9f52293cf6e34d0b36bf53e46",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": null,
            "size": 16613,
            "upload_time": "2024-12-09T12:26:37",
            "upload_time_iso_8601": "2024-12-09T12:26:37.066593Z",
            "url": "https://files.pythonhosted.org/packages/17/7a/f7a21101028204158a3ed4e9af477b3941cb4d39cf4c5f13f063295f9d54/ciso8601-2.3.2-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1fc449c6e651cd8310580dc930d1f430ef35d7827e0335f2ff2c2c4f5da308b1",
                "md5": "e119cd7bcd4180e2bdc2e6920b54dc76",
                "sha256": "ff397592a0eadd5e0aec395a285751707c655439abb874ad93e34d04d925ec8d"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e119cd7bcd4180e2bdc2e6920b54dc76",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": null,
            "size": 17480,
            "upload_time": "2024-12-09T12:26:38",
            "upload_time_iso_8601": "2024-12-09T12:26:38.241428Z",
            "url": "https://files.pythonhosted.org/packages/1f/c4/49c6e651cd8310580dc930d1f430ef35d7827e0335f2ff2c2c4f5da308b1/ciso8601-2.3.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "acf52e9fdb94d2c7efe6389b454f99136ccf358755d4290c1f4411f464f0a770",
                "md5": "5935f93f1b0146c1fe70891e15a7948e",
                "sha256": "7eb6c8756806f4b8320fe57e3b048dafc54e99af7586160ff9318f35fc521268"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5935f93f1b0146c1fe70891e15a7948e",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": null,
            "size": 16557,
            "upload_time": "2024-12-09T12:26:39",
            "upload_time_iso_8601": "2024-12-09T12:26:39.838607Z",
            "url": "https://files.pythonhosted.org/packages/ac/f5/2e9fdb94d2c7efe6389b454f99136ccf358755d4290c1f4411f464f0a770/ciso8601-2.3.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "09e9d83711081c997540aee59ad2f49d81f01d33e8551d766b0ebde346f605af",
                "md5": "9d006e7f7345ce9b0a36eeecaf18e63c",
                "sha256": "ec1616969aa46c51310b196022e5d3926f8d3fa52b80ec17f6b4133623bd5434"
            },
            "downloads": -1,
            "filename": "ciso8601-2.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "9d006e7f7345ce9b0a36eeecaf18e63c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 28214,
            "upload_time": "2024-12-09T12:26:40",
            "upload_time_iso_8601": "2024-12-09T12:26:40.768047Z",
            "url": "https://files.pythonhosted.org/packages/09/e9/d83711081c997540aee59ad2f49d81f01d33e8551d766b0ebde346f605af/ciso8601-2.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-09 12:26:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "closeio",
    "github_project": "ciso8601",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "circle": true,
    "tox": true,
    "lcname": "ciso8601"
}
        
Elapsed time: 7.77466s