§
    ŠtjP  ã                   ó~   — d dl mZ d dlZd dlZd dlZ ej        d¦  «        ZdZdej        fd„Z	dej        de
fd„ZdS )	é    )ÚListNz^([0-9]{1,5}(h|m|s|ms)){1,4}$l   ÿX#OÚreturnc                 ó¢   — t                                | ¦  «        s"t          d                     | ¦  «        ¦  «        ‚t	          j        | ¦  «        S )a5  
    Parse GEP-2257 Duration format to a datetime.timedelta object.

    The GEP-2257 Duration format is a restricted form of the input to the Go
    time.ParseDuration function; specifically, it must match the regex
    "^([0-9]{1,5}(h|m|s|ms)){1,4}$".

    See https://gateway-api.sigs.k8s.io/geps/gep-2257/ for more details.

    Input: duration: string
    Returns: datetime.timedelta

    Raises: ValueError on invalid or unknown input

    Examples:
    >>> parse_duration("1h")
    datetime.timedelta(seconds=3600)
    >>> parse_duration("1m")
    datetime.timedelta(seconds=60)
    >>> parse_duration("1s")
    datetime.timedelta(seconds=1)
    >>> parse_duration("1ms")
    datetime.timedelta(microseconds=1000)
    >>> parse_duration("1h1m1s")
    datetime.timedelta(seconds=3661)
    >>> parse_duration("10s30m1h")
    datetime.timedelta(seconds=5410)

    Units are always required.
    >>> parse_duration("1")
    Traceback (most recent call last):
        ...
    ValueError: Invalid duration format: 1

    Floating-point and negative durations are not valid.
    >>> parse_duration("1.5m")
    Traceback (most recent call last):
        ...
    ValueError: Invalid duration format: 1.5m
    >>> parse_duration("-1m")
    Traceback (most recent call last):
        ...
    ValueError: Invalid duration format: -1m
    zInvalid duration format: {})Ú
reDurationÚmatchÚ
ValueErrorÚformatÚ
durationpyÚfrom_str)Údurations    úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/kubernetes/utils/duration.pyÚparse_durationr      sJ   € õ\ ×Ò˜HÑ%Ô%ð IÝÐ6×=Ò=¸hÑGÔGÑHÔHÐHåÔ˜xÑ(Ô(Ð(ó    Údeltac                 ó(  — | t          j        d¦  «        k    rdS | t          j        d¦  «        k     r"t          d                     | ¦  «        ¦  «        ‚| t          j        t          ¬¦  «        k    r"t          d                     | ¦  «        ¦  «        ‚| j        }|dz  dk    r"t          d                     | ¦  «        ¦  «        ‚t          |                      ¦   «         ¦  «        }g }|dz  }|dk    r |                     |› d	�¦  «         ||dz  z  }|d
z  }|dk    r |                     |› d�¦  «         ||d
z  z  }|dk    r|                     |› d�¦  «         |dk    r|                     |dz  › d�¦  «         d 	                    |¦  «        S )a‡  
    Format a datetime.timedelta object to GEP-2257 Duration format.

    The GEP-2257 Duration format is a restricted form of the input to the Go
    time.ParseDuration function; specifically, it must match the regex
    "^([0-9]{1,5}(h|m|s|ms)){1,4}$".

    See https://gateway-api.sigs.k8s.io/geps/gep-2257/ for more details.

    Input: duration: datetime.timedelta

    Returns: string

    Raises: ValueError if the timedelta given cannot be expressed as a
    GEP-2257 Duration.

    Examples:
    >>> format_duration(datetime.timedelta(seconds=3600))
    '1h'
    >>> format_duration(datetime.timedelta(seconds=60))
    '1m'
    >>> format_duration(datetime.timedelta(seconds=1))
    '1s'
    >>> format_duration(datetime.timedelta(microseconds=1000))
    '1ms'
    >>> format_duration(datetime.timedelta(seconds=5410))
    '1h30m10s'

    The zero duration is always "0s".
    >>> format_duration(datetime.timedelta(0))
    '0s'

    Sub-millisecond precision is not allowed.
    >>> format_duration(datetime.timedelta(microseconds=100))
    Traceback (most recent call last):
        ...
    ValueError: Cannot express sub-millisecond precision in GEP-2257: 0:00:00.000100

    Negative durations are not allowed.
    >>> format_duration(datetime.timedelta(seconds=-1))
    Traceback (most recent call last):
        ...
    ValueError: Cannot express negative durations in GEP-2257: -1 day, 23:59:59
    r   Ú0sz1Cannot express negative durations in GEP-2257: {})ÚmillisecondszFCannot express durations longer than 99999h59m59s999ms in GEP-2257: {}iè  z8Cannot express sub-millisecond precision in GEP-2257: {}i  Úhé<   ÚmÚsÚmsÚ )
ÚdatetimeÚ	timedeltar   r	   ÚmaxDuration_msÚmicrosecondsÚintÚtotal_secondsÚappendÚjoin)r   Údelta_usÚsecsÚoutputÚhoursÚminutess         r   Úformat_durationr'   S   s¹  € ð^ •Ô" 1Ñ%Ô%Ò%Ð%Øˆtð �xÔ! !Ñ$Ô$Ò$Ð$ÝÐL×SÒSÐTYÑZÔZÑ[Ô[Ð[à�xÔ!­~Ð>Ñ>Ô>Ò>Ð>ÝØT×[Ò[Ð\aÑbÔbñdô dð 	dð Ô!€Hà�4‰˜AÒÐÝØFßŠV�E‰]Œ]ñ
ô 
ð 	
õ ˆu×"Ò"Ñ$Ô$Ñ%Ô%€Dà€Fà�D‰L€EØˆq‚y€yØ�Š˜�k�k�kÑ"Ô"Ð"Ø�˜‘Ñˆà�b‰j€GØ�‚{€{Ø�Š˜�m�m�mÑ$Ô$Ð$Ø�˜"‘Ñˆàˆa‚x€xØ�Š˜�j�j�jÑ!Ô!Ð!à�!‚|€|Ø�Š˜ TÑ)Ð-Ð-Ð-Ñ.Ô.Ð.à�7Š7�6‰?Œ?Ðr   )Útypingr   r   Úrer
   Úcompiler   r   r   r   Ústrr'   © r   r   ú<module>r-      s©   ðð Ð Ð Ð Ð Ð à €€€Ø 	€	€	€	à Ð Ð Ð ð
 ˆRŒZÐ8Ñ9Ô9€
ð C€ð1) Ô 2ð 1)ð 1)ð 1)ð 1)ðh[˜8Ô-ð [°#ð [ð [ð [ð [ð [ð [r   