basedosdados / website Goto Github PK
View Code? Open in Web Editor NEW🖥 Website oficial da BD
Home Page: http://basedosdados.org
🖥 Website oficial da BD
Home Page: http://basedosdados.org
Preciso de um novo endpoint que:
Ex de Requisição:
/api/v3/bd_package_search?q=Vacinas&group=saude,vacina,brasil&spatial_coverage=country&temporal_coverage=2020,2021&order_by=recent&page=1
Ex de Resposta:
{
datasets: [...lista com os datasets paginados],
tags:[...lista com TODAS as tags junto com o número de datasets com aquela tag, mesmo dos datasets que não aparecem nessa paginação],
organizations:[...lista com TODAS as organizações, junto com o número de datasets da organização, mesmo dos datasets que não aparecem nessa paginação]
}
Endpoint com os nomes em português dos campos dos metadados.
Trazer dados do json schema, resposta pode ser por resource_type.
{
"package":{
"title": "Título",
},
"bdm_table":{
"title": "Título"
},
"external_link":{
"link": "Link",
}
}
basedosdados.org/dataset/a-shell-dataset-for-shell-features-extraction-and-recognition
basedosdados.org/dataset/amazonia-minada
basedosdados.org/dataset/anuario-brasileiro-de-seguranca-publica
basedosdados.org/dataset/arrecadacao-emissao-de-vistos-entre-2010-e-2019-por-posto
basedosdados.org/dataset/atlas-da-noticia
basedosdados.org/dataset/atlas-of-historical-county-boundaries
basedosdados.org/dataset/atlas-of-the-human-planet
basedosdados.org/dataset/authoritarian-ruling-elites-database-ared
basedosdados.org/dataset/autuacoes-ambientais-e-embargos
basedosdados.org/dataset/avaliacao-nacional-da-alfabetizacao
basedosdados.org/dataset/beneficios-do-instituto-nacional-de-seguro-social-inss
basedosdados.org/dataset/bolsa-familia
basedosdados.org/dataset/br-ana-atlas-esgotos
basedosdados.org/dataset/br-anvisa-medicamentos-industrializados
basedosdados.org/dataset/br-bd-diretorios-brasil
basedosdados.org/dataset/br-imprensa-nacional-dou
basedosdados.org/dataset/br-mc-auxilio-emergencial
basedosdados.org/dataset/br-rj-rio-de-janeiro-ipp-ips
basedosdados.org/dataset/census-of-fatal-occupational-injuries-cfoi
basedosdados.org/dataset/census-transportation-planning-products-ctpp
basedosdados.org/dataset/classificacao-de-genero-em-nomes-brasileiros
basedosdados.org/dataset/climate-divisional-database-nclimdiv
basedosdados.org/dataset/contratos-federais
basedosdados.org/dataset/convenios
basedosdados.org/dataset/culture-under-threat-map
basedosdados.org/dataset/dados-estatisticos-da-anac
basedosdados.org/dataset/despesas-publicas
basedosdados.org/dataset/devedores-da-uniao
basedosdados.org/dataset/documento-de-origem-florestal-dof
basedosdados.org/dataset/elas-no-congresso
basedosdados.org/dataset/estatisticas-de-comercio-exterior-do-agronegocio-brasileiro-agrostat
basedosdados.org/dataset/european-union-consolidated-financial-sanctions-list
basedosdados.org/dataset/favicons
basedosdados.org/dataset/global-carbon-budget
basedosdados.org/dataset/gridded-5km-ghcn-daily-temperature-and-precipitation-dataset-nclimgrid
basedosdados.org/dataset/immunization-vaccines-and-biologicals
basedosdados.org/dataset/letourdataset
basedosdados.org/dataset/levantamento-nacional-de-informacoes-penitenciarias-infopen
basedosdados.org/dataset/lista-de-cartorios
basedosdados.org/dataset/malha-municipal
basedosdados.org/dataset/mapa-das-organizacoes-da-sociedade-civil
basedosdados.org/dataset/member-states-of-the-united-nations
basedosdados.org/dataset/mprjmais
basedosdados.org/dataset/mundo-kaggle-olimpiadas
basedosdados.org/dataset/mundo-onu-adh
basedosdados.org/dataset/mundo-transfermarkt-competicoes
basedosdados.org/dataset/native-land-ca
basedosdados.org/dataset/notificacao-de-casos-de-doenca-pelo-coronavirus-2019-covid-19
basedosdados.org/dataset/oxford-covid-19-government-response-tracker-oxcgrt
basedosdados.org/dataset/portal-de-imigracao-laboral
basedosdados.org/dataset/posse-e-porte-de-arma-de-fogo
basedosdados.org/dataset/precos-medicamentos-consumidor
basedosdados.org/dataset/programa-de-fiscalizacao-em-entes-federativos
basedosdados.org/dataset/sistema-de-informacao-de-agravos-de-notificacao-sinan
basedosdados.org/dataset/terraclass
basedosdados.org/dataset/the-planetary-exploration-budget-dataset
basedosdados.org/dataset/united-nations-general-assembly-voting-data
basedosdados.org/dataset/a-shell-dataset-for-shell-features-extraction-and-recognition
basedosdados.org/dataset/atlas-of-the-human-planet
basedosdados.org/dataset/authoritarian-ruling-elites-database-ared
basedosdados.org/dataset/avaliacao-nacional-da-alfabetizacao
basedosdados.org/dataset/beneficios-do-instituto-nacional-de-seguro-social-inss
basedosdados.org/dataset/bolsa-familia
basedosdados.org/dataset/br-ana-atlas-esgotos
basedosdados.org/dataset/br-anvisa-medicamentos-industrializados
basedosdados.org/dataset/br-bd-diretorios-brasil
basedosdados.org/dataset/br-imprensa-nacional-dou
basedosdados.org/dataset/br-mc-auxilio-emergencial
basedosdados.org/dataset/br-mobilidados-indicadores
basedosdados.org/dataset/br-rj-rio-de-janeiro-ipp-ips
basedosdados.org/dataset/censo-anual-da-igreja-catolica
basedosdados.org/dataset/centennial-earthquake-catalog
basedosdados.org/dataset/classificacao-de-genero-em-nomes-brasileiros
basedosdados.org/dataset/climate-divisional-database-nclimdiv
basedosdados.org/dataset/crime-in-the-u-s
basedosdados.org/dataset/culture-under-threat-map
basedosdados.org/dataset/despesas-pela-cota-para-exercicio-da-atividade-parlamentar
basedosdados.org/dataset/devedores-da-uniao
basedosdados.org/dataset/elas-no-congresso
basedosdados.org/dataset/european-union-consolidated-financial-sanctions-list
basedosdados.org/dataset/global-atlas-for-renewable-energy
basedosdados.org/dataset/global-attitudes-on-abortion
basedosdados.org/dataset/gridded-5km-ghcn-daily-temperature-and-precipitation-dataset-nclimgrid
basedosdados.org/dataset/hate-crime-in-the-u-s
basedosdados.org/dataset/letourdataset
basedosdados.org/dataset/levantamento-nacional-de-informacoes-penitenciarias-infopen
basedosdados.org/dataset/malha-municipal
basedosdados.org/dataset/mapa-das-organizacoes-da-sociedade-civil
basedosdados.org/dataset/member-states-of-the-united-nations
basedosdados.org/dataset/mundo-kaggle-olimpiadas
basedosdados.org/dataset/mundo-onu-adh
basedosdados.org/dataset/mundo-transfermarkt-competicoes
basedosdados.org/dataset/native-land-ca
basedosdados.org/dataset/notificacao-de-casos-de-doenca-pelo-coronavirus-2019-covid-19
basedosdados.org/dataset/perfil-das-unidades-do-instituto-nacional-de-seguro-social-inss
basedosdados.org/dataset/portal-de-imigracao-laboral
basedosdados.org/dataset/precos-medicamentos-consumidor
basedosdados.org/dataset/sistema-de-informacao-de-agravos-de-notificacao-sinan
basedosdados.org/dataset/terraclass
basedosdados.org/dataset/the-geographic-diversity-project
basedosdados.org/dataset/the-xinjiang-data-project
basedosdados.org/dataset/u-s-law-enforcement-officers-killed-and-assaulted-leoka
basedosdados.org/dataset/united-nations-general-assembly-voting-data
basedosdados.org/group/educacao
Agora não está aparecendo em lugar nenhum os labels para chaves de available_options. Qual é a melhor solução pra isso, já vislumbrando suporte multi-língua no futuro?
Ideias:
basedosdados.org/dataset/a-shell-dataset-for-shell-features-extraction-and-recognition
basedosdados.org/dataset/atlas-of-the-human-planet
basedosdados.org/dataset/authoritarian-ruling-elites-database-ared
basedosdados.org/dataset/avaliacao-nacional-da-alfabetizacao
basedosdados.org/dataset/beneficios-do-instituto-nacional-de-seguro-social-inss
basedosdados.org/dataset/bolsa-familia
basedosdados.org/dataset/br-ana-atlas-esgotos
basedosdados.org/dataset/br-anvisa-medicamentos-industrializados
basedosdados.org/dataset/br-bd-diretorios-brasil
basedosdados.org/dataset/br-imprensa-nacional-dou
basedosdados.org/dataset/br-me-caged
basedosdados.org/dataset/br-mobilidados-indicadores
basedosdados.org/dataset/br-rj-rio-de-janeiro-ipp-ips
basedosdados.org/dataset/centennial-earthquake-catalog
basedosdados.org/dataset/classificacao-de-genero-em-nomes-brasileiros
basedosdados.org/dataset/climate-divisional-database-nclimdiv
basedosdados.org/dataset/crime-in-the-u-s
basedosdados.org/dataset/culture-under-threat-map
basedosdados.org/dataset/despesas-pela-cota-para-exercicio-da-atividade-parlamentar
basedosdados.org/dataset/devedores-da-uniao
basedosdados.org/dataset/elas-no-congresso
basedosdados.org/dataset/european-union-consolidated-financial-sanctions-list
basedosdados.org/dataset/global-atlas-for-renewable-energy
basedosdados.org/dataset/global-attitudes-on-abortion
basedosdados.org/dataset/gridded-5km-ghcn-daily-temperature-and-precipitation-dataset-nclimgrid
basedosdados.org/dataset/hate-crime-in-the-u-s
basedosdados.org/dataset/letourdataset
basedosdados.org/dataset/levantamento-nacional-de-informacoes-penitenciarias-infopen
basedosdados.org/dataset/malha-municipal
basedosdados.org/dataset/mapa-das-organizacoes-da-sociedade-civil
basedosdados.org/dataset/meteoritical-bulletin-database
basedosdados.org/dataset/mundo-kaggle-olimpiadas
basedosdados.org/dataset/mundo-onu-adh
basedosdados.org/dataset/mundo-transfermarkt-competicoes
basedosdados.org/dataset/native-land-ca
basedosdados.org/dataset/notificacao-de-casos-de-doenca-pelo-coronavirus-2019-covid-19
basedosdados.org/dataset/occupied-palestinian-territory
basedosdados.org/dataset/perfil-das-unidades-do-instituto-nacional-de-seguro-social-inss
basedosdados.org/dataset/portal-de-imigracao-laboral
basedosdados.org/dataset/precos-medicamentos-consumidor
basedosdados.org/dataset/sistema-de-informacao-de-agravos-de-notificacao-sinan
basedosdados.org/dataset/terraclass
basedosdados.org/dataset/the-geographic-diversity-project
basedosdados.org/dataset/the-xinjiang-data-project
basedosdados.org/dataset/u-s-law-enforcement-officers-killed-and-assaulted-leoka
basedosdados.org/dataset/united-nations-general-assembly-voting-data
basedosdados.org/group/educacao
basedosdados.org/dataset/a-shell-dataset-for-shell-features-extraction-and-recognition
basedosdados.org/dataset/atlas-of-the-human-planet
basedosdados.org/dataset/authoritarian-ruling-elites-database-ared
basedosdados.org/dataset/avaliacao-nacional-da-alfabetizacao
basedosdados.org/dataset/beneficios-do-instituto-nacional-de-seguro-social-inss
basedosdados.org/dataset/bolsa-familia
basedosdados.org/dataset/br-ana-atlas-esgotos
basedosdados.org/dataset/br-anvisa-medicamentos-industrializados
basedosdados.org/dataset/br-imprensa-nacional-dou
basedosdados.org/dataset/br-mc-auxilio-emergencial
basedosdados.org/dataset/br-rj-rio-de-janeiro-ipp-ips
basedosdados.org/dataset/centennial-earthquake-catalog
basedosdados.org/dataset/classificacao-de-genero-em-nomes-brasileiros
basedosdados.org/dataset/climate-divisional-database-nclimdiv
basedosdados.org/dataset/crime-in-the-u-s
basedosdados.org/dataset/culture-under-threat-map
basedosdados.org/dataset/dados-estatisticos-da-anac
basedosdados.org/dataset/despesas-pela-cota-para-exercicio-da-atividade-parlamentar
basedosdados.org/dataset/devedores-da-uniao
basedosdados.org/dataset/elas-no-congresso
basedosdados.org/dataset/european-union-consolidated-financial-sanctions-list
basedosdados.org/dataset/global-atlas-for-renewable-energy
basedosdados.org/dataset/global-attitudes-on-abortion
basedosdados.org/dataset/gridded-5km-ghcn-daily-temperature-and-precipitation-dataset-nclimgrid
basedosdados.org/dataset/hate-crime-in-the-u-s
basedosdados.org/dataset/letourdataset
basedosdados.org/dataset/levantamento-nacional-de-informacoes-penitenciarias-infopen
basedosdados.org/dataset/malha-municipal
basedosdados.org/dataset/mapa-das-organizacoes-da-sociedade-civil
basedosdados.org/dataset/member-states-of-the-united-nations
basedosdados.org/dataset/mprjmais
basedosdados.org/dataset/mundo-kaggle-olimpiadas
basedosdados.org/dataset/mundo-onu-adh
basedosdados.org/dataset/mundo-transfermarkt-competicoes
basedosdados.org/dataset/native-land-ca
basedosdados.org/dataset/notificacao-de-casos-de-doenca-pelo-coronavirus-2019-covid-19
basedosdados.org/dataset/perfil-das-unidades-do-instituto-nacional-de-seguro-social-inss
basedosdados.org/dataset/portal-de-imigracao-laboral
basedosdados.org/dataset/precos-medicamentos-consumidor
basedosdados.org/dataset/sistema-de-informacao-de-agravos-de-notificacao-sinan
basedosdados.org/dataset/soccer-match-event-dataset
basedosdados.org/dataset/terraclass
basedosdados.org/dataset/the-geographic-diversity-project
basedosdados.org/dataset/the-xinjiang-data-project
basedosdados.org/dataset/u-s-law-enforcement-officers-killed-and-assaulted-leoka
basedosdados.org/dataset/united-nations-general-assembly-voting-data
basedosdados.org/organization/instituto-brasileiro-de-geografia-e-estatistica
Tabela com organizações e usos mapeados: https://docs.google.com/spreadsheets/d/1myjlqEmyv5aEe20PO_lLJxr4uU_XNHYwSM0CoMIxoRg/edit#gid=0
De um jeito sem revelar informações privadas.
Para a construção da feature de criação dos metadados via CLI e API em Python, é preciso comparar os arquivos locais do usuário com os dados do CKAN para saber se o usuário está editando um arquivo de metadados atualizado. No entanto, os endpoints do schema
dos metadados atuais do website não retornam o campo metadata_modified
, inviabilizando a operação.
Para resolver isso, é preciso que os enpoints bd_dataset_schema
e bd_bdm_columns_schema
retornem o campo metadata_modified
com um subcampo yaml_order
no campo properties
, para que ele seja incorporado na criação do YAML
local e, assim, possa acontecer a comparação com os dados do CKAN via package_show
.
E depois disso alterar a parte do isort
da action de continuous integration de
python -m isort --check-only --profile black --skip __init__.py --skip vendor .
para
python -m isort --check-only --profile black --skip vendor .
Após a resolução definitiva do problema de redirect do staging (@brenodega28) vale validar todos os pacotes e reativar a opcao Extra.forbid
no ckan_default
Exemplo de pacote que está com problema: pesquisa-mensal-de-empregos-pme
o campo license_url
caiu na ultima versão dos metadados
Proposta de campos para serem exibidos e a ordem na caixa de metadados de cada objeto. O que eu não mostraria dos campos do backend eu simplesmente excluí da lista.
Descrição
O JSON Schema produzido como resposta nos endpoints bd_dataset_schema
e bd_bdm_table_schema
do website/CKAN está ordenado de forma inconsistente, impossibilitando uma geração correta dos YAMLs por parte da API CLI/Python. Esse erro é capturado com as seguintes mensagens:
basedosdados.exceptions.BaseDosDadosException: "Inconsistent YAML ordering: download_type is pointed to by metadata_modified but doesn't have itself a `yaml_order` field in the JSON Schema."
basedosdados.exceptions.BaseDosDadosException: "Inconsistent YAML ordering: github_url is pointed to by partitions but doesn't have itself a `yaml_order` field in the JSON Schema."
O campo metadata_modified
dos metadados de datasets aponta como id_after
o download_type
, mas o download_type
não tem um campo yaml_order
, o que o deixa de fora da lista de campos a serem inseridos no YAML, o que quebra a linked list de geração dos YAMLs. O mesmo acontece com o gihub_url
e partitions
no endpoint de metadados de tabelas. Seria preciso investigar se há outros campos sem yaml_order
, já que atualmente a Exception
só captura os primeiros erros que quebram a corrente.
Reproduzir
Passos para reproduzir o comportamento:
bd_dataset_schema
ou bd_bdm_table_schema
basedosdados metadata create dataset1
Comportamento esperado
O YAML é gerado a partir de um JSON Schema com yaml_order
consistente.
Ambiente
basedosdados
versão da branch add_validate_module_2
/ endpoints do staging
Queremos mostrar outros campos, e.g. país, cobertura temporal, bigquery, língua, etc.
Puxar infos da documentação na página de redirecionamento para o BigQuery
URGENTE:
deploy
, está quebrado desde que lançamos? https://github.com/basedosdados/website/deployments/activity_logexit code 1
para outra coisa menos agressiva), senão não da para ler os erros nem logsOutros:
Olá, todo mundo. Não sei se é o local ideal para reportar esse erro e não conheço a estrutura do CKAN para fazer a correção.
Em todas as páginas que eu visitei de tabelas de datatasets BD+, a primeira frase, que apresenta a tabela, tem um erro de digitação:
Nós tratamentos e disponibilizamos esta tabela no nosso datalake público (...)
Simplesmente alterar para:
Nós tratamos (...)
Por favor desconsiderem se eu estiver postando no local errado e obrigado pela atenção.
Botar links para lista de enums com chaves em inglês.
Quando mudo o tipo de download da base https://basedosdados.org/dataset/br-denatran-frota
de "link externo" para "bdm", ele permite atualizar mas não atualiza de fato no banco (nem aparece a logo BD+ na base).
openapi
para docs-api
basedosdados
--> develop --> localhostInformações necessárias da base de dados para os pontos 1 e 2:
temporal_coverage
ser uma lista de intervalosspatial_coverage
ser uma árvore com metadados tipo id_municipio
Via comentários do Fred em arquivos diversos
O arquivo já está em website/ckanext-basedosdados/ckanext/basedosdados/public/images/bd_logo_horizontal.png
.
Falta fazer aparecer na home.
Ao enviar um data_dict
idêntico ao JSON retornado pelo package_show
(id=br-ibge-pib
) para o package_validate
, recebo o seguinte erro no cliente do Python:
CKANAPIError: ['http://0.0.0.0:5000/api/action/package_validate', 500, '{"help": "http://3.87.150.32/api/3/action/help_show?name=package_validate", "error": {"__type": "Internal Server Error", "message": "Internal Server Error"}, "success": false}']
E no log servidor web do website eu recebo o seguinte erro:
2021-09-06 22:03:56,451 ERROR [ckan.views.api] dict() got multiple values for keyword argument 'dataset_id'
Traceback (most recent call last):
File "/venv/lib/python3.9/site-packages/ckan/config/middleware/../../views/api.py", line 291, in action
result = function(context, request_data)
│ │ └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
│ └ {'model': <module 'ckan.model' from '/venv/lib/python3.9/site-packages/ckan/model/__init__.py'>, 'session': <sqlalchemy.orm.scop...
└ <function get_action.<locals>.make_wrapped.<locals>.wrapped at 0x7f77d48e7c10>
File "/venv/lib/python3.9/site-packages/ckan/logic/__init__.py", line 473, in wrapped
result = _action(context, data_dict, **kw)
│ │ │ └ {}
│ │ └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
│ └ {'model': <module 'ckan.model' from '/venv/lib/python3.9/site-packages/ckan/model/__init__.py'>, 'session': <sqlalchemy.orm.scop...
└ <function package_validate at 0x7f77d4312d30>
File "/app/ckanext-basedosdados/ckanext/basedosdados/actions/__init__.py", line 36, in package_validate
data, errors = lib_plugins.plugin_validate(
File "/venv/lib/python3.9/site-packages/ckan/lib/plugins.py", line 302, in plugin_validate
result = plugin.validate(context, data_dict, schema, action)
│ │ │ │ └ 'package_create'
│ │ │ └ {'__before': [<function duplicate_extras_key at 0x7f77d79d7700>, <function ignore at 0x7f77d48c7dc0>], 'id': [<function empty_if...
│ │ └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
│ └ {'model': <module 'ckan.model' from '/venv/lib/python3.9/site-packages/ckan/model/__init__.py'>, 'session': <sqlalchemy.orm.scop...
└ <Plugin BasedosdadosPlugin 'basedosdados'>
File "/app/ckanext-basedosdados/ckanext/basedosdados/plugin.py", line 28, in validate
out, errors = {
File "/app/ckanext-basedosdados/ckanext/basedosdados/plugin.py", line 58, in _validate_create
out = self._validate_pydantic(data_dict, action)
│ │ └ 'package_create'
│ └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
└ <Plugin BasedosdadosPlugin 'basedosdados'>
File "/app/ckanext-basedosdados/ckanext/basedosdados/plugin.py", line 106, in _validate_pydantic
data_model = dict(**data_dict, **dataset_args)
│ └ {'dataset_id': 'br_ibge_pib'}
└ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
TypeError: dict() got multiple values for keyword argument 'dataset_id'
Os mesmos errors acontecem no cliente Python e no servidor web ao tentar publicar modificações dos metadados via package_patch
.
O data_dict
passo para API do CKAN é o seguinte:
{'id': '9ffa2eb2-3119-45f1-9353-7c279f1613e9',
'name': 'br-ibge-pib',
'title': 'Produto Interno Bruto do Brasil',
'type': 'dataset',
'notes': 'Um sistema de indicadores municipais com informações econômicas e sociais é importante instrumento para o planejamento de políticas públicas. Com a promulgação da Constituição Federal de 1988, que deu mais responsabilidade e autonomia aos municípios, ampliaram-se as demandas por informações econômicas padronizadas e comparáveis em nível municipal, tanto por parte de agentes públicos e privados, quanto por estudiosos da economia, e pela sociedade em geral. os resultados do PIB dos Municípios permitem identificar as áreas de geração de renda, produzindo informações que captam as especifidades do País.Dados sobre Produto Interno Bruto do IBGE.\nDados sobre Produto Interno Bruto do IBGE.\n',
'author': None,
'author_email': None,
'maintainer': None,
'maintainer_email': None,
'state': 'active',
'license_id': '',
'url': 'https://sidra.ibge.gov.br/pesquisa/pib-munic',
'version': None,
'metadata_created': '2019-09-17T17:05:24.772484',
'metadata_modified': '2021-08-17T04:01:25.334011',
'creator_user_id': '27eaffe3-f79b-469f-8f02-4716146bdfcc',
'private': False,
'license_title': '',
'num_resources': 3,
'resources': [{'id': '2fa7cf39-5a8c-4e9f-87d1-297f85c98371',
'name': 'Baixar (Link Externo)',
'description': '',
'position': 0,
'url': 'https://sidra.ibge.gov.br/pesquisa/pib-munic/tabelas',
'cache_last_updated': None,
'cache_url': None,
'created': '2019-09-17T17:05:51.164381',
'datastore_active': False,
'format': '',
'hash': '',
'last_modified': None,
'metadata_modified': '2021-08-11T01:23:07.893966',
'mimetype': None,
'mimetype_inner': None,
'package_id': '9ffa2eb2-3119-45f1-9353-7c279f1613e9',
'size': None,
'state': 'active',
'url_type': None,
'resource_type': 'external_link',
'language': ['portuguese'],
'has_structured_data': None,
'has_api': None,
'is_free': 'yes',
'requires_registration': 'no',
'country_ip_address_required': None,
'license': 'mit',
'temporal_coverage': [2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017],
'update_frequency': 'one_year',
'formato': ''},
{'id': '29f1c4e5-5932-4a6b-8b1f-f8b0bd91a200',
'name': 'municipio',
'description': 'Produto Interno Bruto (PIB) municipal a preços correntes.\n',
'position': 1,
'url': '',
'cache_last_updated': None,
'cache_url': None,
'created': '2020-10-13T18:32:26.189478',
'datastore_active': False,
'format': '',
'hash': '',
'last_modified': None,
'metadata_modified': '2021-08-17T04:01:25.346852',
'mimetype': None,
'mimetype_inner': None,
'package_id': '9ffa2eb2-3119-45f1-9353-7c279f1613e9',
'size': None,
'state': 'active',
'url_type': '',
'resource_type': 'bdm_table',
'dataset_id': 'br_ibge_pib',
'table_id': 'municipio',
'spatial_coverage': 'bra',
'temporal_coverage': [2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018],
'update_frequency': 'one_year',
'entity': ['municipality'],
'identifying_columns': ['id_municipio', 'ano'],
'version': 'v1.0',
'published_by': {'name': 'Ricardo Dahis',
'email': '[email protected]',
'github_user': None,
'website': 'www.ricardodahis.com',
'ckan_user': None},
'data_cleaned_by': {'name': 'Ricardo Dahis',
'email': '[email protected]',
'github_user': None,
'ckan_user': None,
'website': None,
'code_url': 'https://github.com/basedosdados/mais/tree/master/bases/br_ibge_pib/code'},
'data_cleaning_description': 'Mudamos a unidade de medida para R$1.\n',
'auxiliary_files_url': '',
'source_bucket_name': 'basedosdados-dev',
'project_id_prod': 'basedosdados-dev',
'project_id_staging': 'basedosdados-dev',
'partitions': '',
'bdm_file_size': None,
'columns': [{'name': 'id_municipio',
'description': 'ID Município - IBGE 7 Dígitos',
'is_in_staging': True,
'is_partition': False},
{'name': 'ano',
'description': 'Ano',
'is_in_staging': True,
'is_partition': False},
{'name': 'pib',
'description': 'Produto Interno Bruto a preços correntes',
'is_in_staging': True,
'is_partition': False},
{'name': 'impostos_liquidos',
'description': 'Impostos, líquidos de subsídios, sobre produtos a preços correntes',
'is_in_staging': True,
'is_partition': False},
{'name': 'va',
'description': 'Valor adicionado bruto a preços correntes total',
'is_in_staging': True,
'is_partition': False},
{'name': 'va_agropecuaria',
'description': 'Valor adicionado bruto a preços correntes da agropecuária',
'is_in_staging': True,
'is_partition': False},
{'name': 'va_industria',
'description': 'Valor adicionado bruto a preços correntes da indústria',
'is_in_staging': True,
'is_partition': False},
{'name': 'va_servicos',
'description': 'Valor adicionado bruto a preços correntes dos serviços, exclusive administração, defesa, educação e saúde públicas e seguridade social',
'is_in_staging': True,
'is_partition': False},
{'name': 'va_adespss',
'description': 'Valor adicionado bruto a preços correntes da administração, defesa, educação e saúde públicas e seguridade social',
'is_in_staging': True,
'is_partition': False}]},
{'id': '297f5f2f-c5eb-4adb-94e0-b3d630f20ede',
'name': 'Visualizar',
'description': None,
'position': 2,
'url': 'https://www.ibge.gov.br/explica/pib.php',
'cache_last_updated': None,
'cache_url': None,
'created': '2021-08-16T23:36:44.072002',
'format': '',
'hash': '',
'last_modified': None,
'metadata_modified': '2021-08-16T23:36:44.064040',
'mimetype': None,
'mimetype_inner': None,
'package_id': '9ffa2eb2-3119-45f1-9353-7c279f1613e9',
'size': None,
'state': 'active',
'url_type': None,
'resource_type': 'external_link',
'dataset_id': 'br_ibge_pib',
'language': ['portuguese'],
'has_api': 'no',
'is_free': 'yes',
'requires_registration': 'no',
'availability': 'online',
'country_ip_address_required': None,
'license': 'mit'}],
'groups': [{'id': '52e4efe1-c527-4446-88dc-33ec9af7abb8',
'name': 'economia',
'title': 'Economia',
'type': 'group',
'description': '',
'image_url': '2019-09-19-055720.95356961SjkfwyNTL.png',
'created': '2019-09-17T04:33:42.307242',
'is_organization': False,
'approval_status': 'approved',
'state': 'active',
'capacity': 'public',
'display_name': 'Economia',
'image_display_url': 'http://3.87.150.32/uploads/group/2019-09-19-055720.95356961SjkfwyNTL.png'}],
'owner_org': 'b82f9164-33eb-4e10-9c26-8c99e4591db3',
'organization': {'id': 'b82f9164-33eb-4e10-9c26-8c99e4591db3',
'name': 'instituto-brasileiro-de-geografia-e-estatistica',
'title': 'Instituto Brasileiro de Geografia e Estatística (IBGE)',
'type': 'organization',
'description': 'www.ibge.gov.br',
'image_url': '2019-09-19-153117.558371IBGE.png',
'created': '2019-09-14T20:59:07.312684',
'is_organization': True,
'approval_status': 'approved',
'state': 'active'},
'num_tags': 3,
'tags': [{'id': '76afbcbc-d493-4508-be69-933ffb7c69ae',
'name': 'PIB',
'vocabulary_id': None,
'state': 'active',
'display_name': 'PIB'},
{'id': '99df6909-4c0e-43fa-af10-afcccc8a035c',
'name': 'crescimento',
'vocabulary_id': None,
'state': 'active',
'display_name': 'crescimento'},
{'id': '347907c3-92c3-45c9-9fcd-080fcd5e383f',
'name': 'renda',
'vocabulary_id': None,
'state': 'active',
'display_name': 'renda'}],
'relationships_as_object': [],
'relationships_as_subject': [],
'dataset_id': 'br_ibge_pib',
'isopen': False,
'extras': [{'key': 'dataset_args', 'value': {'dataset_id': 'br_ibge_pib'}}]}
Após subir o website localmente na branch develop
, rode o seguinte código:
from ckanapi import RemoteCKAN
import requests
CKAN_URL = "http://0.0.0.0:5000"
ckan = RemoteCKAN(
CKAN_URL,
user_agent="",
apikey=None
)
pib = requests.get('http://0.0.0.0:5000/api/3/action/package_show?id=br-ibge-pib').json()['result']
validate = ckan.action.package_validate(**pib)
Decidir:
resource_type
(@brenodega28)https://storage.googleapis.com/basedosdados-public/one-click-download/{dataset_id}/{table_id}.zip
title
que está null em alguns datasets (@vncsna #88)resource_type
. (@vncsnabd_dataset_search
o número de aparições de cada forma de donwload: BD Mais e Link Externobdm_table
na ordem dos conjuntosPontos relevantes da entrevista:
Filtros:
Conjuntos:
Outra mudança que temos que fazer é retirar itens de última atualização, pois existem alguns problemas:
Logo, o que devemos fazer:
Pontos da entrevista com o Fernando Barbalho:
Usar o dataset_id
do resource
:
dataset_id
Quando há não há sucesso na validação dos metadados, o endpoint package_validate
não levanta a exceção ValidationError
, embora ela seja definida no início do código:
Talvez o levantamento da exceção seja mais interessante para o uso do package_validate
pelo cliente Python/CLI basedosdados
, para não termos que parsear o resultado do endpoint e, possivelmente, quebrar o código com alguma mudança futura na estrutura da resposta da API, embora isso não seja tão provável, por ser uma resposta simples.
Estrutura de pastas do validation
:
package
ckan_default_package
dataset [dataset.yaml]
resource
ckan_default_resource
bdm
table [table.yaml]
columns [table.yaml]
dictionary
information_request
external_link [dataset.yaml]
Hoje os secrets e credenciais estao espalhados em diversos arquivos e lugares: prod_ckan_ini, .env.prod. Senhas de acessos como emails ou acessos pra ferramentas de terceiros estao centralizadas com pessoas especificas (DNS esta com o @rdahis, por exemplo).
Isso cria bottlenecks e riscos de inconsistencia pois, se alguem precisar atualizar o .env.prod, por exemplo, vai precisar falar com o @polvoazul, ou no minimo, informa-lo de atualizar tambem na sua maquina.
Definir [uma ferramenta/um processo] de gestao de secrets para o basedosdados.
1- Barato/Free, considerando um numero de usuarios de approx 10 pessoas.
2- Suporte a secrets de uma linha so (como senhas). Suporte a arquivos (prod_ckan_ini).
3- Autorizacao flexivel: pessoas diferentes podem ter acessos a grupos de senhas diferentes.
4- Interface humana de facil uso: uma interface grafica tranquila da galera cadastrar e editar secrets
5- Interface programatica: Ex.: o github CI conseguir acessar os secrets necessarios para o deploy diretamente do manager, assim nao corremos risco de inconsistencia.
Criar algum teste que faça o check do forms, inicialmente pode ser um teste que cheque se os imports necessaios para rodar os forms estão funcionando. Os testes ficam em /ckanext-basedosdados/ckanext/basedosdados/tests
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.