
    =KiP                         S SK Jr  S SKrS SKrS SKr\R
                  " S5      rSrS\R                  4S jr	S\R                  S\
4S jrg)	    )ListNz^([0-9]{1,5}(h|m|s|ms)){1,4}$l   X#Oreturnc                     [         R                  U 5      (       d  [        SR                  U 5      5      e[        R
                  " U 5      $ )a  
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    [/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/kubernetes/utils/duration.pyparse_durationr      s>    \ H%%6==hGHHx((    deltac                    U [         R                  " S5      :X  a  gU [         R                  " S5      :  a  [        SR                  U 5      5      eU [         R                  " [        S9:  a  [        SR                  U 5      5      eU R
                  nUS-  S:w  a  [        SR                  U 5      5      e[        U R                  5       5      n/ nUS-  nUS:  a  UR                  U S	35        X$S-  -  nUS
-  nUS:  a  UR                  U S35        X%S
-  -  nUS:  a  UR                  U S35        US:  a  UR                  US-   S35        SR                  U5      $ )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   sh   ^ ""1%% x!!!$$LSSTYZ[[x!!~>>T[[\abd 	d !!H4AFVE]
 	
 u""$%DFDLEqyqk"bjG{	m$"axaj!!|T)*"-.776?r   )typingr   r   rer
   compiler   r   r   r   strr'    r   r   <module>r-      s[      	 
 ZZ89
 C1) 2 2 1)h[8-- [# [r   