
    Zi                         d dl Z d dlZdZdez  Zdez  Zdez  Zdez  Zdez  Zdez  Zdez  Z	dez  Z
dez  Zeeeeeeeeee	e
ed	Z e j        d
          Z G d de          Zd ZddZd Zd ZdS )    N   i  <            im  )nsusu   µsu   μsmssmhdwmmyu   ([\d\.]+)([a-zµμ]+)c                       e Zd ZdZdS )DurationErrorzduration errorN)__name__
__module____qualname____doc__     N/root/projects/butler/venv/lib/python3.11/site-packages/durationpy/duration.pyr   r   #   s        r   r   c                 h   | }| dv rt          j                    S d}| r"| d         dv r| d         dk    rd}| dd         } t          t                              |                     }|s"t          d                    |                    |d                                         dk    s+|d                                         t          |           k    r"t          d	                    |                    d}|D ]}|
                                \  }}|t          vr#t          d
                    ||                    	 |t          |          t          |         z  z  }g# t          $ r$ t          d                    ||                    w xY w|t          z  }t          j        ||z            S )z/Parse a duration string to a datetime.timedelta)0z+0z-0r   r   z+--NzInvalid duration {}z*Extra chars at start or end of duration {}zUnknown unit {} in duration {}zInvalid value {} in duration {})microseconds)datetime	timedeltalist_duration_refinditerr   formatstartendlengroupsunitsfloat	Exception_microsecond_size)	durationoriginalsignmatchestotalmatchvalueunitr   s	            r   from_strr6   '   s    H$$$!###D  HQK4''A;#DABB<<((2233G D188BBCCCqzQ'"+//"3"3s8}}"D"D8??IIK K 	K E 	K 	Kllnntu077hGGI I I	KU5\\E$K//EE 	K 	K 	K188IIK K K	K ,,L4,+>????s     E!!.FFc                    |                                  }|dk     rdnd}t          t          |t          z            d          }t          |          dk     rt	          ||          }nt          ||          }d                    ||          S )z0Format a datetime.timedelta to a duration stringr   r    r   z{}{})total_secondsroundabs_second_size_to_str_small_to_str_larger%   )deltaextendedr9   r0   nanoseconds
result_strs         r   to_strrC   K   s     ''))M!##33DML8991==K
=A";99

";99
==z***r   c                 >   d}| sdS t          | t          z            }|r%| t          |z  z  } |d                    |          z  }t          | t          z            }|r%| t          |z  z  } |d                    |          z  }| r|d                    |           z  }|S )Nr8   r   z{:g}msz{:g}usz{:g}ns)int_millisecond_sizer%   r-   )rA   r@   rB   millisecondsr   s        r   r=   r=   Z   s    J s{%6677L 4(<77hool333
{%6677L 4(<77hool333
 3hook222
r   c                    d}|rt          | t          z            }|r%| t          |z  z  } |d                    |          z  }t          | t          z            }|r%| t          |z  z  } |d                    |          z  }t          | t          z            }|r%| t          |z  z  } |d                    |          z  }t          | t
          z            }|r%| t
          |z  z  } |d                    |          z  }t          | t          z            }|r%| t          |z  z  } |d                    |          z  }t          |           t          t                    z  }|r%| t          |z  z  } |d                    |          z  }|S )Nr8   z{:g}yz{:g}mmz{:g}dz{:g}hz{:g}mz{:g}s)	rE   
_year_sizer%   _month_size	_day_size
_hour_size_minute_sizer+   r<   )	rA   r@   rB   yearsmonthsdayshoursminutessecondss	            r   r>   r>   q   s   J /K*,-- 	0:--K'..///J[;.// 	2;//K(//&111J;*++ 	/9t++K'.....Jj())E ,zE))gnnU+++
+,--G .|g--gnnW---
K  5#6#66G .|g--gnnW---
r   )F)rer    _nanosecond_sizer-   rF   r<   rM   rL   rK   
_week_sizerJ   rI   r*   compiler#   
ValueErrorr   r6   rC   r=   r>   r   r   r   <module>rY      s=   
			  ++ ,, ,,<'<'
:%	9$
9$9$
 








	 	 rz233    J   "@ "@ "@H+ + + +  .$ $ $ $ $r   