
    -Ph                        U d Z ddlmZ ddlZddlmZmZmZmZ erddl	m
Z
 ddgZed         Zd	ed<   	  ej        d
          Zded<    eg d          Z eg d          ZddZdS )z;Tools for working with the Polars duration string language.    )annotationsN)TYPE_CHECKINGLiteralcastget_args)	TypeAliasIntervalUnitparse_interval_string)
nsusmssmhdmoqyr   z5^(?P<multiple>\d+)(?P<unit>ns|us|ms|mo|m|s|h|d|q|y)\Zzre.Pattern[str]PATTERN_INTERVAL)                  )r   r   r   everystrreturntuple[int, IntervalUnit]c                   t                               |           x}rt          |d                   }t          d|d                   }|dk    r&|t          vrdt           d| d}t          |          |dk    r&|t          vrd	t           d| d}t          |          |d
k    r|dk    rd| d}t          |          ||fS d|  dt          t                     d}t          |          )zParse a string like "1d", "2h", "3m" into a tuple of (number, unit).

    Returns:
        A tuple of multiple and unit parsed from the interval string.
    multipler	   unitr   z:Only the following multiples are supported for 'mo' unit: z.
Got: .r   z9Only the following multiples are supported for 'q' unit: r   r   z:Only multiple 1 is currently supported for 'y' unit.
Got: zInvalid `every` string: zB. Expected string of kind <number><unit>, where 'unit' is one of: )	r   matchintr   MONTH_MULTIPLES
ValueErrorQUARTER_MULTIPLESr   r	   )r   r$   r!   r"   msgs        R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/narwhals/_duration.pyr
   r
   #   s0    !&&u---u uZ())NE&M224<<HO;;ssshpsssCS//!3;;8+<<<tN_ttiqtttCS//!3;;8q==YhYYY  S//!~	=5 	= 	=#+L#9#9	= 	= 	=  S//    )r   r   r   r   )__doc__
__future__r   retypingr   r   r   r   typing_extensionsr   __all__r	   __annotations__compiler   	frozensetr&   r(   r
    r+   r*   <module>r6      s   A A A " " " " " " 				 9 9 9 9 9 9 9 9 9 9 9 9 ,++++++2
3!"VW W W W W %/BJ<% %      )///00Iiii((      r+   