Ë
    Ã?Æiµ  ã                  ó>   — d Z ddlmZ ddl­ d	d„Zd
d„Zd
d„Zdd„Zy)a�  The ISO 7064 Mod 11, 2 algorithm.

The Mod 11, 2 algorithm is a simple module 11 checksum where the check
digit can be an X to make the number valid.

For a module that can do generic Mod x, 2 calculations see the
:mod:`stdnum.iso7064.mod_37_2` module.

>>> calc_check_digit('0794')
'0'
>>> validate('07940')
'07940'
>>> calc_check_digit('079')
'X'
>>> validate('079X')
'079X'
>>> checksum('079X')
1
é    )Úannotations)Ú*c                óN   — d}| D ]  }d|z  t        |dk(  rdn|«      z   dz  }Œ |S )zCCalculate the checksum. A valid number should have a checksum of 1.r   é   ÚXé
   é   )Úint)ÚnumberÚcheckÚns      ú^/var/www/html/myprovider/mon_projet_qr/lib/python3.12/site-packages/stdnum/iso7064/mod_11_2.pyÚchecksumr   -   s;   € à€EØò >ˆØ�U‘œS q¨C¢x¡°QÓ7Ñ7¸2Ñ=‰ð>à€Ló    c                óN   — ddt        | «      z  z
  dz  }|dk(  rdS t        |«      S )z^Calculate the extra digit that should be appended to the number to
    make it a valid number.é   r   r	   r   r   )r   Ústr)r   Úcs     r   Úcalc_check_digitr   5   s2   € ð 
ˆQ”˜&Ó!Ñ!Ñ	! RÑ'€AØ�r’'ˆ3Ð%œs 1›vÐ%r   c                ój   — 	 t        | «      dk(  }|s
t        «       ‚| S # t        $ r t        «       ‚w xY w)ú'Check whether the check digit is valid.r   )r   Ú	ExceptionÚInvalidFormatÚInvalidChecksum)r   Úvalids     r   Úvalidater   <   sB   € ðÜ˜Ó  AÑ%ˆñ ÜÓÐØ€Møô	 ò Ü‹oÐðús   ‚ ž2c                óJ   — 	 t        t        | «      «      S # t        $ r Y yw xY w)r   F)Úboolr   ÚValidationError)r   s    r   Úis_validr    G   s)   € ðÜ”H˜VÓ$Ó%Ð%øÜò Ùðús   ‚ –	"¡"N)r   r   Úreturnr
   )r   r   r!   r   )r   r   r!   r   )Ú__doc__Ú
__future__r   Ústdnum.exceptionsr   r   r   r    © r   r   ú<module>r&      s&   ðñ(õ( #ä óó&óôr   