def add_tel(tel_list, ddd, tel): ddd = ddd.strip() tel = tel.strip() if ddd and tel: tel = '%s%s' % (ddd, tel) tipo = get_tipo(tel) inst, _ = get_or_create(Telefone, numero=tel, tipo=tipo) session.commit() if not inst in tel_list: tel_list.append(inst) session.commit()
def main(): # Iterando sobre as entradas no arquivo csv gerado à partir do dump # do banco de dados colhido durante a teia2010. # # Todos os campos que começam com "p_" são relativos ao projeto, já # os que começam com "r_", são relativos ao responsável e, # finalmente, os que começam com "e_" são relativos à entidade # proponente. Meio tosco, mas é um script utilitário que vai ser # usado apenas uma vez, então... let the hammer fall! for i in list(csv.reader(file('pontos_teia2010.csv')))[1:]: (_, _, _, _, p_tipo, p_tipo_convenio, p_nome, p_logradouro, p_num, p_complemento, p_bairro, p_cep, p_cidade, p_uf, p_ddd1, p_tel1, p_ddd2, p_tel2, p_email, p_blog, r_nome, r_email, r_ddd, r_tel, e_nome, e_logradouro, e_num, e_complemento, e_bairro, e_cep, e_cidade, e_uf, e_ddd1, e_tel1, e_ddd2, e_tel2, e_email, e_blog, data_cadastro, hora_cadastro, _ ) = i # Criando a linha para a pessoa responsável pelo projeto e suas # relações responsavel, created = get_or_create(Pessoa, email=r_email) if created: responsavel.nome = clean_name(r_nome) add_tel(responsavel.telefones, r_ddd, r_tel) set_senha(responsavel, 'alabama') responsavel.endereco = get_or_create(Endereco, logradouro="", numero="", complemento="", bairro="", cep="", cidade="", uf="")[0] # Criando a linha para a entidade responsável pelo projeto e # suas relações entidade = get_or_create(Entidade, nome=e_nome, email=e_email, website=e_blog)[0] entidade.endereco = get_or_create(Endereco, logradouro=e_logradouro, numero=e_num, complemento=e_complemento, bairro=e_bairro, cep=e_cep, cidade=e_cidade, uf=e_uf)[0] add_tel(entidade.telefones, e_ddd1, e_tel1) add_tel(entidade.telefones, e_ddd2, e_tel2) # Finalmente, criando o projeto projeto = Projeto( nome=clean_name(p_nome), tipo=p_tipo, tipo_convenio=p_tipo_convenio, email=p_email, site=p_blog, entidade=entidade) projeto.responsavel = responsavel projeto.endereco_sede = get_or_create(Endereco, logradouro=clean_name(p_logradouro), numero=p_num, complemento=p_complemento, bairro=clean_name(p_bairro), cep=p_cep, cidade=clean_name(p_cidade), uf=p_uf)[0] add_tel(projeto.telefones, p_ddd1, p_tel1) add_tel(projeto.telefones, p_ddd2, p_tel2) data_cadastro = data_cadastro.strip() hora_cadastro = hora_cadastro.strip() data = '' if data_cadastro: data = data_cadastro formato = '%Y-%m-%d' if data_cadastro and hora_cadastro: data += ' %s' % hora_cadastro formato += ' %H:%M:%S' if data: time_st = strptime(data, formato) projeto.data_cadastro = datetime(*tuple(time_st)[:6]) session.commit()