/
opt
/
alt
/
python311
/
lib
/
python3.11
/
site-packages
/
validators
/
__pycache__
/
Upload File
HOME
� d�g� � � � d Z ddlZddlmZ edefd�� � Zedefd�� � Zedefd�� � Zedefd �� � Zedefd �� � Z edefd�� � Z edefd�� � Zedefd �� � ZdS )zCard.� N� )� validator�valuec � � | sdS t t t | � � � � }t |ddd� � � }t d� |ddd� D � � � � }||z dz dk S # t $ r Y dS w xY w)ai Return whether or not given value is a valid generic card number. This validator is based on [Luhn's algorithm][1]. [1]: https://github.com/mmcloughlin/luhn Examples: >>> card_number('4242424242424242') # Output: True >>> card_number('4242424242424241') # Output: ValidationError(func=card_number, args={'value': '4242424242424241'}) Args: value: Generic card number string to validate Returns: (Literal[True]): If `value` is a valid generic card number. (ValidationError): If `value` is an invalid generic card number. F���N���c 3 �V K � | ]$}t t d |z d� � � � V � �%dS )� � N)�sum�divmod)�.0�ds �B/opt/alt/python311/lib/python3.11/site-packages/validators/card.py� <genexpr>zcard_number.<locals>.<genexpr>% s8 � � � �F�F�!�s�6�!�a�%��,�,�-�-�F�F�F�F�F�F� r r )�list�map�intr � ValueError)r �digits�odd_sum�even_sums r �card_numberr s� � �, � ��u���c�#�u�o�o�&�&���f�R�V��V�n�%�%���F�F�v�b�f�"�f�~�F�F�F�F�F���(�"�b�(�A�-�-��� � � ��u�u����s �A'A. �. A<�;A<c � � t j d� � }t | � � o't | � � dk o|� | � � S )a� Return whether or not given value is a valid Visa card number. Examples: >>> visa('4242424242424242') # Output: True >>> visa('2223003122003222') # Output: ValidationError(func=visa, args={'value': '2223003122003222'}) Args: value: Visa card number string to validate Returns: (Literal[True]): If `value` is a valid Visa card number. (ValidationError): If `value` is an invalid Visa card number. z^4� ��re�compiler �len�match�r �patterns r �visar$ + sB � �$ �j����G��u���K�#�e�*�*��"2�K�w�}�}�U�7K�7K�Kr c � � t j d� � }t | � � o't | � � dk o|� | � � S )a Return whether or not given value is a valid Mastercard card number. Examples: >>> mastercard('5555555555554444') # Output: True >>> mastercard('4242424242424242') # Output: ValidationError(func=mastercard, args={'value': '4242424242424242'}) Args: value: Mastercard card number string to validate Returns: (Literal[True]): If `value` is a valid Mastercard card number. (ValidationError): If `value` is an invalid Mastercard card number. z#^(51|52|53|54|55|22|23|24|25|26|27)r r r"