Ë
    Ã?Æi
  ã                  óv   — d Z ddlmZ ddlZddl­ ddlmZ  ej                  d«      Zdd„Z	dd„Z
dd	„Zdd
„Zy)aê  EC Number (European Community number).

The EC Number is a unique seven-digit number assigned to chemical substances
for regulatory purposes within the European Union by the European Commission.

More information:

* https://en.wikipedia.org/wiki/European_Community_number

>>> validate('200-001-8')
'200-001-8'
>>> validate('200-001-9')
Traceback (most recent call last):
    ...
InvalidChecksum: ...
>>> validate('20-0001-8')
Traceback (most recent call last):
    ...
InvalidFormat: ...
é    )ÚannotationsN)Ú*)Úcleanz^[0-9]{3}-[0-9]{3}-[0-9]$c                ó|   — t        | d«      j                  «       } d| vrdj                  | dd | dd | dd f«      } | S )z1Convert the number to the minimal representation.ú ú-Né   é   )r   ÚstripÚjoin©Únumbers    úY/var/www/html/myprovider/mon_projet_qr/lib/python3.12/site-packages/stdnum/eu/ecnumber.pyÚcompactr   4   sK   € ä�6˜3Ó×%Ñ%Ó'€FØ
�&ÑØ—‘˜6 " 1˜: v¨a° {°F¸1¸2°JÐ?Ó@ˆØ€Mó    c                óŒ   — t        | «      j                  dd«      } t        t        d„ t	        | «      D «       «      dz  «      d   S )ziCalculate the check digit for the number. The passed number should not
    have the check digit included.r   Ú c              3  óD   K  — | ]  \  }}|d z   t        |«      z  –— Œ y­w)é   N)Úint)Ú.0ÚiÚns      r   ú	<genexpr>z#calc_check_digit.<locals>.<genexpr>A   s!   è ø€ Ò;¡  AˆQ�‰U”c˜!“fÕÑ;ùs   ‚ é   r   )r   ÚreplaceÚstrÚsumÚ	enumerater   s    r   Úcalc_check_digitr    <   sJ   € ô �V‹_×$Ñ$ S¨"Ó-€FÜÜÑ;¬°6Ó):Ô;Ó;¸bÑ@óBØBCñEð Er   c                óÆ   — t        | «      } t        | «      dk(  s
t        «       ‚t        j	                  | «      s
t        «       ‚| d   t        | dd «      k7  r
t        «       ‚| S )ú2Check if the number provided is a valid EC Number.é	   éÿÿÿÿN)r   ÚlenÚInvalidLengthÚ_ec_number_reÚmatchÚInvalidFormatr    ÚInvalidChecksumr   s    r   Úvalidater+   D   s[   € ä�V‹_€FÜˆv‹;˜!ÒÜ‹oÐÜ×Ñ˜vÔ&Ü‹oÐØˆb�zÔ% f¨S¨b kÓ2Ò2ÜÓÐØ€Mr   c                óJ   — 	 t        t        | «      «      S # t        $ r Y yw xY w)r"   F)Úboolr+   ÚValidationErrorr   s    r   Úis_validr/   P   s)   € ðÜ”H˜VÓ$Ó%Ð%øÜò Ùðús   ‚ –	"¡")r   r   Úreturnr   )r   r   r0   r-   )Ú__doc__Ú
__future__r   ÚreÚstdnum.exceptionsÚstdnum.utilr   Úcompiler'   r   r    r+   r/   © r   r   ú<module>r8      s@   ðñ(õ* #ã 	ä Ý ð �—
‘
Ð7Ó8€óóEó	ôr   