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__/fi.cpython-311.pyc
�

�;f����dZddlmZddlZddlmZed���Zedefd���Zedefd	���Z	ed
d�dede
fd
���ZdS)zFinland.�)�	lru_cacheN)�	validatorc�*�tjd��S)zBusiness ID Pattern.z^[0-9]{7}-[0-9]$)�re�compile���E/opt/alt/python311/lib/python3.11/site-packages/validators/i18n/fi.py�_business_id_patternrs���:�)�*�*�*r	�ssn_check_marksc�h�tjd�|���tj��S)zSSN Pattern.z�^
        (?P<date>(0[1-9]|[1-2]\d|3[01])
        (0[1-9]|1[012])
        (\d{{2}}))
        [ABCDEFYXWVU+-]
        (?P<serial>(\d{{3}}))
        (?P<checksum>[{check_marks}])$)�check_marks)rr�format�VERBOSE)rs r
�_ssn_patternrs=���:�	*�+1�&�'�+1�+
�+
�	�
���r	�valuec�B�|sdStjt��|��sdSgd�}tt|dd���}t	|d��}td�t
||��D����dz}d|z
|kp||cxkodkncS)	a�Validate a Finnish Business ID.

    Each company in Finland has a distinct business id. For more
    information see [Finnish Trade Register][1]

    [1]: http://en.wikipedia.org/wiki/Finnish_Trade_Register

    Examples:
        >>> fi_business_id('0112038-9')  # Fast Monkeys Ltd
        # Output: True
        >>> fi_business_id('1234567-8')  # Bogus ID
        # Output: ValidationError(func=fi_business_id, ...)

    Args:
        value:
            Business ID string to be validated.

    Returns:
        (Literal[True]): If `value` is a valid finnish business id.
        (ValidationError): If `value` is an invalid finnish business id.
    F)��	�
����Nrrc3�&K�|]\}}||zV��
dS)Nr)�.0�f�ns   r
�	<genexpr>z!fi_business_id.<locals>.<genexpr>@s*����9�9�4�1�a��Q��9�9�9�9�9�9r	�r)r�matchr�map�int�sum�zip)r�factors�numbers�checksum�modulos     r
�fi_business_idr*"s���.���u�
�8�(�*�*�E�2�2���u�$�$�$�G��#�u�R�a�R�y�!�!�G��5��8�}�}�H�
�9�9�3�w��#8�#8�9�9�9�
9�
9�B�
>�F���K�8�#�A��8�)@�)@�)@�)@�q�)@�)@�)@�)@�Ar	T)�allow_temporal_ssnr+c�j�|sdSd}tjt|��|��x}sdS|���}t	|d|dz��}t	|d��dko<|pt	|d��dko!||t|��z|dkS)aValidate a Finnish Social Security Number.

    This validator is based on [django-localflavor-fi][1].

    [1]: https://github.com/django/django-localflavor-fi/

    Examples:
        >>> fi_ssn('010101-0101')
        # Output: True
        >>> fi_ssn('101010-0102')
        # Output: ValidationError(func=fi_ssn, args=...)

    Args:
        value:
            Social Security Number to be validated.
        allow_temporal_ssn:
            Whether to accept temporal SSN numbers. Temporal SSN numbers are the
            ones where the serial is in the range [900-999]. By default temporal
            SSN numbers are valid.

    Returns:
        (Literal[True]): If `value` is a valid finnish SSN.
        (ValidationError): If `value` is an invalid finnish SSN.
    F�0123456789ABCDEFHJKLMNPRSTUVWXY�date�serialri�r()rr!r�	groupdictr#�len)rr+r�result�gdr(s      r
�fi_ssnr4Ds���4���u�7�O��h�|�O�<�<�e�D�D�D�F���u�	�	�	�	�	�B��2�f�:��8��,�-�-�H��B�x�L���Q��	O�
�
;�3�r�(�|�#4�#4��#;�	O��H�s�?�';�';�;�<��:��N�r	)�__doc__�	functoolsrr�validators.utilsrr�strrr*�boolr4rr	r
�<module>r:s����� ������	�	�	�	�'�&�&�&�&�&��+�+���+�
�
�#�
�
�
���
� �B�#�B�B�B���B�B�8<�$�$�$�#�$��$�$�$���$�$�$r