Ë
    Ã?Æià  ã                  óZ   — d Z ddlmZ ddl­ ddlmZmZ dd„ZdZdd„Z	dd„Z
dd	„Zdd
„Zy)a¸  VAT (Irish tax reference number).

The Irish VAT number consists of 8 or 9 digits. The number is either 7 digits
and 1 letter (optionally followed by a W for married women), 7 digits and 2
letters, or 6 digits and 2 letters or symbols (in second and last position).

>>> validate('IE 6433435F')  # pre-2013 format
'6433435F'
>>> validate('IE 6433435OA')  # 2013 format
'6433435OA'
>>> validate('6433435E')  # incorrect check digit
Traceback (most recent call last):
    ...
InvalidChecksum: ...
>>> validate('8D79739I')  # old style number
'8D79739I'
>>> validate('8?79739J')  # incorrect old style
Traceback (most recent call last):
    ...
InvalidFormat: ...
>>> convert('1F23456T')
'0234561T'
é    )Úannotations)Ú*)ÚcleanÚisdigitsc                ó‚   — t        | d«      j                  «       j                  «       } | j                  d«      r| dd } | S )zˆConvert the number to the minimal representation. This strips the
    number of any valid separators and removes surrounding whitespace.z -ÚIEé   N)r   ÚupperÚstripÚ
startswith©Únumbers    úT/var/www/html/myprovider/mon_projet_qr/lib/python3.12/site-packages/stdnum/ie/vat.pyÚcompactr   2   s@   € ô �6˜4Ó ×&Ñ&Ó(×.Ñ.Ó0€FØ×Ñ˜ÔØ˜˜�ˆØ€Mó    ÚWABCDEFGHIJKLMNOPQRSTUVc           	     ó¾   — t        | «      j                  d«      } t        t        d„ t	        | dd «      D «       «      dt        j                  | dd «      z  z   dz     S )zZCalculate the check digit. The number passed should not have the
    check digit included.é   c              3  óD   K  — | ]  \  }}d |z
  t        |«      z  –— Œ y­w)é   N)Úint)Ú.0ÚiÚns      r   ú	<genexpr>z#calc_check_digit.<locals>.<genexpr>C   s!   è ø€ Ò?¡  AˆQ�‰U”c˜!“fÕÑ?ùs   ‚ Né	   é   )r   ÚzfillÚ	_alphabetÚsumÚ	enumerateÚindexr   s    r   Úcalc_check_digitr#   >   sb   € ô �V‹_×"Ñ" 1Ó%€FÜÜÑ?¬°6¸"¸1°:Ó)>Ô?Ó?Ø	ŒI�O‰O˜F 1 2˜JÓ'Ñ'ñ	(Ø+-ñ.ñ /ð /r   c                ó¦  — t        | «      } t        | dd «      rt        | dd «      s
t        «       ‚t        d„ | dd D «       «      s
t        «       ‚t	        | «      dvr
t        «       ‚t        | dd «      r&| d   t        | dd | dd z   «      k7  r
t        «       ‚| S | d   dv r&| d   t        | dd | d	   z   «      k7  r
t        «       ‚| S t        «       ‚)
úkCheck if the number provided is a valid VAT number. This checks the
    length, formatting and check digit.Né   r	   r   c              3  ó,   K  — | ]  }|t         v –— Œ y ­w)N)r   )r   Úxs     r   r   zvalidate.<locals>.<genexpr>M   s   è ø€ Ò2 !ˆq”IŒ~Ñ2ùs   ‚)r   r   r   zABCDEFGHIJKLMNOPQRSTUVWXYZ+*r   )r   r   ÚInvalidFormatÚallÚlenÚInvalidLengthr#   ÚInvalidChecksumr   s    r   Úvalidater.   G   së   € ô �V‹_€FÜ�F˜2˜A�JÔ¤x°°q¸°Ô'<Ü‹oÐÜÑ2 v¨a¨b zÔ2Ô2Ü‹oÐÜ
ˆ6ƒ{˜&Ñ Ü‹oÐÜ��r˜�
Ôà�!‰9Ô(¨°°¨°f¸Q¸R°jÑ)@ÓAÒAÜ!Ó#Ð#ð €Mð 
�‰Ð4Ñ	4à�!‰9Ô(¨°°!¨°v¸a±yÑ)@ÓAÒAÜ!Ó#Ð#ð €Mô ‹oÐr   c                óJ   — 	 t        t        | «      «      S # t        $ r Y yw xY w)r%   F)Úboolr.   ÚValidationErrorr   s    r   Úis_validr2   ^   s)   € ðÜ”H˜VÓ$Ó%Ð%øÜò Ùðús   ‚ –	"¡"c                ó|   — t        | «      } t        | «      dk(  r"t        | d   «      sd| dd z   | d   z   | dd z   } | S )zœConvert an "old" style 8-digit VAT number where the second character
    is a letter to the new 8-digit format where only the last digit is a
    character.r   r&   Ú0r	   r   r   N)r   r+   r   r   s    r   Úconvertr5   g   sM   € ô �V‹_€FÜ
ˆ6ƒ{�aÒ¤¨°©Ô 3Ø�v˜a �{Ñ" V¨A¡YÑ.°¸¸°Ñ;ˆØ€Mr   N)r   ÚstrÚreturnr6   )r   r6   r7   r0   )Ú__doc__Ú
__future__r   Ústdnum.exceptionsÚstdnum.utilr   r   r   r   r#   r.   r2   r5   © r   r   ú<module>r=      s5   ðñ(õ0 #ä ß 'óð &€	ó/óó.ôr   