Package: dpckan
Data package manager para CKAN (dpckan)Odpckané um pacote Python, acessível via interfaceCLI, utilizado para criação e atualização de conjuntos de dados e recursos (documentados de acordo com o padrão de metadadosFrictionless Data) em uma instância doCKAN.Curiosidades: Consulte a comparação do dpckan com algunsprojetos relacionados.Documentação complementarInstalaçãoOdpckanestá disponível no Python Package Index -PyPIe pode ser instalado utilizando-se o comando abaixo:# Antes de executar o comando abaixo lembre-se que ambiente Python deverá estar ativo$pipinstalldpckanConfiguração de Variáveis de ambienteTodos os comandos exigem a indicação de uma instância CKAN (ex:https://demo.ckan.org/) e de uma chave válida para autenticação na referida instância. Esta indicação deverá ser realizada através do cadastro de variáveis de ambiente. Para invocação CLI de qualquer comando sem a necessidade de indicar explicitamente estas variáveis recomenda-se utilização dos nomesCKAN_HOSTeCKAN_KEYpara cadastro de instância e chave respectivamente. Caso outros nomes sejam utilizados, necessário indicar explicitamente durante a chamada da função desejada, utilizando-se as flags "--ckan-host" e "--ckan-key", conforme demostrado abaixo e ou de maneira mais detalhada na sessãoUso.# CKAN_HOST=https://demo.ckan.org/# CKAN_KEY=CC850181-6ZS9-4f4C-bf3f-fb4db7ce09f90 (Chave CKAN meramente ilustrativa)# Utilização sem necessidade de indicar explicitamente variáveis$dpckandatasetcreate# CKAN_HOST_PRODUCAO=https://demo.ckan.org/# CKAN_KEY_PRODUCAO=CC850181-6ZS9-4f4C-bf3f-fb4db7ce09f90 (Chave CKAN meramente ilustrativa)# Utilização indicando explicitamente variáveis, através flags --ckan-host e --ckan-key$dpckan--ckan-host$CKAN_HOST_PRODUCAO--ckan-key$CKAN_KEY_PRODUCAOdatasetcreateO cadastro das variáveis de ambienteCKAN_HOSTeCKAN_KEY, necessárias para invocação de cada comando, deverá ser realizada conforme sistema operacional do usuário. Abaixo links de referência para tal:WindowsLinuxMacAlternativamente, o cadastro destas variáveis de ambiente poderá ser realizado em arquivo ".env", na raiz do conjunto de dados, sendo necessário a inclusão deste ".env" em arquivo ".gitignore", evitando assim a sincronização e consequente publicização destas chaves em repositórios online comogithub, conforme demostrado abaixo:# CUIDADO: SOMENTE UTILIZE A OPÇÃO SUGERIDA ABAIXO SE POSSUIR FAMILIARIDADE COM O ASSUNTO, EVITANDO ASSIM PROBLEMAS COM ACESSO DE TERCEIROS NÃO AUTORIZADOS EM SUA INSTÂNCIA CKAN# CUIDADO: SOMENTE EXECUTE OS COMANDOS ABAIXO SE OS ARQUIVO ".env" e ".gitignore" NÃO EXISTIREM NA RAIZ DO CONJUNTO DE DADOS# CUIDADO: CASO COMANDOS ABAIXO SEJAM EXECUTADOS COM ".env" e ".gitignore" EXISTENTES TODO CONTEÚDO DOS MESMOS SERÁ APAGADO# Crie arquivo ".env" com estrutura para receber chaves CKAN_HOST e CKAN_KEY# Após a criação, abra o arquivo e inclua os valores para cada variável$echo"CKAN_HOST=''\nCKAN_KEY=''">.env# Crie arquivo ".gitignore" com configuração para excluir arquivo ".env" do controle de versão git$echo".env">.gitignore# Confira se configuração foi realizada com sucesso# Comando abaixo deverá mostrar apenas criação/modificação de arquivo ".gitignore", não sendo apresentado nada para arquivo ".env"$gitstatusUsoAntes de executar cada comando verifique:Se as variáveis de ambiente estão definidas corretamente;O local aonde os comandos serão executados, pois a execução no mesmo diretório do arquivo datapackage.json simplificará o trabalho;Não copie e cole os comandos sugeridos abaixo cegamente, indicações entre "<>" sevirão para ilustrar variáveis a serem adequadas para a realidade do usuário.Acessando documentação do dpckan via terminal# Informações gerais sobre o pacote e seus comandos$dpckan--help# Informações sobre comandos dataset e resource$dpckandataset--help
$dpckanresource--help# Informações sobre sub-comandos dataset$dpckandatasetcreate--help
$dpckandatasetupdate--help# Informações sobre sub-comandos resource$dpckanresourcecreate--help
$dpckanresourceupdate--helpInterrompendo execução em caso de erros de validação frictionlessDurante a execução dos comandos dpckan a bibliotecafrictionlessserá utilizada paravalidaçãolocal do conjunto de dados viafrictionless validate. Erros durante esta validação serão informados ao usuário mas somente interromperão a execução se a flag--stopfor passada como parâmetro, conforme demonstrado abaixo:$dpckandatasetcreate--stopBaixando conjuntos de dados publicados em instância CKANPara baixar um conjunto de dados publicado em alguma instância do CKAN utilize o comando abaixo:$dpckandatasetget--dataset-iddataset-linkCriando e atualizando um conjunto de dados via terminalPara criar um conjunto de dados, execute o comando no diretório aonde o arquivo datapackage.json se encontra:$dpckandatasetcreateE para atualizar o conjunto de dados, execute o comando no diretório aonde o arquivo datapackage.json se encontra:$dpckandatasetupdateCUIDADO: A atualização de conjunto de dados presupõe:Criação do conjunto de dados via comandodpckan dataset create;Criação de recursos via comandodpckan resource create; eIgualdade entre o número e nome dos recursos locais e da instância CKAN.Criando e atualizando recursos via terminalCUIDADO: Recursos com nomes iguais além de desrespeitar aespecificação frictionlessconfundem o usuário.Para criar um recurso, execute o seguinte comando no diretório aonde o arquivo datapackage.json se encontra.$dpckanresource<nome-recurso>createPara atualizar um recurso, execute o seguinte comando no diretório aonde o arquivo datapackage.json se encontra.$dpckanresource<nome-recurso><id-recurso>updateEm ambiente de homologação cadastrado na máquina,$ dpckan --ckan-host $HOMOLOGA_HOST --ckan-key $HOMOLOGA_KEY resource <nome_recurso> createou$ dpckan --ckan-host $HOMOLOGA_HOST --ckan-key $HOMOLOGA_KEY resource <nome_recurso> <id-recurso> updatepara atualizarContribuiçõesPré-requisitos: Python 3.9 ou superiorDocumentação de referência mostrando procedimentos necessários para contribuição em um projeto open sourcePassos básicos:Crie um fork do repositório do projeto;Clone o repositório criado em seu github após o fork;Navegue até o repositório clonado em sua máquina;Crie e ative um ambiente virtual Python para utilizar o projeto;Crie um branch para realizar as modificações necessárias;Realize o push da branch criada; eAbra um PR explicando os motivos da mudança e como esta auxiliará no desenvolvimento do projeto.Atualizar versãoConforme relatado noissue 6, atualização de versões noPypideve seguirestes os passosLicençaOdpckané licenciado sob a licença MIT.
Veja o arquivoLICENSE.mdpara mais detalhes.Change Log0.1.22 (29/08/2023)Melhora processo de criação/atualização datastore0.1.21 (07/03/2023)Possibilita atualização de conjuntos privados0.1.20 (16/02/2023)Fixa versões de pacotes dependentes - erro de atualização versão frictionless 50.1.19 (22/11/2022)Melhora mensagens de log informando qual host está sendo utilizado0.1.18 (02/04/2022)Adiciona flag --exit-codeBug Fix na chamada da funçãodataset updateque não estava atualizando metadados do conjunto0.1.17 (14/03/2022)Bug Fix na chamada da funçãoresource_updatedentro dedataset_update0.1.16 (14/03/2022)Inclusão funçãodpckan dataset getCorreções flag--datastoreCorreçõesdpckan resource create0.1.15 (21/02/2021)Registra ids de recursos publicados apenas na instância CKAN e não mais no arquivo datapackage.json localRevisa/simplifica documentação CLIModifica chamada das funções0.1.14 (27/12/2021)Corrige funcionamento da flag para acionamento do datastore nunca produzir efeitosAltera nome da flag para acionamento do datastore durante criação e atualização de conjunto de dados de metadata para datastore0.1.13 (22/12/2021)Remove extended do nome do arquivo extended_datapackage.json durante criação de recursos datapackage.json0.1.12 (21/12/2021)Adiciona Flag metadata para acionamento datastore durante criação e atualização de conjunto de dados0.1.11 (01/12/2021)Adicionando encoding para subir arquivos README, CONTRIBUTING e CHANGELOG para CKANAtualizando metadado do conjunto caso apenas datapackage.json sofra modificações0.1.10 (12/11/2021)Dataset update primeira versão, atualizando recursos e metadados modificadosPequenas refatorações0.1.9 (12/11/2021)Correção pacote ipdb importado erradamente0.1.8 (12/11/2021)Apaga propriedade ckan_hosts apenas da instância CKAN desejadaExpansão schema e dialetic presentes no recurso datapackage.json importados na instância CKAN0.1.7 (11/11/2021)Melhoria da implementação da documentação do conjunto de dados publicados no CKAN0.1.6 (11/11/2021)Validando a existência da proprieda owner_org do arquivo datapackage.jsonValidando a existência do valor da propriedade owner_org do arquivo datapackage.json na instância do CKAN desejada0.1.5 (11/11/2021)Melhoria de documentação click (--help)Inclusão de flag --stop para interromper execução em caso de falha de validação frictionless0.1.4 (08/11/2021)Separação pacotes de desenvolvimento (requirements.txt) de pacotes de utilização (setup.py)Inclusão frictionless validate como validações0.1.3 (20/10/2021)Erro de publicação desta versão0.1.2 (20/10/2021)Update python-dotenv0.1.1 (08/09/2021)Revisão documentação README.mdRevisão documentação docstringsRevisão estrutura testes0.1.0 (23/08/2021)Criação dos comandos cli para criação e atualização de datasetsCriação dos comandos cli para criação e atualização de recursosMelhoria da documentação0.0.1.9020 (09/06/2021)Publicação de documentação online do pacoteCorreção de bugs e exclusão de códigos repetidos ao longo do projeto0.0.1.9000 (06/05/2021)Lançamento primeira versão de teste do pacote