HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python311/lib/python3.11/site-packages/validators/i18n/__pycache__/fr.cpython-311.pyc
�

�;fM���dZddlmZddlZddlZddlmZed���Zedeje	e
ffd���Zede	fd���ZdS)	zFrance.�)�	lru_cacheN)�	validatorc�@�tjdtj��S)zSSN Pattern.zW^([1,2])\s(\d{2})\s(0[1-9]|1[0-2])\s(\d{2,3}|2[A,B])\s(\d{2,3})\s(\d{3})(?:\s(\d{2}))?$)�re�compile�VERBOSE���E/opt/alt/python311/lib/python3.11/site-packages/validators/i18n/fr.py�_ssn_patternrs$���:�	�	�
�	�	�	r
�valuec���|sdSt|t��r(|dvrdS	t|��}n#t$rYdSwxYwd|cxkodkncpd|cxkodkncpd|cxkod	kncS)
a)Validate a french department number.

    Examples:
        >>> fr_department(20)  # can be an integer
        # Output: True
        >>> fr_department("20")
        # Output: True
        >>> fr_department("971")  # Guadeloupe
        # Output: True
        >>> fr_department("00")
        # Output: ValidationError(func=fr_department, args=...)
        >>> fr_department('2A')  # Corsica
        # Output: True
        >>> fr_department('2B')
        # Output: True
        >>> fr_department('2C')
        # Output: ValidationError(func=fr_department, args=...)

    Args:
        value:
            French department number to validate.

    Returns:
        (Literal[True]): If `value` is a valid french department number.
        (ValidationError): If `value` is an invalid french department number.
    F��2A�2BT����_i�i�)�
isinstance�str�int�
ValueError)r
s r�
fr_departmentrs���8���u��%������L� � ��4�	���J�J�E�E���	�	�	��5�5�	���������������G�r�U�0�0�0�0�b�0�0�0�0�G�C�5�4G�4G�4G�4G�C�4G�4G�4G�4G�Gs�1�
?�?c���|sdStjt��|��}|sdSt|�����}|d}|d}|dkrt|��sdS|�dSt
|��t
|d��krdS|dvr
|d	krd
nd|d<td�|dd�����}t|��d
|d
zz
kS)a�Validate a french Social Security Number.

    Each french citizen has a distinct Social Security Number.
    For more information see [French Social Security Number][1] (sadly unavailable in english).

    [1]: https://fr.wikipedia.org/wiki/Num%C3%A9ro_de_s%C3%A9curit%C3%A9_sociale_en_France

    Examples:
        >>> fr_ssn('1 84 12 76 451 089 46')
        # Output: True
        >>> fr_ssn('1 84 12 76 451 089')  # control key is optional
        # Output: True
        >>> fr_ssn('3 84 12 76 451 089 46')  # wrong gender number
        # Output: ValidationError(func=fr_ssn, args=...)
        >>> fr_ssn('1 84 12 76 451 089 47')  # wrong control key
        # Output: ValidationError(func=fr_ssn, args=...)

    Args:
        value:
            French Social Security Number string to validate.

    Returns:
        (Literal[True]): If `value` is a valid french Social Security Number.
        (ValidationError): If `value` is an invalid french Social Security Number.
    F�����99NT�rr�19�18��a)	r�matchr�list�groupsr�lenr�join)r
�matchedr&�control_key�
department�digitss      r�fr_ssnr-Cs��6���u��h�|�~�~�u�-�-�G����u�
�'�.�.�"�"�
#�
#�F���*�K����J��T���-�
�";�";���u����t�
�:���#�f�Q�i�.�.�(�(��u��\�!�!�'�$�.�.�D�D�D��q�	�
���������%�%�
&�
&�F��{����f�r�k� 2�3�3r
)
�__doc__�	functoolsrr�typing�validators.utilsrr�Unionrrrr-r	r
r�<module>r3s���
�
� ������	�	�	�	�
�
�
�
�'�&�&�&�&�&��������$H���c�3�h�/�$H�$H�$H���$H�N�34�#�34�34�34���34�34�34r