Пользовательские данные¶
В этом разделе описаны встроенные паттерны для генерации пользовательских данных.
UserRuPatterns¶
Паттерны для пользователей из РФ (ФИО, телефон, документы, банковские данные).
ФИО¶
first_name = r"^[А-ЯЁ][а-яё]{4,9}$"
last_name = r"^[А-ЯЁ][а-яё]{4,12}$"
middle_name = r"^[А-ЯЁ][а-яё]{4,12}$"
Контакты¶
Документы¶
passport_ru = r"^\d{4} \d{6}$"
snils = r"^\d{3}-\d{3}-\d{3} \d{2}$"
inn_individual = r"^\d{12}$"
inn_legal_entity = r"^\d{10}$"
ogrn = r"^\d{13,15}$"
bik = r"^04\d{7}$"
kpp = r"^\d{9}$"
account_number = r"^\d{20}$"
car_plate_ru = r"^[АВЕКМНОРСТУХ]\d{3}[АВЕКМНОРСТУХ]{2}\d{2,3}$"
Финансы¶
UserEnPatterns¶
Паттерны для англоязычных пользователей (США: SSN, Zip-code, ITIN).
ФИО¶
first_name = r"^[A-Z][a-z]{4,9}$"
last_name = r"^[A-Z][a-z]{4,12}$"
middle_name = r"^[A-Z][a-z]{4,12}$"
Контакты¶
Документы¶
ssn = r"^\d{3}-\d{2}-\d{4}$"
zip_code = r"^\d{5}$"
zip_code_ext = r"^\d{5}-\d{4}$"
itin = r"^9\d{2}-\d{2}-\d{4}$"
passport_us = r"^[A-Z0-9]{9}$"
state_code = r"^[A-Z]{2}$"
iban = r"^[A-Z]{2}\d{2}[A-Z0-9]{14,30}$"
swift = r"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"
Финансы¶
Общие паттерны¶
Общие паттерны для пользователей (email, пароли, крипто-адреса).
email = r"^[a-z0-9._%+-]{5,20}@(gmail\.com|mail\.ru)$"
password_lat = r"^[A-Za-z0-9@$!%*?&]{8,15}$"
password_cyr = r"^[А-Яа-я0-9@$!%*?&]{8,15}$"
social_username = r"^@[A-Za-z0-9_]{5,32}$"
btc_address = r"^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$"
btc_address_segwit = r"^bc1[a-z0-9]{25,39}$"
Пример использования¶
```python from fucktar.generator import BasePattern from fucktar.config import PatternConfig from fucktar.default_patterns.users import UserRuPatterns
class UserPatterns(BasePattern[User]): first_name = UserRuPatterns.first_name last_name = UserRuPatterns.last_name email = UserRuPatterns.email phone = UserRuPatterns.phone passport = UserRuPatterns.passport_ru card_number = UserRuPatterns.card_number
pattern_config = PatternConfig(
scope="users",
unique_fields=["email", "passport"]
)