
    gi                     j    d dl Z d dlZd dlmZ d dlmZ d dlmZ ddlm	Z	m
Z
 dZ G d d	e	          ZdS )
    N)ascii_uppercase)Tuple)
SexLiteral   )BaseProviderElementsTypeTc                   f    e Zd ZU dZdZeed<   dej        fdZ	dde
deeef         fdZdefd	Zd
S )Providerz.Implement default Passport provider for Faker. passport_number_formatsreturnc                 8    | j                                         }|S )z"Generate a datetime date of birth.)	generatordate_of_birth)selfbirthdays     y/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/faker/providers/passport/__init__.pypassport_dobzProvider.passport_dob   s    >//11    Xgenderc                     |dk    r| j                             d          }n;|dk    r| j                             d          }n| j                             d          }| j                             d          }||fS )zGenerate a given_name and surname for a passport owner
        The ``gender`` argument is the gender marker of a passport owner, which is a one character string
        that is either male, female, or non-binary.
        Mz{{first_name_male}}Fz{{first_name_female}}z{{first_name_nonbinary}}z{{last_name}})r   parse)r   r   
given_namesurnames       r   passport_ownerzProvider.passport_owner   s|    
 S==--.CDDJJs]]--.EFFJJ--.HIIJ.&&777""r   c                      t          j        d fd                      j                            }                     |          S )zAGenerate a passport number by replacing tokens to be alphanumericz\?c                 8                         t                    S )N)random_elementr   )xr   s    r   <lambda>z*Provider.passport_number.<locals>.<lambda>,   s    d))/:: r   )resubr!   r   numerify)r   temps   ` r   passport_numberzProvider.passport_number(   sK    v:::: <==
 

 }}T"""r   N)r   )__name__
__module____qualname____doc__r   r   __annotations__datetimedater   r   r   strr   r(   r   r   r   r
   r
      s         88,.\...hm    
# #Z #%S/ # # # # # # # # # # #r   r
   )r.   r$   stringr   typingr   faker.typingr    r   r   	localizedr
   r   r   r   <module>r6      s     				 " " " " " "       # # # # # # ) ) ) ) ) ) ) )	!# !# !# !# !#| !# !# !# !# !#r   