Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alterar a lógica dos atributos de datas resolveria alguns problemas de integração? #1318

Open
trevineju opened this issue Nov 1, 2024 · 0 comments
Labels
enhancement Melhoria, novo recurso ou ferramenta question Solicitação de informações ou dúvidas

Comments

@trevineju
Copy link
Member

trevineju commented Nov 1, 2024

Está aumentando o número de casos em que o mesmo site tem diários de período diferentes. A PR #1152 é um bom exemplo disso. Lá, estão registrados 7 casos em que a prefeitura usa um site publicador de forma intermitente: usa pela primeira vez, para de usar, volta a usar. Aparentemente por passar a contratar outro serviço por um tempo.

A questão é que, pelos atuais procedimentos de desenvolvimento adotados no repositório, a integração de uma situação dessa demandaria 3 raspadores. Por exemplo:

raspador fonte período situação
uf_mun_2000 DOEM 2000 a 2009 fica aguardando integração do 2009 em diante
uf_mun_2010 SAI 2009 a 2015 fica aguardando integração do 2015 em diante
uf_mun_2015 DOEM 2015 até hoje integrado primeiro

Destaco que a questão aqui tem a ver com a fonte DOEM ser a mesma. Se fossem 3 fontes diferentes, seguiria com 3 raspadores.

Uma possibilidade é a de alterar como estamos encarando o start_date e, consequentemente o end_date também, para receber uma lista de pares inicio-fim (tuplas de intervalos). Algo como:

  • raspador que só tem o intervalo atual
# não tem data final pois é vigente
period = [ ( data de inicio, ) ]  
  • raspador descontinuado (no exemplo acima, seria o raspador para o período que está no SAI)
period = [ ( 2009-mm-dd, 2015-mm-dd ) ] 
  • raspador intermitente (no exemplo acima, seria o raspador para DOEM)
# um intervalo no passado, e um no presente sem final pois é vigente
period = [ ( 2000-mm-dd, 2009-mm-dd ), ( 2015-mm-dd, ) ]  

Esta proposta busca equilibrar interesses:

  1. reduzir a quantidade de arquivos de raspadores do repositório, em especial quando a fonte seria a mesma, que não precisaria de outro raspador
  2. mantem raspadores fazendo requisições de forma responsável, não requisitando intervalos - por vezes longos, de anos - que sabemos não ter diários pelo sistema ter migrado.
  3. Transparecer (= os intervalos ficam explícitos no código) e viabilizar (=visto que hoje estão sendo postergados) a integração de forma mais prática desses intervalos anteriores
  4. A médio prazo, facilitará nossa manutenção de municípios que ficam migrando de sistemas e deixando intervalos legados.

Entretanto, ela é delicada por:

  1. Precisaria alterar o BaseGazetteSpider para validar datas desse novo jeito.
  2. Impactaria todos os raspadores do repositório, que precisariam ser ajustados para se adequar. Visto que a maior parte é sistema replicável, atualizar as bases e refletir nos raspadores replicados pode ser resolvido mais rápido, mas os demais precisariam de atualizações um a um.

Alguém tem opiniões?
Seja na ideia, no impacto, como viabilizar ou resolver de outra forma?

@trevineju trevineju added enhancement Melhoria, novo recurso ou ferramenta epic Grande tarefa. Geralmente, uma tarefa épica se desdobra em outras tarefas menores dificuldade:alta Possivelmente desafiador de desenvolver question Solicitação de informações ou dúvidas and removed epic Grande tarefa. Geralmente, uma tarefa épica se desdobra em outras tarefas menores dificuldade:alta Possivelmente desafiador de desenvolver labels Nov 1, 2024
@trevineju trevineju moved this from novo to --- in [Querido Diário] Municípios Nov 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Melhoria, novo recurso ou ferramenta question Solicitação de informações ou dúvidas
Projects
Development

No branches or pull requests

1 participant