GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - scieloorg/processing: Scripts de processamentos e dump de metadados.

BranchesTags
Open more actions menu

Latest commit

 

History

380 Commits
380 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
accesses
accesses
 
 
analytics
analytics
 
 
bibliometric
bibliometric
 
 
clients
clients
 
 
docs
docs
 
 
evaluation
evaluation
 
 
export
export
 
 
k8s
k8s
 
 
publication
publication
 
 
tabulations
tabulations
 
 
tests
tests
 
 
thrift
thrift
 
 
thriftpy
thriftpy
 
 
.env.example
.env.example
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
SECURITY_ADHERENCE.md
SECURITY_ADHERENCE.md
 
 
choices.py
choices.py
 
 
config.ini-TEMPLATE
config.ini-TEMPLATE
 
 
docker-compose.yaml
docker-compose.yaml
 
 
requirements.txt
requirements.txt
 
 
setup.cfg
setup.cfg
 
 
setup.py
setup.py
 
 
sonar-project.properties
sonar-project.properties
 
 
utils.py
utils.py
 
 

Repository files navigation

SciELO Processing

Conjunto de utilitários para a produção de tabulações com metadados e métricas e também para o envio de dados à parceiros.

Requisitos:

  • Python 3.14

Docker

Para instalar as dependências e executar a suíte de testes:

docker compose run --rm tests

Para executar o processamento via Docker, configure as variáveis em um arquivo .env local, baseado em .env.example. O .env não deve ser versionado.

cp .env.example .env

Preencha no .env os valores equivalentes ao antigo config.ini:

ARTICLEMETA_THRIFTSERVER=
ARTICLEMETA_ADMINTOKEN=
RATCHET_THRIFTSERVER=
ACCESSSTATS_THRIFTSERVER=
CITEDBY_THRIFTSERVER=
PUBLICATIONSTATS_THRIFTSERVER=
SOLR_SEARCH_SCIELO_ORG=
SOLR_SEARCH_SCIELO_ORG_INDEX=
PUBLICATIONSTATS_TIMEOUT_MS=60000
SLACK_WEBHOOK_URL=

Depois execute:

docker compose run --rm processing "scl-BR"

Os logs ficam persistidos em var/log/processing e os arquivos ZIP gerados em var/tabs.

Kubernetes / Argo

O agendamento para Argo Workflows está em k8s/argo-cronworkflow.yaml com o cron:

0 3 1,8,15,22 1-12 *

O workflow executa as coleções sequencialmente. Quando uma coleção falha, o script envia a notificação de erro e continua para a próxima. Ao final, o job termina com falha, mantém os checkpoints para retomada e preserva o ZIP de rede completo publicado anteriormente.

Os valores sensíveis devem ser criados em um Secret do Kubernetes chamado processing-env, baseado em k8s/processing-env.secret.example.yaml. Não versione o Secret real.

Volumes esperados:

processing-data -> /var/www/static_scielo_org/tabs
processing-logs -> /var/log/processing

O processamento é orquestrado pelo comando processing_tabs. Os logs informam coleção, etapa, tentativa, duração, comando executado e arquivos produzidos.

A exportação KBART inclui todos os periódicos da coleção, correntes e não correntes. Para os correntes, os campos de última publicação ficam vazios; para os demais, são preenchidos com os dados disponíveis.

Quando uma coleção falha, o runner registra o acrônimo em /var/log/processing/failed_collections.queue por padrão. Na próxima execução, essa fila é carregada antes da lista normal de coleções. Cada etapa concluída também é salva em um checkpoint; assim, somente etapas incompletas são executadas novamente. Por padrão, os checkpoints ficam em $TABS_DIR/.processing-checkpoints, no mesmo volume persistente dos arquivos gerados. Os caminhos podem ser alterados com FAILED_COLLECTIONS_FILE e CHECKPOINT_DIR. Checkpoints de uma data anterior são descartados para evitar que arquivos de períodos diferentes sejam combinados.

As etapas de documentos, periódicos e KBART somente são concluídas quando os arquivos essenciais possuem pelo menos um registro além do cabeçalho. O arquivo de mudanças de status pode conter somente o cabeçalho. Quando essa validação falha, o pacote da coleção não é publicado e o último pacote completo da rede é preservado.

Os ZIPs das coleções e o consolidado da rede incluem o KBART com dois nomes: SciELO_<coleção>_AllTitles_<data>.csv e journals_kbart.csv. Ambos possuem conteúdo idêntico, preservando a compatibilidade com as coletas que usam o nome antigo.

Aplicação:

kubectl apply -f k8s/processing-env.secret.yaml
kubectl apply -f k8s/argo-cronworkflow.yaml

Exportação de dados ao DOAJ

Esta integração é realizada por meio de um robô que obtém os metadados dos documentos a partir do ArticleMeta, já codificados em XML conforme o schema do DOAJ, e os envia, um a um, através do formulário de submissão de artigos em XML, do site do DOAJ. Este processo não é ótimo mas é o único que nos permite enviar metadados em múltiplos idiomas.

Ao depositar um documento, o DOAJ verifica automaticamente se os ISSNs informados correspondem exatamente com os cadastrados em sua base de dados e, no caso de qualquer divergência, o depósito é rejeitado. A fim de contornar este problema, é possível construir uma base de correções que poderá ser utilizada pelo utilitário de depósito. A base de correções é produzida a partir de consultas às bases do DOAJ e, quando aplicada, modifica os metadados dos documentos de forma que os ISSNs fiquem conforme esperado pelo DOAJ.

Para produzir a base de correções e armazená-la em /tmp/corr.jsonl:

python export/gen_doaj_correctionsdb.py gen-correctionsdb > /tmp/corr.jsonl

Para executar o depósito dos documentos no DOAJ:

PROCESSING_SETTINGS_FILE=myconfig.ini processing_export_doaj --corrections_db /tmp/corr.jsonl --user US3R --password P4SSW0RD

Note que: (a) será necessário criar um arquivo de configurações e atribuí-lo à variável PROCESSING_SETTINGS_FILE. Este arquivo poderá ser baseado no exemplo fornecido no projeto e (b) que o utilitário processing_export_doaj aceita opções que podem ser usadas de forma a delimitar o conjunto de dados que serão depositados no DOAJ. Para mais detalhes execute PROCESSING_SETTINGS_FILE=myconfig.ini processing_export_doaj --help.

About

Scripts de processamentos e dump de metadados.

Resources

Readme
BSD-2-Clause license
Activity
Custom properties

Stars

4 stars

Watchers

10 watching

Forks

6 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.