Skip to content

Adiciona suporte aos parâmetros verify, issn e stop ao longo do pipeline de coleta de artigos, issues, journals#1404

Open
robertatakenaka wants to merge 20 commits intoscieloorg:mainfrom
robertatakenaka:fix_url_counter_dict
Open

Adiciona suporte aos parâmetros verify, issn e stop ao longo do pipeline de coleta de artigos, issues, journals#1404
robertatakenaka wants to merge 20 commits intoscieloorg:mainfrom
robertatakenaka:fix_url_counter_dict

Conversation

@robertatakenaka
Copy link
Copy Markdown
Member

@robertatakenaka robertatakenaka commented Mar 13, 2026

O que esse PR faz?

Adiciona suporte aos parâmetros verify, issn e stop ao longo do pipeline de coleta de artigos, issues, journals e preprints. Com isso:

  • verify: permite habilitar ou desabilitar a verificação SSL nas requisições HTTP, substituindo os valores verify=False hardcoded que existiam em AMHarvester, OPACHarvester e nas funções de harvest de issues.
  • issn: permite filtrar a coleta por journal específico em todos os harvesters e tasks.
  • stop: permite limitar o número máximo de itens processados em uma coleta, útil para testes e execuções parciais.

Além disso, corrige um AttributeError potencial em task_process_article_pipeline ao acessar pid_provider_xml.id quando pid_provider_xml é None.


Onde a revisão poderia começar?

Começar por core/utils/harvesters.py, que é a base da cadeia. É onde os três parâmetros são introduzidos em AMHarvester e OPACHarvester. A partir daí, seguir a ordem de dependência:

  1. core/utils/harvesters.py
  2. journal/sources/article_meta.py
  3. issue/articlemeta/loader.py
  4. article/sources/preprint.py
  5. article/controller.py
  6. issue/tasks.py e journal/tasks.py
  7. article/tasks.py
  8. bigbang/tasks_scheduler.py

Como este poderia ser testado manualmente?

Teste de stop — limitar coleta a 5 artigos via task:

task_dispatch_articles.delay(
    user_id=1,
    collection_acron_list=["scl"],
    stop=5,
)

Verificar nos logs que a mensagem "Reached stop limit of 5 articles" aparece e que exatamente 5 itens foram despachados.

Teste de issn — filtrar coleta por journal específico:

task_dispatch_articles.delay(
    user_id=1,
    collection_acron_list=["scl"],
    issn="1678-4596",
    stop=10,
)

Verificar que todos os artigos despachados pertencem ao journal com o ISSN informado.

Teste de verify=False — útil em ambientes com certificados SSL não reconhecidos:

task_dispatch_articles.delay(
    user_id=1,
    collection_acron_list=["scl"],
    verify=False,
    stop=3,
)

Verificar que a coleta ocorre sem erros de SSL.

Teste de preprints com stop:

load_preprint.delay(
    user_id=1,
    oai_pmh_preprint_uri="https://preprints.scielo.org/index.php/scielo/oai",
    stop=5,
)

Algum cenário de contexto que queira dar?

Os harvesters AMHarvester e OPACHarvester tinham verify=False fixo no código, o que representa um risco de segurança em produção e impedia o controle externo desse comportamento. Ao mesmo tempo, a ausência dos parâmetros issn e stop tornava inviável executar coletas parciais para fins de teste ou reprocessamento pontual de um journal, obrigando sempre a percorrer toda a coleção.

Este PR torna o comportamento configurável em todos os níveis da cadeia — desde os harvesters até o agendador de tarefas — sem quebrar a interface existente, pois todos os novos parâmetros possuem valores default que preservam o comportamento anterior (verify=True, issn=None, stop=None).


Screenshots

Não aplicável — alterações restritas à camada de backend/pipeline.


Quais são tickets relevantes?

Informar a issue correspondente.


Referências

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants