mais
mais copied to clipboard
[Infra] Version 2.0.0b15
Version 2.0.0b15 - Release Changelog
Added
- Now divided the package into four extras for easier installation:
pip install basedosdados: Installs the core package.pip install basedosdados[upload]: Installs modules for interacting with the backend.pip install basedosdados[avro]: Installs modules for working with Avro.pip install basedosdados[cli]: Installs modules for using the command-line interface.pip install basedosdados[all]: Installs all modules.
- Added suport to biglake tables
- Added
connection_idproperty to external data configuration. - Implemented automatic management of BigQuery connection.
- Added
service_accountproperty to Connection. - Introduced backend class for handling interaction with GraphQL.
- Added support for CSV delimiter customization with
csv_delimiter - Added new parameter
csv_skip_leading_rowsandcsv_allow_jagged_rowsfor handling CSV parsing. - Add new scopes to credentials: drive and bigquery
Fixed
- Fixed datatype issues by adding connection ID for external configuration.
- Improved error handling and optional setting of BigQuery permissions.
Changed
- Refactored dependency management for improved performance.
- Cleaned up code and linting issues.
Removed
- Removed unnecessary dependencies and compressed R package.
Deprecated
- Deprecated usage of YAML dependency from metadata handling.
- CLI suport to upload methods
To-do
- [ ] Tests
- [ ] Docs
- [ ] Revisar testes que usam YAML
- [ ] melhorar descrição do dataset e table, incluindo mais metadados
- [x] descontinuar CLI?
- [x] remover referencias a pasta
templates - [x] Adicionar original_name para modelo columns?
- [x] Como triggrar actions para atualizar a tabela
project_id.dataset_id.table_idque ja existe em dev? talvez branch name? Criar arquivo com esses parametros e last_update, talvez usar esse last_update para tambem criar mutation que atualiza esse campo na API. https://miro.com/app/board/uXjVMfYoD1I=/ - [x] Revisar as menções a YAML em
basedosdados/cli/cli.py - [x] Remover o método
_load_yamlembasedosdados/upload/base.py - [x] Revisar a construção da URL do GraphQL no
Base.__init__embasedosdados/upload/base.py - [x] Revisar o conteúdo do README no
Dataset._write_readme_file(basedosdados/upload/dataset.py) - [x] Implementar
Metadata.createe remover try/except doDataset.init(basedosdados/upload/dataset.py) - [x] Revisar
Table._load_schema,Table._make_publish_sql,Table.init,Table.publish(basedosdados/upload/table.py) - [x] Descontinuar
Table.update_columns(basedosdados/upload/table.py)? - [x] Descontinuar
update_columns(basedosdados/upload/utils.py)?
Mapeamento dos YAML no pacote
- Config
- [x] 1. Alterar o template do
config.toml - [x] 2. Alterar os templates da configuração
- [x] 3. Alterar, se necessário, o processo de inicialização
- [x] 1. Alterar o template do
- Dataset
- [x] 1. init: cria um objeto
Metadataemself.metadata - [x] 2. dataset_config: carrega os metadados do yaml
- [x] 3. _setup_dataset_object: atualizar a descrição (.txt) para o bigquery
- [x] 4. _write_readme_file: gera o [README.md](http://README.md)
- [x] 5. init: cria ou substitui o arquivo yaml do dataset
- [x] 1. init: cria um objeto
- Table
- [x] 1. init: cria um objeto
Metadataemself.metadata - [x] 2. table_config: carrega os metadados do yaml
- [x] 3. _is_partitioned: verifica se a tabela é particionada pelos dados do yaml (campos de particionamento)
- [x] 4. _load_schema: gera o json do schema da tabela e envia para o BQ
- [x] 5. _make_publish_sql: cria o arquivo
publish.sqlbaseado no yaml e salva na pasta da tabela - [x] 6. _make_template: cria o arquivo yaml e o
publish.sql - [x] 7. update_columns: carrega os metadados do arquivo yaml, lê a planilha de arquitetura (google sheets ou arquivo csv, xls, xlsx, xlsm, xlsb, odf, ods, odt), insere em
colse salva o arquivo yaml com as colunas - [x] 8. init: gera os arquivos de configuração (
table_config.yamlepublish.sql) com base em um sample dos arquivos de dados e, caso exista uma planilha de arquitetura, atualiza as colunas com base nela - [x] 9. create: cria a tabela no BQ e chama o init para gerar os arquivos de configuração
- [x] 10. update: atualiza o schema do BQ, usando os metadados para renderizar o arquivo .txt de descrição da tabela
- [x] 11. publish: cria a tabela em produção no BQ, usando o
publish.sqlpara criar aviewatual.
- [x] 1. init: cria um objeto
- Base
- [x] 1. _load_yaml: método responsável por carregar os dados dos arquivos yaml
Workflow
-
Table.create
- staging
- publish.sql: usa dados do csv para criar a view em que todas as colunas são string
- schema-staging.json: td como string
- staging
-
Se tabela n existe na API
- raise: direciona para formulário de criação de metadados
-
Se tabela já existe,
- Usa dados da API para preencher os arquivos necessários
- atualiza publish.sql
- atualiza schema-staging.json
- cria schema-prod.json
- cria table_description.txt
- Usa dados da API para preencher os arquivos necessários