Skip to content

Instantly share code, notes, and snippets.

@maxwellamaral
Forked from maxwellcc/util1.py
Created September 6, 2022 12:38
Show Gist options
  • Save maxwellamaral/552f7cd8fc7dd415c319908b034df856 to your computer and use it in GitHub Desktop.
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
# 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
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
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