
    $Sh                     ~    d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
  G d de          Z G d	 d
e          ZdS )z+
SubRip's time format parser: HH:MM:SS,mmm
    N)time)InvalidTimeString)ComparableMixin)str
basestringc                   (    e Zd ZddZd Zd Zd ZdS )TimeItemDescriptorr   c                 V    t          |          | _        t          |          | _        d S N)intratiosuper_ratio)selfr   r   s      S/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/pysrt/srttime.py__init__zTimeItemDescriptor.__init__   s%    ZZ
{++    c                 <    | j         r|j        | j         z  S |j        S r   )r   ordinal)r   instances     r   _get_ordinalzTimeItemDescriptor._get_ordinal   s'     	7#d&666r   c                 N    |t           |                     |          | j        z  S r   )AttributeErrorr   r   )r   r   klasss      r   __get__zTimeItemDescriptor.__get__   s)        **dj88r   c                     |                      |          |j        | j        z  z
  }|xj        || j        z  |z
  z  c_        d S r   )r   r   r   )r   r   valueparts       r   __set__zTimeItemDescriptor.__set__   sJ      **X-=
-JJEDJ.55r   N)r   )__name__
__module____qualname__r   r   r   r    r   r   r	   r	      sU        , , , ,     
9 9 9
6 6 6 6 6r   r	   c                       e Zd ZdZdZ ej        d          Z ej        d          ZdZ	e	dz  Z
e
dz  Z ee          Z ee
e          Z ee	e
          Z ede	          Zd fd		Zd
 Zd Z fdZd Zd Zd Zd Zd Zd Zd Zed             Zd Zd Zed             Z ed             Z!ed             Z"ed             Z#d Z$ xZ%S )
SubRipTimez%02d:%02d:%02d,%03dzSubRipTime(%d, %d, %d, %d)z\:|\.|\,z^(\d+)  <      r   c                     t          t          |                                            || j        z  || j        z  z   || j        z  z   |z   | _        dS )z
        SubRipTime(hours, minutes, seconds, milliseconds)

        All arguments are optional and have a default value of 0.
        N)superr$   r   HOURS_RATIOMINUTES_RATIOSECONDS_RATIOr   )r   hoursminutessecondsmilliseconds	__class__s        r   r   zSubRipTime.__init__0   s^     	j$((***t//!334!334 $$r   c                 0    | j         t          |           z  S r   )	TIME_REPRtupler   s    r   __repr__zSubRipTime.__repr__<   s    ~d++r   c                     | j         dk     r't          t                              d                    S | j        t          |           z  S Nr   )r   r   r$   from_ordinalTIME_PATTERNr4   r5   s    r   __str__zSubRipTime.__str__?   s?    <!z..q11222 5;;..r   c                 |    t          t          |                               |                     |          |          S r   )r)   r$   _comparecoerce)r   othermethodr1   s      r   r=   zSubRipTime._compareE   s/    Z&&//E0B0BFKKKr   c                     | j         S r   )r   r5   s    r   _cmpkeyzSubRipTime._cmpkeyH   s
    |r   c                 l    |                      | j        |                     |          j        z             S r   r9   r   r>   r   r?   s     r   __add__zSubRipTime.__add__K   ,      E0B0B0J!JKKKr   c                 V    | xj         |                     |          j         z  c_         | S r   r   r>   rE   s     r   __iadd__zSubRipTime.__iadd__N   &    E**22r   c                 l    |                      | j        |                     |          j        z
            S r   rD   rE   s     r   __sub__zSubRipTime.__sub__R   rG   r   c                 V    | xj         |                     |          j         z  c_         | S r   rI   rE   s     r   __isub__zSubRipTime.__isub__U   rK   r   c                 p    |                      t          t          | j        |z                                S r   )r9   r   roundr   r   r   s     r   __mul__zSubRipTime.__mul__Y   s-      U4<%+?%@%@!A!ABBBr   c                 X    t          t          | j        |z                      | _        | S r   )r   rQ   r   rR   s     r   __imul__zSubRipTime.__imul__\   s%    5!56677r   c                 h   t          |t                    r|S t          |t                    r|                     |          S t          |t                    r|                     |          S t          |t                    r|                     |          S 	  | di |S # t          $ r  | | cY S w xY w)z
        Coerce many types to SubRipTime instance.
        Supported types:
          - str/unicode
          - int/long
          - datetime.time
          - any iterable
          - dict
        Nr"   )	
isinstancer$   r   from_stringr   r9   r   	from_time	TypeError)clsr?   s     r   r>   zSubRipTime.coerce`   s     eZ(( 	LeZ(( 	*??5)))eS!! 	+##E***eT"" 	(=='''	3<<<< 	 	 	3;	s   B B10B1c              #   R   K   | j         V  | j        V  | j        V  | j        V  d S r   r-   r.   r/   r0   r5   s    r   __iter__zSubRipTime.__iter__x   sE      jllr   c                 ^    d|v r| |                     d          z  } |  | j        |i |z  } dS )z
        shift(hours, minutes, seconds, milliseconds)

        All arguments are optional and have a default value of 0.
        r   N)popr1   )r   argskwargss      r   shiftzSubRipTime.shift~   sD     fFJJw'''D////r   c                 4     | t          |                    S )zR
        int -> SubRipTime corresponding to a total count of milliseconds
        )r0   )r   )r[   r   s     r   r9   zSubRipTime.from_ordinal   s    
 sG----r   c                       j                             |          }t          |          dk    rt             fd|D              S )zq
        str/unicode(HH:MM:SS,mmm) -> SubRipTime corresponding to serial
        raise InvalidTimeString
           c              3   B   K   | ]}                     |          V  d S r   )	parse_int).0ir[   s     r   	<genexpr>z)SubRipTime.from_string.<locals>.<genexpr>   s/      55!S]]1%%555555r   )RE_TIME_SEPsplitlenr   )r[   sourceitemss   `  r   rX   zSubRipTime.from_string   sQ     %%f--u::??##s5555u55566r   c                     	 t          |          S # t          $ rC | j                            |          }|r#t          |                                          cY S Y dS w xY wr8   )r   
ValueError
RE_INTEGERmatchgroup)r[   digitsrt   s      r   rh   zSubRipTime.parse_int   sn    	v;; 	 	 	N((00E *5;;==)))))11		s    AAAc                 N     | |j         |j        |j        |j        dz            S )zJ
        datetime.time -> SubRipTime corresponding to time object
        r%   r]   )hourminutesecondmicrosecond)r[   ro   s     r   rY   zSubRipTime.from_time   s8    
 sfmM0Bd0JL L L 	Lr   c                 T    t          | j        | j        | j        | j        dz            S )zN
        Convert SubRipTime instance into a pure datetime.time object
        r%   )r   r-   r.   r/   r0   r5   s    r   to_timezSubRipTime.to_time   s-     DJdl%,. . 	.r   )r   r   r   r   )&r   r    r!   r:   r3   recompilerl   rs   r,   r+   r*   r	   r-   r.   r/   r0   r   r6   r;   r=   rB   rF   rJ   rM   rO   rS   rU   classmethodr>   r^   rc   r9   rX   rh   rY   r}   __classcell__)r1   s   @r   r$   r$   "   s-       (L,I"*[))KI&&JM!B&M"$K{++E  <<G  >>G%%a77L
$ 
$ 
$ 
$ 
$ 
$, , ,/ / /L L L L L  L L L  L L L  C C C     [.     0 0 0 . . [. 7 7 [7   [ L L [L. . . . . . .r   r$   )__doc__r~   datetimer   pysrt.srtexcr   pysrt.comparablemixinr   pysrt.compatr   r   objectr	   r$   r"   r   r   <module>r      s     
			       * * * * * * 1 1 1 1 1 1 ( ( ( ( ( ( ( (6 6 6 6 6 6 6 6*O. O. O. O. O. O. O. O. O. O.r   