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)
- publish(package_path, ckan_key, environment):
# 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.