Skip to main content

Funções para gestão de pacotes de dados no portal dados.mg.gov.br

Project description

Data package manager for CKAN (dpckan)

O dpckan é um pacote python, acessível via interface CLI, utilizado para catalogação inicial e atualização de conjuntos de dados documentados de acordo com o padrão de metadados Frictionless Data (ie. pacotes de dados) em uma instância do CKAN.

Instalação e configuração

O dpckan está disponível no Python Package Index (PyPI) e pode ser instalado com

pip install dpckan

Todos os comandos exigem a indicação de uma instância CKAN (eg. https://demo.ckan.org/) e de uma chave válida para autenticação na referida instância. Essas configurações podem ser informadas como argumento na invocação de cada comando ou com as variáveis de ambientes CKAN_HOST = e CKAN_KEY =

Uso

  • Trabalhando com variáveis de ambiente

A utilizaçao deste pacote exige a utilizaçao de chaves CKAN, tanto do ambiente de homologação quanto de produção. Para solicitar login de acesso mande um e-mail para dadosabertos@cge.mg.gov.br.

Sugerimos a criação de um arquivo .env na raiz do pacote (bem como o cadastro .gitignore do mesmo) para utilização destas chaves sem a sincronização das mesmas com o repositório online. O pacote "python-dotenv" necessário para carregamento das chaves cadastradas no arquivo .env, será instalado juntamente com o pacote. Sendo assim, sugerimos os seguintes passos para criaçao do arquivo .env:

# Criação arquivo .env com estrutura para receber chaves CKAN homologação e produção
# Após a criação, abra o arquivo e inclua as chaves em seus respectivos ambientes
$ echo "CKAN_HOMOLOGA=''\nCKAN_PORTAL=''" > .env

# Inclua ".env" na última linha do arquivo .gitignore existente na raiz do conjunto. Caso .gitignore não exista execute o comando abaixo:
# CUIDADO: Caso comando abaixo seja executado em um conjunto cujo .gitignore exista toda configuração preexistente no mesmo será apagada
$ echo ".env" > .gitignore
  • Publicação de conjuntos (Arquivo Python ou terminal)
    • publish(package_path, ckan_key, environment):
      • package_path: caminho do arquivo datapackage.json
      • ckan_key: chave ckan do usuário no ambiente desejado
      • environment: escolher entre "homologa" e"portal" (homologa default)
# Publicação em ambiente de homologação - Executar na raiz do conjunto (local onde datapackage.json está armazenado)

import os
from dotenv import load_dotenv
load_dotenv()
from dpkgckanmg import publish
publish("./", os.getenv('CKAN_HOMOLOGA'), "homologa")


# Publicação em ambiente de produção - Executar na raiz do conjunto (local onde datapackage.json está armazenado)

import os
from dotenv import load_dotenv
load_dotenv()
from dpkgckanmg import publish
publish("./", os.getenv('CKAN_PORTAL'), "portal")

Criar Recurso

from dpckan import criarArquivo2 criarArquivo2(1, 2, 3)

Atualizar Data Set

from dpkgckanmg import dataSet dataSet(1, 2, 3)

Atualizar Recurso

from dpkgckanmg import resource resource(1, 2, 3)

1,2 3 deveráo ser retirados do arquivo .doc (gabriel atualizará)


## Desenvolvimento

# Instalação

- Prerequisitos:
  - Python 3.9 ou superior

- [Documentação de referência mostrando procedimentos necessários para contribuiação em um projeto open source](https://www.dataschool.io/how-to-contribute-on-github/)
- Passos básicos:
  - Fork o repositório do projeto
  - Clone o repositório criado em sua conta após o fork
  - Navegue até o repositório clonado em sua máquina
  - Crie e ative ambiente python para utilizar o projeto. Os passos abaixo são sugestões, podendo outro método ser utilizado de acordo com a preferência do usuário:

$ python3.9 -m venv venv $ source venv/bin/activate (venv) ➜ pip install -r requirements.txt

Desativar o ambiente

(venv) ➜ deactivate

  - Crie um branch e realize as modificações necessárias
  - Realize o push de suas modificações no branch criado
  - Abra um PR explicando os motivos que o levaram a realizar a modificar parte do código e em como esta modificação auxiliará no desenvolvimento do projeto

# Atualização de versão

Conforme relatado no [issue 6](https://github.com/dados-mg/dpkgckanmg/issues/6), atualização de versões no [Pypi](https://pypi.org/) deve seguir os passos:

- Visualização da última versão publicada no Pypi
- Atualização arquivo setup.py com uma versão superior à identificada no Pypi
- Commit diretamente na main da modificação

$ git add . $ git commit -m "v"

Exemplo - $ git commit -m "v0.0.1.9013"

- Criação da tag e vinculação da mesma com o último commit

$ git tag v HEAD

Exemplo - $ git tag v0.0.1.9013 HEAD

- Push commit (diretamente main) e tag para repo online

$ git push origin main # branch $ git push origin v # tag

- Publicar nova versão

Leitura do arquivo Makefile para relembrar

Ativar ambiente python e publicação

$ source venv/bin/activate (venv) ➜ dpkgckanmg git:(main) make update-package


- Consulta nova versão publicada


Change Log
==========

0.1.0 (23/08/2021)
------------------
- Criação dos comandos cli para criação e atualização de datasets
- Criação dos comandos cli para criação e atualização de recursos
- Melhoria da documentação

0.0.1.9020 (09/06/2021)
------------------
- Publicação de documentação online do pacote
- Correção de bugs e exclusão de códigos repetidos ao longo do projeto


0.0.1.9000 (06/05/2021)
------------------
- Lançamento primeira versão de teste do pacote


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dpckan-0.1.0.tar.gz (13.7 MB view hashes)

Uploaded Source

Built Distribution

dpckan-0.1.0-py3-none-any.whl (16.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page