-
-
Save maxwellamaral/552f7cd8fc7dd415c319908b034df856 to your computer and use it in GitHub Desktop.
XML: Processa a RPI de patentes, marcas e registros de programa de computador do INPI
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Processa patentes | |
def get_despachos_patentes_INPI(ip_type, Patent): | |
if ip_type == 'Patente': | |
ip_id = Patent.objects.values_list('patent_id', flat=True).filter(active=True) | |
if ip_id: | |
for despatch in doc.iterfind('despacho'): | |
for process in despatch.iterfind('processo-patente'): | |
number = process.findtext('numero') | |
if number in ip_id: | |
qtd_finded += 1 | |
data[number] = {} | |
data[number]['tipo'] = ip_type | |
data[number]['revista'] = rpi_number | |
data[number]['codigo'] = despatch.findtext('codigo') | |
data[number]['titulo'] = despatch.findtext('titulo') | |
data[number]['comentario'] = despatch.findtext('comentario') | |
data[number]['data-deposito'] = process.findtext('data-deposito') | |
qtd = 0 | |
data[number]['classificacao-internacional-lista'] = {} | |
for cil in process.iterfind( | |
'classificacao-internacional-lista/classificacao-internacional'): | |
qtd += 1 | |
data[number]['classificacao-internacional-lista'][str(qtd)] = \ | |
cil.text | |
qtd = 0 | |
data[number]['prioridade-unionista-lista'] = {} | |
for tipoPrograma in process.iterfind( | |
'prioridade-unionista-lista/prioridade-unionista'): | |
qtd += 1 | |
data[number]['prioridade-unionista-lista'][str(qtd)] = {} | |
data[number]['prioridade-unionista-lista'][str(qtd)]['sigla-pais'] = \ | |
tipoPrograma.findtext('sigla-pais') | |
data[number]['prioridade-unionista-lista'][str(qtd)]['numero-prioridade'] = \ | |
tipoPrograma.findtext('numero-prioridade') | |
data[number]['prioridade-unionista-lista'][str(qtd)]['data-prioridade'] = \ | |
tipoPrograma.findtext('data-prioridade') | |
qtd = 0 | |
data[number]['titular-lista'] = {} | |
for applicant in process.iterfind('titular-lista/titular'): | |
qtd += 1 | |
data[number]['titular-lista'][str(qtd)] = applicant.findtext( | |
'nome-completo') | |
qtd = 0 | |
data[number]['inventor-lista'] = {} | |
for creator in process.iterfind('inventor-lista/inventor'): | |
qtd += 1 | |
data[number]['inventor-lista'][str(qtd)] = creator.findtext( | |
'nome-completo') | |
return data |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def get_despachos_softwares_INPI(ip_type, Software): | |
if ip_type == 'Software': | |
ip_id = Software.objects.values_list('software_id', flat=True).filter(active=True) | |
if ip_id: | |
for despatch in doc.iterfind('despacho'): | |
for process in despatch.iterfind('processo-programa'): | |
number = process.findtext('numero') | |
if number in ip_id: | |
qtd_finded += 1 | |
data[number] = {} | |
data[number]['tipo'] = ip_type | |
data[number]['revista'] = rpi_number | |
data[number]['codigo'] = despatch.findtext('codigo') | |
data[number]['titulo'] = despatch.findtext('titulo') | |
data[number]['comentario'] = despatch.findtext('comentario') | |
data[number]['dataCriacao'] = process.findtext('dataCriacao') | |
# campoAplicacaoLista | |
qtd = 0 | |
data[number]['campoAplicacaoLista'] = {} | |
for despacho in process.iterfind( | |
'campoAplicacaoLista/campoAplicacao'): | |
qtd += 1 | |
data[number]['campoAplicacaoLista'][str(qtd)] = \ | |
despacho.text | |
# linguagemLista | |
qtd = 0 | |
data[number]['linguagemLista'] = {} | |
for campoLinguagem in process.iterfind( | |
'linguagemLista/linguagem'): | |
qtd += 1 | |
data[number]['linguagemLista'][str(qtd)] = \ | |
campoLinguagem.text | |
# tipoProgramaLista | |
qtd = 0 | |
data[number]['tipoProgramaLista'] = {} | |
for tipoPrograma in process.iterfind( | |
'tipoProgramaLista/tipoPrograma'): | |
qtd += 1 | |
data[number]['tipoProgramaLista'][str(qtd)] = {} | |
data[number]['tipoProgramaLista'][str(qtd)]['codigo'] = \ | |
tipoPrograma.findtext('codigo') | |
# titularLista | |
qtd = 0 | |
data[number]['titularLista'] = {} | |
for applicant in process.iterfind('titularLista/titular'): | |
qtd += 1 | |
data[number]['titularLista'][str(qtd)] = applicant.findtext( | |
'nome') | |
# criadorLista | |
qtd = 0 | |
data[number]['criadorLista'] = {} | |
for creator in process.iterfind('criadorLista/criador'): | |
qtd += 1 | |
data[number]['criadorLista'][str(qtd)] = creator.findtext( | |
'nome') | |
return data |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def get_despachos_marcas_INPI(ip_type, Trademark): | |
if ip_type == 'Marca': | |
ip_id = Trademark.objects.values_list('trademark_id', flat=True).filter(active=True) | |
if ip_id: | |
for process in doc.iterfind('processo'): | |
number = process.attrib.get('numero') | |
if number in ip_id: | |
qtd_finded += 1 | |
data[number] = {} | |
data[number]['tipo'] = ip_type | |
data[number]['revista'] = rpi_number | |
data[number]['data-deposito'] = process.attrib.get('data-deposito') | |
# dados-de-madri | |
# <dados-de-madri numero-inscricao-internacional="1496568" data-recebimento-inpi="07/11/2019"/> | |
data[number]['dados-de-madri'] = {} | |
for dados_de_madri in process.iterfind('dados-de-madri'): | |
data[number]['dados-de-madri'][ | |
'numero-inscricao-internacional'] = dados_de_madri.attrib.get( | |
'numero-inscricao-internacional') | |
data[number]['dados-de-madri'][ | |
'data-recebimento-inpi'] = dados_de_madri.attrib.get( | |
'data-recebimento-inpi') | |
# despachos | |
qtd = 0 | |
data[number]['despachos'] = {} | |
for despacho in process.iterfind('despachos/despacho'): | |
qtd += 1 | |
data[number]['despachos'][str(qtd)] = {} | |
data[number]['despachos'][str(qtd)]['codigo'] = despacho.attrib.get('codigo') | |
data[number]['despachos'][str(qtd)]['nome'] = despacho.attrib.get('nome') | |
# TODO: falta texto-complementar, protocolo (v. arquivo de exemplo) | |
# titulares | |
qtd = 0 | |
data[number]['titulares'] = {} | |
for titular in process.iterfind('titulares/titular'): | |
qtd += 1 | |
data[number]['titulares'][str(qtd)] = {} | |
data[number]['titulares'][str(qtd)]['nome-razao-social'] = titular.attrib.get( | |
'nome-razao-social') | |
data[number]['titulares'][str(qtd)]['pais'] = titular.attrib.get('pais') | |
data[number]['titulares'][str(qtd)]['uf'] = titular.attrib.get('uf') | |
# marca | |
data[number]['marca'] = {} | |
for marca in process.iterfind('marca'): | |
data[number]['marca']['apresentacao'] = marca.attrib.get('apresentacao') | |
data[number]['marca']['natureza'] = marca.attrib.get('natureza') | |
data[number]['marca']['nome'] = marca.findtext('nome') | |
# lista-classe-nice | |
qtd = 0 | |
data[number]['lista-classe-nice'] = {} | |
for classe_nice in process.iterfind('lista-classe-nice/classe-nice'): | |
qtd += 1 | |
data[number]['lista-classe-nice'][str(qtd)] = {} | |
data[number]['lista-classe-nice'][str(qtd)]['codigo'] = classe_nice.attrib.get( | |
'codigo') | |
data[number]['lista-classe-nice'][str(qtd)][ | |
'especificacao'] = classe_nice.findtext('especificacao') | |
data[number]['lista-classe-nice'][str(qtd)][ | |
'traducao-especificacao'] = classe_nice.findtext('traducao-especificacao') | |
data[number]['lista-classe-nice'][str(qtd)]['status'] = classe_nice.findtext( | |
'status') | |
# classes-vienna | |
qtd = 0 | |
data[number]['classes-vienna'] = {} | |
for classe_vienna in process.iterfind('classes-vienna/classe-vienna'): | |
qtd += 1 | |
data[number]['classes-vienna'][str(qtd)] = {} | |
data[number]['classes-vienna'][str(qtd)]['codigo'] = classe_vienna.attrib.get( | |
'codigo') | |
data[number]['classes-vienna'][str(qtd)]['edicao'] = classe_vienna.attrib.get( | |
'edicao') | |
# prioridade-unionista | |
qtd = 0 | |
data[number]['prioridades'] = {} | |
for prioridade in process.iterfind('prioridade-unionista/prioridade'): | |
qtd += 1 | |
data[number]['prioridades'][str(qtd)] = {} | |
data[number]['prioridades'][str(qtd)]['data'] = prioridade.attrib.get('data') | |
data[number]['prioridades'][str(qtd)]['numero'] = prioridade.attrib.get( | |
'numero') | |
data[number]['prioridades'][str(qtd)]['pais'] = prioridade.attrib.get('pais') | |
# sobrestadores | |
qtd = 0 | |
data[number]['sobrestadores'] = {} | |
for sobrestador in process.iterfind('sobrestadores/sobrestador'): | |
qtd += 1 | |
data[number]['sobrestadores'][str(qtd)] = {} | |
data[number]['sobrestadores'][str(qtd)]['processo'] = sobrestador.attrib.get( | |
'processo') | |
data[number]['sobrestadores'][str(qtd)]['marca'] = sobrestador.attrib.get( | |
'marca') | |
# procurador | |
data[number]['procurador'] = process.findtext('procurador') | |
return data |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment