�
�S�g� � � � d dl Z d dlmZ dd�Zy)� N)�format_timezonec � � | j �I|du r:|du r+| j t j j �� } nt d� �t d� �|du r)| j
t j j � } | j d� }|du r|| j d� z
}| j t j j u r|dz
}|S |t | j j | � j � � z
}|S )aj
Generate an :RFC:`3339`-formatted timestamp from a
:class:`datetime.datetime`.
>>> from datetime import datetime, timezone
>>> from zoneinfo import ZoneInfo
>>> generate(datetime(2009, 1, 1, 12, 59, 59, 0, timezone.utc))
'2009-01-01T12:59:59Z'
The timestamp will use UTC unless `utc=False` is specified, in which case
it will use the timezone from the :class:`datetime.datetime`'s
:attr:`tzinfo` parameter.
>>> eastern = ZoneInfo('US/Eastern')
>>> dt = datetime(2009, 1, 1, 12, 59, 59, tzinfo=eastern)
>>> generate(dt)
'2009-01-01T17:59:59Z'
>>> generate(dt, utc=False)
'2009-01-01T12:59:59-05:00'
Unless `accept_naive=True` is specified, the `datetime` must not be naive.
>>> generate(datetime(2009, 1, 1, 12, 59, 59, 0))
Traceback (most recent call last):
...
ValueError: naive datetime and accept_naive is False
>>> generate(datetime(2009, 1, 1, 12, 59, 59, 0), accept_naive=True)
'2009-01-01T12:59:59Z'
If `accept_naive=True` is specified, the `datetime` is assumed to be UTC.
Attempting to generate a local timestamp from a naive datetime will result
in an error.
>>> generate(datetime(2009, 1, 1, 12, 59, 59, 0), accept_naive=True, utc=False)
Traceback (most recent call last):
...
ValueError: cannot generate a local timestamp from a naive datetime
T)�tzinfoz7cannot generate a local timestamp from a naive datetimez(naive datetime and accept_naive is Falsez%Y-%m-%dT%H:%M:%Sz.%f�Z)r �replace�datetime�timezone�utc�
ValueError�
astimezone�strftimer � utcoffset�
total_seconds)�dtr
�accept_naive�microseconds� timestamps ��/build/snapcraft-certbot-29b1212f749eeba2f1dece1adfe9a83a/parts/certbot/install/lib/python3.12/site-packages/pyrfc3339/generator.py�generater s� � �T
�y�y���4���d�{��Z�Z�x�'8�'8�'<�'<�Z�=�� �M�� � �G�H�H�
�d�{�
�]�]�8�,�,�0�0�
1�����/�0�I��t���R�[�[��'�'� � �y�y�H�%�%�)�)�)��S�� � �� �_�R�Y�Y�%8�%8��%<�%J�%J�%L�M�M� ��� )TFF)r �pyrfc3339.utilsr r � r r �<module>r s �� � +�@r |