Browse Source

Remove field mappings and add annotations check

pull/6/head
Marcio Mazza 10 years ago
parent
commit
f7708eb085
  1. 74
      legacy/scripts/bootstrap_field_mappings.py
  2. 646
      legacy/scripts/field_mappings.yaml

74
legacy/scripts/bootstrap_field_mappings.py

@ -1,44 +1,16 @@
from inspect import getsourcelines
from collections import defaultdict from collections import defaultdict
from difflib import SequenceMatcher from difflib import SequenceMatcher
from os.path import dirname from inspect import getsourcelines
import yaml
from migration_base import * from migration_base import *
def print_field_mappings(): def is_field_line(line):
# output to bootstrap field_mappings.yaml return not line.strip().startswith('#') and ' = ' in line
for app in appconfs:
print '\n%s\n%s:' % ('#' * 80, app.name)
for model in app.models.values():
print '\n %s:' % model.__name__
new_fields = [f.name for f in model._meta.fields]
legacy_fields = [f.name for f in legacy_app.get_model(
model.__name__)._meta.fields if f.name != 'ind_excluido']
for pair in zip(new_fields, legacy_fields):
print ' %s : %s' % pair
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()
mappings = yaml.load(open(dirname(__file__) + '/field_mappings.yaml', 'r'))
different_pairs = defaultdict(list)
for map in mappings.values():
for name, fields in map.items():
for a, b in fields.items():
if a != 'id' and similar(a, b) < .7:
different_pairs[name].append((a, b))
if different_pairs: def get_field(line):
print '\n\n######## Different Pairs #########' return line.split('=')[0].strip()
for name, pairs in different_pairs.items():
print '#', name
for a, b in pairs:
print '# ', a, b
def print_commented_source(model): def print_commented_source(model):
@ -46,15 +18,35 @@ def print_commented_source(model):
legacy_fields = [f.name for f in legacy_app.get_model(model.__name__)._meta.fields if f.name != 'ind_excluido'] legacy_fields = [f.name for f in legacy_app.get_model(model.__name__)._meta.fields if f.name != 'ind_excluido']
new_to_old = dict(zip(new_fields, legacy_fields)) new_to_old = dict(zip(new_fields, legacy_fields))
lines = getsourcelines(model)[0] lines = getsourcelines(model)[0]
cols = max(map(len, [line for line in lines if is_field_line(line)]))
def is_field(line):
return not line.strip().startswith('#') and ' = ' in line
cols = max(map(len, [line for line in lines if is_field(line)]))
print '\n' print '\n'
for line in lines: for line in lines:
if not is_field(line): if not is_field_line(line):
print line.rstrip() print line.rstrip()
else: else:
field = line.split('=')[0].strip() print '%s # %s' % (line.rstrip().ljust(cols), new_to_old[get_field(line)])
print '%s # %s' % (line.rstrip().ljust(cols), new_to_old[field]) return new_to_old
def check_similarity():
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()
different_pairs = defaultdict(list)
for app in appconfs:
for model in app.models.values():
lines = getsourcelines(model)[0]
for line in lines:
if is_field_line(line):
new = get_field(line)
old = line.split('#')[-1].strip()
if similar(new, old) < .7:
different_pairs['%s (%s)' % (model.__name__, app.name)].append((new, old))
if different_pairs:
print '\n\n######## Different Pairs #########'
for name, pairs in different_pairs.items():
print name
for a, b in pairs:
print ' ', a, b

646
legacy/scripts/field_mappings.yaml

@ -1,646 +0,0 @@
################################################################################
# MAPPINGS OF NEW FIELDS TO LEGACY ONES
################################################################################
parlamentares:
Legislatura:
id : num_legislatura
data_inicio : dat_inicio
data_fim : dat_fim
data_eleicao : dat_eleicao
SessaoLegislativa:
id : cod_sessao_leg
legislatura : num_legislatura
numero : num_sessao_leg
tipo : tip_sessao_leg
data_inicio : dat_inicio
data_fim : dat_fim
data_inicio_intervalo : dat_inicio_intervalo
data_fim_intervalo : dat_fim_intervalo
Coligacao:
id : cod_coligacao
legislatura : num_legislatura
nome_coligacao : nom_coligacao
numero_votos_coligacao : num_votos_coligacao
Partido:
id : cod_partido
sigla_partido : sgl_partido
nome_partido : nom_partido
data_criacao : dat_criacao
data_extincao : dat_extincao
ComposicaoColigacao:
id : id
partido : cod_partido
coligacao : cod_coligacao
Localidade:
id : cod_localidade
nome_localidade : nom_localidade
nome_localidade_pesq : nom_localidade_pesq
tipo_localidade : tip_localidade
sigla_uf : sgl_uf
sigla_regiao : sgl_regiao
NivelInstrucao:
id : cod_nivel_instrucao
nivel_instrucao : des_nivel_instrucao
SituacaoMilitar:
id : tip_situacao_militar
descricao_tipo_situacao : des_tipo_situacao
Parlamentar:
id : cod_parlamentar
nivel_instrucao : cod_nivel_instrucao
situacao_militar : tip_situacao_militar
nome_completo : nom_completo
nome_parlamentar : nom_parlamentar
sexo : sex_parlamentar
data_nascimento : dat_nascimento
numero_cpf : num_cpf
numero_rg : num_rg
numero_tit_eleitor : num_tit_eleitor
cod_casa : cod_casa
numero_gab_parlamentar : num_gab_parlamentar
numero_tel_parlamentar : num_tel_parlamentar
numero_fax_parlamentar : num_fax_parlamentar
endereco_residencial : end_residencial
localidade_resid : cod_localidade_resid
numero_cep_resid : num_cep_resid
numero_tel_resid : num_tel_resid
numero_fax_resid : num_fax_resid
endereco_web : end_web
nome_profissao : nom_profissao
endereco_email : end_email
descricao_local_atuacao : des_local_atuacao
ativo : ind_ativo
txt_biografia : txt_biografia
unid_deliberativa : ind_unid_deliberativa
TipoDependente:
id : tip_dependente
descricao_tipo_dependente : des_tipo_dependente
Dependente:
id : cod_dependente
tipo_dependente : tip_dependente
parlamentar : cod_parlamentar
nome_dependente : nom_dependente
sexo : sex_dependente
data_nascimento : dat_nascimento
numero_cpf : num_cpf
numero_rg : num_rg
numero_tit_eleitor : num_tit_eleitor
Filiacao:
id : id
data_filiacao : dat_filiacao
parlamentar : cod_parlamentar
partido : cod_partido
data_desfiliacao : dat_desfiliacao
TipoAfastamento:
id : tip_afastamento
descricao_afastamento : des_afastamento
afastamento : ind_afastamento
fim_mandato : ind_fim_mandato
descricao_dispositivo : des_dispositivo
Mandato:
id : cod_mandato
parlamentar : cod_parlamentar
tipo_afastamento : tip_afastamento
legislatura : num_legislatura
coligacao : cod_coligacao
tipo_causa_fim_mandato : tip_causa_fim_mandato
data_fim_mandato : dat_fim_mandato
numero_votos_recebidos : num_votos_recebidos
data_expedicao_diploma : dat_expedicao_diploma
txt_observacao : txt_observacao
CargoMesa:
id : cod_cargo
nome : des_cargo
unico : ind_unico
ComposicaoMesa:
id : id
parlamentar : cod_parlamentar
sessao_legislativa : cod_sessao_leg
cargo : cod_cargo
################################################################################
comissoes:
TipoComissao:
id : tip_comissao
nome_tipo_comissao : nom_tipo_comissao
sigla_natureza_comissao : sgl_natureza_comissao
sigla_tipo_comissao : sgl_tipo_comissao
descricao_dispositivo_regimental : des_dispositivo_regimental
Comissao:
id : cod_comissao
tipo_comissao : tip_comissao
nome_comissao : nom_comissao
sigla_comissao : sgl_comissao
data_criacao : dat_criacao
data_extincao : dat_extincao
nome_apelido_temp : nom_apelido_temp
data_instalacao_temp : dat_instalacao_temp
data_final_prevista_temp : dat_final_prevista_temp
data_prorrogada_temp : dat_prorrogada_temp
data_fim_comissao : dat_fim_comissao
nome_secretario : nom_secretario
numero_tel_reuniao : num_tel_reuniao
endereco_secretaria : end_secretaria
numero_tel_secretaria : num_tel_secretaria
numero_fax_secretaria : num_fax_secretaria
descricao_agenda_reuniao : des_agenda_reuniao
local_reuniao : loc_reuniao
txt_finalidade : txt_finalidade
endereco_email : end_email
unid_deliberativa : ind_unid_deliberativa
PeriodoCompComissao:
id : cod_periodo_comp
data_inicio_periodo : dat_inicio_periodo
data_fim_periodo : dat_fim_periodo
CargoComissao:
id : cod_cargo
nome : des_cargo
unico : ind_unico
ComposicaoComissao:
id : cod_comp_comissao
parlamentar : cod_parlamentar
comissao : cod_comissao
periodo_comp : cod_periodo_comp
cargo : cod_cargo
titular : ind_titular
data_designacao : dat_designacao
data_desligamento : dat_desligamento
descricao_motivo_desligamento : des_motivo_desligamento
obs_composicao : obs_composicao
################################################################################
sessao:
TipoSessaoPlenaria:
id : tip_sessao
nome_sessao : nom_sessao
numero_minimo : num_minimo
SessaoPlenaria:
id : cod_sessao_plen
cod_andamento_sessao : cod_andamento_sessao
tipo : tip_sessao
sessao_leg : cod_sessao_leg
legislatura : num_legislatura
tipo_expediente : tip_expediente
data_inicio_sessao : dat_inicio_sessao
dia_sessao : dia_sessao
hr_inicio_sessao : hr_inicio_sessao
hr_fim_sessao : hr_fim_sessao
numero_sessao_plen : num_sessao_plen
data_fim_sessao : dat_fim_sessao
url_audio : url_audio
url_video : url_video
ExpedienteMateria:
id : cod_ordem
sessao_plen : cod_sessao_plen
materia : cod_materia
data_ordem : dat_ordem
txt_observacao : txt_observacao
numero_ordem : num_ordem
txt_resultado : txt_resultado
tipo_votacao : tip_votacao
TipoExpediente:
id : cod_expediente
nome_expediente : nom_expediente
ExpedienteSessaoPlenaria:
id : id
sessao_plen : cod_sessao_plen
expediente : cod_expediente
txt_expediente : txt_expediente
MesaSessaoPlenaria:
id : id
cargo : cod_cargo
sessao_leg : cod_sessao_leg
parlamentar : cod_parlamentar
sessao_plen : cod_sessao_plen
Oradores:
id : id
sessao_plen : cod_sessao_plen
parlamentar : cod_parlamentar
numero_ordem : num_ordem
url_discurso : url_discurso
OradoresExpediente:
id : id
sessao_plen : cod_sessao_plen
parlamentar : cod_parlamentar
numero_ordem : num_ordem
url_discurso : url_discurso
OrdemDia:
id : cod_ordem
sessao_plen : cod_sessao_plen
materia : cod_materia
data_ordem : dat_ordem
txt_observacao : txt_observacao
numero_ordem : num_ordem
txt_resultado : txt_resultado
tipo_votacao : tip_votacao
OrdemDiaPresenca:
id : cod_presenca_ordem_dia
sessao_plen : cod_sessao_plen
parlamentar : cod_parlamentar
data_ordem : dat_ordem
TipoResultadoVotacao:
id : tip_resultado_votacao
nome_resultado : nom_resultado
RegistroVotacao:
id : cod_votacao
tipo_resultado_votacao : tip_resultado_votacao
materia : cod_materia
ordem : cod_ordem
numero_votos_sim : num_votos_sim
numero_votos_nao : num_votos_nao
numero_abstencao : num_abstencao
txt_observacao : txt_observacao
RegistroVotacaoParlamentar:
id : id
votacao : cod_votacao
parlamentar : cod_parlamentar
vot_parlamentar : vot_parlamentar
SessaoPlenariaPresenca:
id : cod_presenca_sessao
sessao_plen : cod_sessao_plen
parlamentar : cod_parlamentar
data_sessao : dat_sessao
################################################################################
materia:
TipoMateriaLegislativa:
id : tip_materia
sigla_tipo_materia : sgl_tipo_materia
descricao_tipo_materia : des_tipo_materia
num_automatica : ind_num_automatica
quorum_minimo_votacao : quorum_minimo_votacao
RegimeTramitacao:
id : cod_regime_tramitacao
descricao_regime_tramitacao : des_regime_tramitacao
Origem:
id : cod_origem
sigla_origem : sgl_origem
nome_origem : nom_origem
MateriaLegislativa:
id : cod_materia
tipo_id_basica : tip_id_basica
numero_protocolo : num_protocolo
numero_ident_basica : num_ident_basica
ano_ident_basica : ano_ident_basica
data_apresentacao : dat_apresentacao
tipo_apresentacao : tip_apresentacao
regime_tramitacao : cod_regime_tramitacao
data_publicacao : dat_publicacao
tipo_origem_externa : tip_origem_externa
numero_origem_externa : num_origem_externa
ano_origem_externa : ano_origem_externa
data_origem_externa : dat_origem_externa
local_origem_externa : cod_local_origem_externa
nome_apelido : nom_apelido
numero_dias_prazo : num_dias_prazo
data_fim_prazo : dat_fim_prazo
indicador_tramitacao : ind_tramitacao
polemica : ind_polemica
descricao_objeto : des_objeto
complementar : ind_complementar
txt_ementa : txt_ementa
txt_indexacao : txt_indexacao
txt_observacao : txt_observacao
txt_resultado : txt_resultado
AcompMateria:
id : cod_cadastro
materia : cod_materia
endereco_email : end_email
txt_hash : txt_hash
Anexada:
id : id
materia_principal : cod_materia_principal
materia_anexada : cod_materia_anexada
data_anexacao : dat_anexacao
data_desanexacao : dat_desanexacao
AssuntoMateria:
id : cod_assunto
descricao_assunto : des_assunto
descricao_dispositivo : des_dispositivo
TipoAutor:
id : tip_autor
descricao_tipo_autor : des_tipo_autor
Autor:
id : cod_autor
partido : cod_partido
comissao : cod_comissao
parlamentar : cod_parlamentar
tipo : tip_autor
nome_autor : nom_autor
descricao_cargo : des_cargo
col_username : col_username
Autoria:
id : id
autor : cod_autor
materia : cod_materia
primeiro_autor : ind_primeiro_autor
DespachoInicial:
id : id
materia : cod_materia
numero_ordem : num_ordem
comissao : cod_comissao
TipoDocumento:
id : tip_documento
descricao_tipo_documento : des_tipo_documento
DocumentoAcessorio:
id : cod_documento
materia : cod_materia
tipo : tip_documento
nome_documento : nom_documento
data_documento : dat_documento
nome_autor_documento : nom_autor_documento
txt_ementa : txt_ementa
txt_indexacao : txt_indexacao
MateriaAssunto:
id : id
assunto : cod_assunto
materia : cod_materia
Numeracao:
id : id
materia : cod_materia
numero_ordem : num_ordem
tipo_materia : tip_materia
numero_materia : num_materia
ano_materia : ano_materia
data_materia : dat_materia
Orgao:
id : cod_orgao
nome_orgao : nom_orgao
sigla_orgao : sgl_orgao
unid_deliberativa : ind_unid_deliberativa
endereco_orgao : end_orgao
numero_tel_orgao : num_tel_orgao
TipoFimRelatoria:
id : tip_fim_relatoria
descricao_fim_relatoria : des_fim_relatoria
Relatoria:
id : cod_relatoria
materia : cod_materia
parlamentar : cod_parlamentar
tipo_fim_relatoria : tip_fim_relatoria
comissao : cod_comissao
data_desig_relator : dat_desig_relator
data_destit_relator : dat_destit_relator
Parecer:
id : id
relatoria : cod_relatoria
materia : cod_materia
tipo_conclusao : tip_conclusao
tipo_apresentacao : tip_apresentacao
txt_parecer : txt_parecer
TipoProposicao:
id : tip_proposicao
descricao_tipo_proposicao : des_tipo_proposicao
mat_ou_doc : ind_mat_ou_doc
tipo_mat_ou_doc : tip_mat_ou_doc
nome_modelo : nom_modelo
Proposicao:
id : cod_proposicao
materia : cod_materia
autor : cod_autor
tipo : tip_proposicao
data_envio : dat_envio
data_recebimento : dat_recebimento
txt_descricao : txt_descricao
cod_mat_ou_doc : cod_mat_ou_doc
data_devolucao : dat_devolucao
txt_justif_devolucao : txt_justif_devolucao
numero_proposicao : num_proposicao
StatusTramitacao:
id : cod_status
sigla_status : sgl_status
descricao_status : des_status
fim_tramitacao : ind_fim_tramitacao
retorno_tramitacao : ind_retorno_tramitacao
UnidadeTramitacao:
id : cod_unid_tramitacao
comissao : cod_comissao
orgao : cod_orgao
parlamentar : cod_parlamentar
Tramitacao:
id : cod_tramitacao
status : cod_status
materia : cod_materia
data_tramitacao : dat_tramitacao
unid_tram_local : cod_unid_tram_local
data_encaminha : dat_encaminha
unid_tram_dest : cod_unid_tram_dest
ult_tramitacao : ind_ult_tramitacao
urgencia : ind_urgencia
sigla_turno : sgl_turno
txt_tramitacao : txt_tramitacao
data_fim_prazo : dat_fim_prazo
################################################################################
norma:
AssuntoNorma:
id : cod_assunto
descricao_assunto : des_assunto
descricao_estendida : des_estendida
TipoNormaJuridica:
id : tip_norma
voc_lexml : voc_lexml
sigla_tipo_norma : sgl_tipo_norma
descricao_tipo_norma : des_tipo_norma
NormaJuridica:
id : cod_norma
tipo : tip_norma
materia : cod_materia
numero_norma : num_norma
ano_norma : ano_norma
tipo_esfera_federacao : tip_esfera_federacao
data_norma : dat_norma
data_publicacao : dat_publicacao
descricao_veiculo_publicacao : des_veiculo_publicacao
numero_pag_inicio_publ : num_pag_inicio_publ
numero_pag_fim_publ : num_pag_fim_publ
txt_ementa : txt_ementa
txt_indexacao : txt_indexacao
txt_observacao : txt_observacao
complemento : ind_complemento
assunto : cod_assunto
data_vigencia : dat_vigencia
timestamp : timestamp
LegislacaoCitada:
id : id
materia : cod_materia
norma : cod_norma
descricao_disposicoes : des_disposicoes
descricao_parte : des_parte
descricao_livro : des_livro
descricao_titulo : des_titulo
descricao_capitulo : des_capitulo
descricao_secao : des_secao
descricao_subsecao : des_subsecao
descricao_artigo : des_artigo
descricao_paragrafo : des_paragrafo
descricao_inciso : des_inciso
descricao_alinea : des_alinea
descricao_item : des_item
VinculoNormaJuridica:
id : cod_vinculo
norma_referente : cod_norma_referente
norma_referida : cod_norma_referida
tipo_vinculo : tip_vinculo
################################################################################
lexml:
LexmlRegistroProvedor:
id : cod_provedor
id_provedor : id_provedor
nome_provedor : nom_provedor
sigla_provedor : sgl_provedor
adm_email : adm_email
nome_responsavel : nom_responsavel
tipo : tipo
id_responsavel : id_responsavel
xml_provedor : xml_provedor
LexmlRegistroPublicador:
id : cod_publicador
id_publicador : id_publicador
nome_publicador : nom_publicador
adm_email : adm_email
sigla : sigla
nome_responsavel : nom_responsavel
tipo : tipo
id_responsavel : id_responsavel
################################################################################
protocoloadm:
TipoDocumentoAdministrativo:
id : tip_documento
sigla_tipo_documento : sgl_tipo_documento
descricao_tipo_documento : des_tipo_documento
DocumentoAdministrativo:
id : cod_documento
tipo : tip_documento
numero_documento : num_documento
ano_documento : ano_documento
data_documento : dat_documento
numero_protocolo : num_protocolo
txt_interessado : txt_interessado
autor : cod_autor
numero_dias_prazo : num_dias_prazo
data_fim_prazo : dat_fim_prazo
tramitacao : ind_tramitacao
txt_assunto : txt_assunto
txt_observacao : txt_observacao
DocumentoAcessorioAdministrativo:
id : cod_documento_acessorio
documento : cod_documento
tipo : tip_documento
nome_documento : nom_documento
nome_arquivo : nom_arquivo
data_documento : dat_documento
nome_autor_documento : nom_autor_documento
txt_assunto : txt_assunto
txt_indexacao : txt_indexacao
Protocolo:
id : cod_protocolo
numero_protocolo : num_protocolo
ano_protocolo : ano_protocolo
data_protocolo : dat_protocolo
hora_protocolo : hor_protocolo
data_timestamp : dat_timestamp
tipo_protocolo : tip_protocolo
tipo_processo : tip_processo
txt_interessado : txt_interessado
autor : cod_autor
txt_assunto_ementa : txt_assunto_ementa
tipo_documento : tip_documento
tipo_materia : tip_materia
numero_paginas : num_paginas
txt_observacao : txt_observacao
anulado : ind_anulado
txt_user_anulacao : txt_user_anulacao
txt_ip_anulacao : txt_ip_anulacao
txt_just_anulacao : txt_just_anulacao
timestamp_anulacao : timestamp_anulacao
StatusTramitacaoAdministrativo:
id : cod_status
sigla_status : sgl_status
descricao_status : des_status
fim_tramitacao : ind_fim_tramitacao
retorno_tramitacao : ind_retorno_tramitacao
TramitacaoAdministrativo:
id : cod_tramitacao
documento : cod_documento
data_tramitacao : dat_tramitacao
cod_unid_tram_local : cod_unid_tram_local
data_encaminha : dat_encaminha
cod_unid_tram_dest : cod_unid_tram_dest
status : cod_status
ult_tramitacao : ind_ult_tramitacao
txt_tramitacao : txt_tramitacao
data_fim_prazo : dat_fim_prazo
Loading…
Cancel
Save