HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux srvntsweb01 6.8.0-55-generic #57-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 12 23:42:21 UTC 2025 x86_64
User: admntserv (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //snap/certbot/5370/lib/python3.12/site-packages/pyrfc3339/utils.py
from datetime import datetime


def datetime_utcoffset(dt: datetime) -> float:
    """
    Return the UTC offset for an aware :class:`datetime.datetime` in seconds.

    >>> from datetime import datetime
    >>> from zoneinfo import ZoneInfo
    >>> z = ZoneInfo('US/Eastern')
    >>> dt = datetime(2024, 11, 5, 19, 7, 6, tzinfo=z)
    >>> datetime_utcoffset(dt)
    -18000.0

    >>> dt = datetime(2024, 11, 5, 19, 7, 6)
    >>> datetime_utcoffset(dt)
    Traceback (most recent call last):
    ...
    AssertionError

    :param datetime.datetime dt: a :class:`~datetime.datetime` instance; must be aware (that is, have a timezone attached)
    :return: the UTC offset of the supplied :class:`~datetime.datetime` in seconds
    :rtype: float

    """

    assert dt.tzinfo is not None

    tz = dt.tzinfo
    offset = tz.utcoffset(dt)

    assert offset is not None

    return offset.total_seconds()