Pular para o conteúdo principal

lookup_data.py — catálogos fictícios

Arquivo: persona_db/seeds/lookup_data.py

Inventário​

ConstanteTipoConteúdo
MALE_FIRST_NAMES, FEMALE_FIRST_NAMESlist[str]prenomes usados por gen_00_pessoa
SURNAMESlist[str]sobrenomes; personas recebem 1 ou 2 (78% recebem 2)
CIDADESlist[dict]municípios fictícios com UF, região e população
BAIRROSlist[dict]derivado de CIDADES por _build_bairros()
BANCOSlist[dict]instituições financeiras fictícias
EMPRESASlist[dict]empregadores com CNPJ fictício válido e setor
UNIVERSIDADESlist[dict]instituições de ensino superior
HOSPITAISlist[dict]rede hospitalar fictícia
PROFISSOESlist[dict]ocupações com setor e faixa salarial (_build_profissoes())
DOENCASlist[dict]catálogo clínico (_fill_doencas())
MEDICAMENTOSlist[dict]princípios ativos fictícios
CURSOSlist[dict]cursos de graduação e técnicos
RACAS_PETlist[dict]raças de cães, gatos e outros
PARTIDOSlist[dict]legendas fictícias para o domínio eleitoral
MIN_WAGE_HISTORYlist[dict]salário mínimo por ano
IPCA_MENSALlist[dict]série mensal de inflação (_build_ipca())

Séries econômicas​

MIN_WAGE_HISTORY é a referência usada por gen_05_carreira.min_wage_for_year(year) e pelo validador financeiro: nenhum salário registrado pode ficar abaixo do piso do ano de contratação. IPCA_MENSAL corrige valores monetários ao longo do tempo (faturas, aluguéis, preços de produtos).

from persona_db.seeds.lookup_data import MIN_WAGE_HISTORY
from persona_db.generators.gen_05_carreira import min_wage_for_year

min_wage_for_year(2015), min_wage_for_year(2024)

Geografia: CIDADES vs. GeographyEngine.CITY_SET​

Existem duas fontes de territórios fictícios:

FontePapel
seeds.lookup_data.CIDADES / BAIRROScatálogo tabular usado por geradores que precisam de endereços
engines.geography.CITY_SET / NEIGHBORHOODSterritório procedural (50 cidades, ~500 bairros) usado na alocação por classe e na migração

As duas são determinísticas; ao criar um domínio novo, prefira o motor geográfico quando a escolha depender de classe social e o catálogo quando for apenas um rótulo de endereço.

Empresas e CNPJ​

def _make_cnpj(seed_str: str) -> str: ...
def _valid_cnpj(digits14: str) -> bool: ...

Cada empresa fictícia tem CNPJ formalmente válido (dígitos verificadores corretos) derivado do nome — estável entre execuções e nunca correspondente a uma empresa real.

  1. Acrescente entradas ao final da lista (inserir no meio desloca índices e muda sorteios ponderados por posição).
  2. Mantenha as mesmas chaves dos dicionários existentes.
  3. Rode python3 -m pytest persona_db/tests -q — a suíte estatística detecta mudanças grosseiras de distribuição.
  4. Lembre-se de que qualquer alteração aqui muda os datasets gerados com a mesma semente.