
    rbi                       d Z ddlmZ ddlZddlZej        Z G d de          Zd Z	d Z
d Zd d
Zd Zd Zd Zd!d"dZd!d#dZd Zd Zd$dZd%dZedk    r,ddlZddlZ ej         ej                    j                   dS dS )&z6fontTools.misc.textTools.py -- miscellaneous routines.    )annotationsNc                  B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )Tagc                Z    t          | t                    r|                     d          } | S Nzlatin-1)
isinstancebytesdecode)blobs    h/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/fontTools/misc/textTools.py	transcodezTag.transcode   s*    dE"" 	*;;y))D    c                ^    t                               | |                     |                    S N)str__new__r   )selfcontents     r   r   zTag.__new__   s"    {{4!8!8999r   c                .    |                      |           S r   )__eq__r   others     r   __ne__z
Tag.__ne__   s    ;;u%%%%r   c                ^    t                               | |                     |                    S r   )r   r   r   r   s     r   r   z
Tag.__eq__   s"    zz$u 5 5666r   c                6    t                               |           S r   )r   __hash__r   s    r   r   zTag.__hash__   s    ||D!!!r   c                ,    |                      d          S r   )encoder   s    r   tobyteszTag.tobytes    s    {{9%%%r   N)
__name__
__module____qualname__staticmethodr   r   r   r   r   r     r   r   r   r      sx          \
: : :& & &7 7 7" " "& & & & &r   r   c                N    t          t          d | D                                 S )z-Convert a list of hex strings to binary data.c              3  D   K   | ]}t          |t                    |V  d S r   )r   r   ).0chunks     r   	<genexpr>zreadHex.<locals>.<genexpr>&   s1      QQe*UC:P:PQEQQQQQQr   )deHexStrstrjoin)r   s    r   readHexr-   $   s'    GQQwQQQQQRRRr   c                L   t          |                                           } t          |           dz  r| dz   } g }t          dt          |           d          D ]=}|                    t          t          | ||dz            d                               >t          |          S )z$Convert a hex string to binary data.   0r      )r,   splitlenrangeappendbytechrint	bytesjoin)hexdatadatais      r   r+   r+   )   s    gmmoo&&G
7||a  C-D1c'llA&& : :GCAE	 2B77889999T??r   c                    t           j        }d}| D ].}t          |          }|||dz	  dz           z   ||dz           z   }/|S )z$Convert binary data to a hex string.       )string	hexdigitsbyteord)r:   hrcr;   s        r   hexStrrF   4   sT    A
A / /AJJ16S.!!Aa#gJ.Hr       c                2   g }d}t          |          D ]6}| dz  rd|z   }nd|z   }| dz	  } |dz   dz  s|                    |           d}7|r|                    |           |                                 | dv s
J d            d                    |          S )	Nr=      1r0      )r   z$number doesn't fit in number of bits )r4   r5   reversejoin)lbitsitemsbinaryr;   s        r   
num2binaryrT   >   s    EF4[[  s7 	"6\FF6\FFQ! 	LL   F V	MMOOO<<<?<<<88E??r   c                v    t          |                                           } d}| D ]}|dz  }|dk    r|dz  }|S )Nr   rI   r0   )r,   r2   )binrP   digits      r   
binary2numrX   Q   sL    
#))++

C	A  FC<<CAHr   c                f    	 t          | d           S # t          $ r t          |           cY S w xY w)zjReturn a sorted copy of a list. If there are only strings
    in the list, it will not consider case.
    c                .    |                                  | fS r   )lower)as    r   <lambda>zcaselessSort.<locals>.<lambda>a   s    AGGIIq> r   )key)sorted	TypeError)alists    r   caselessSortrb   [   sK    
e!9!9::::   e}}s    00c                n    t          |           } |dk    rt          |           |z  }|r| d||z
  z  z  } | S )zPad byte string 'data' with null bytes until its length is a
    multiple of 'size'.

    >>> len(pad(b'abcd', 4))
    4
    >>> len(pad(b'abcde', 2))
    6
    >>> len(pad(b'abcde', 4))
    8
    >>> pad(b'abcdef', 4) == b'abcdef\x00\x00'
    True
    rI       )r    r3   )r:   size	remainders      r   padrg   f   sI     4==DaxxII$	 	/ETI-..DKr   asciistrictsstr | bytesencodingr   errorsreturnc                \    t          | t                    s|                     ||          S | S r   )r   r   r
   rj   rl   rm   s      r   tostrrq   {   s-    a xx&)))r   r	   c                v    t          | t                    r|                     ||          S t          |           S r   )r   r   r   r	   rp   s      r   r    r       s3    !S xx&)))Qxxr   c                "    t          | g          S r   )r	   )ns    r   r6   r6      s    !::r   c                N    t          | t                    r| nt          |           S r   )r   r7   ord)rE   s    r   rB   rB      s!    1c"".11A.r   r=   c                F    t          |                              |           S r   )rq   rO   iterablejoiners     r   r,   r,      s    ==h'''r   r   c                Z    t          |                              d | D                       S )Nc              3  4   K   | ]}t          |          V  d S r   )r    )r(   items     r   r*   zbytesjoin.<locals>.<genexpr>   s(      CC$CCCCCCr   )r    rO   rx   s     r   r8   r8      s+    6??CC(CCCCCCr   __main__)rG   )rh   ri   )rj   rk   rl   r   rm   r   rn   r   )rj   rk   rl   r   rm   r   rn   r	   )r=   )r   )__doc__
__future__r   astr@   literal_evalsafeEvalr   r   r-   r+   rF   rT   rX   rb   rg   rq   r    r6   rB   r,   r8   r!   doctestsysexittestmodfailedr%   r   r   <module>r      s   < < " " " " " " 



  & & & & &# & & &.S S S
       &      *          / / /( ( ( (D D D D zCH_W_%&&&&& r   