File: //usr/local/CyberCP/lib/python3.10/site-packages/validators/i18n/__pycache__/fi.cpython-310.pyc
o
�h� � @ st d Z ddlmZ ddlZddlmZ edd� �Zedefdd ��Zed
efdd��Z ed
d�d
ede
fdd��ZdS )zFinland.� )� lru_cacheN)� validatorc C s
t �d�S )zBusiness ID Pattern.z^[0-9]{7}-[0-9]$)�re�compile� r r �E/usr/local/CyberCP/lib/python3.10/site-packages/validators/i18n/fi.py�_business_id_pattern s
r �ssn_check_marksc C s t �dj| d�t j�S )zSSN 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)r r �format�VERBOSE)r r r r �_ssn_pattern s � �r
�valuec C s� | sdS t �t� | �s
dS g d�}tt| dd� �}t| d �}tdd� t||�D ��d }d| |kp?|| ko=d kS S )
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)� � �
� � � � Nr r c s s � | ] \}}|| V qd S )Nr )�.0�f�nr r r � <genexpr>@ s � z!fi_business_id.<locals>.<genexpr>� r )r �matchr �map�int�sum�zip)r �factors�numbers�checksum�modulor r r �fi_business_id"