Ë
    Ã?ÆiC  ã                  óŠ   — d Z ddlmZ ddlmZ ddl­ g d¢Zej                  Zej                  Zdd„Z	dd„Z
dd„Zdd	„Zdd
„Zy)a|  Belgian IBAN (International Bank Account Number).

The IBAN is used to identify bank accounts across national borders. The
Belgian IBAN is built up of the IBAN prefix (BE) and check digits, followed
by a 3 digit bank identifier, a 7 digit account number and 2 more check
digits.

* https://www.nbb.be/en/payment-systems/payment-standards/bank-identification-codes

>>> validate('BE32 123-4567890-02')
'BE32123456789002'
>>> validate('BE41091811735141')  # incorrect national check digits
Traceback (most recent call last):
    ...
InvalidChecksum: ...
>>> validate('BE83138811735115')  # unknown bank code
Traceback (most recent call last):
    ...
InvalidComponent: ...
>>> validate('GR1601101050000010547023795')  # not a Belgian IBAN
Traceback (most recent call last):
    ...
InvalidComponent: ...
>>> to_bic('BE 48 3200 7018 4927')
'BBRUBEBB'
>>> to_bic('BE83138811735115') is None
True
é    )Úannotations)Úiban)Ú*)ÚcompactÚformatÚvalidateÚis_validc                ó0   — t        | «      dz  }d|xs dz  S )z@Calculate the check digits over the provided part of the number.éa   z%02d)Úint)ÚnumberÚchecks     úU/var/www/html/myprovider/mon_projet_qr/lib/python3.12/site-packages/stdnum/be/iban.pyÚ_calc_check_digitsr   ?   s   € ä�‹K˜"Ñ€EØ�U’[˜bÑ!Ð!ó    c                óv   — t        | «      } ddlm} |j                  d«      j	                  | dd «      d   d   S )z€Return a dictionary of data about the supplied number. This typically
    returns the name of the bank and a BIC if it is valid.r   )Únumdbzbe/banksé   é   é   )r   Ústdnumr   ÚgetÚinfo)r   r   s     r   r   r   E   s:   € ô �V‹_€FÝØ�9‰9�ZÓ ×%Ñ% f¨Q¨q kÓ2°1Ñ5°aÑ8Ð8r   c                ó6   — t        | «      j                  d«      S )z7Return the BIC for the bank that this number refers to.Úbic)r   r   ©r   s    r   Úto_bicr   M   s   € ä�‹<×Ñ˜EÓ"Ð"r   c                óÐ   — t        j                  | d¬«      } | j                  d«      s
t        «       ‚| dd t	        | dd «      k7  r
t        «       ‚t        | «      s
t        «       ‚| S )ú5Check if the number provided is a valid Belgian IBAN.F)Úcheck_countryÚBEéþÿÿÿNr   )r   r   Ú
startswithÚInvalidComponentr   ÚInvalidChecksumr   r   s    r   r   r   R   sa   € ä�]‰]˜6°Ô7€FØ×Ñ˜TÔ"ÜÓ Ð Øˆbˆc€{Ô(¨°°"¨Ó6Ò6ÜÓÐÜ�Œ<ÜÓ Ð Ø€Mr   c                óJ   — 	 t        t        | «      «      S # t        $ r Y yw xY w)r   F)Úboolr   ÚValidationErrorr   s    r   r	   r	   ^   s)   € ðÜ”H˜VÓ$Ó%Ð%øÜò Ùðús   ‚ –	"¡"N)r   ÚstrÚreturnr)   )r   r)   r*   zdict[str, str])r   r)   r*   z
str | None)r   r)   r*   r'   )Ú__doc__Ú
__future__r   r   r   Ústdnum.exceptionsÚ__all__r   r   r   r   r   r   r	   © r   r   ú<module>r0      sI   ðñ*õ: #å Ü ò 8€ð �,‰,€Ø	�‰€ó"ó9ó#ó
	ôr   