Metadata-Version: 2.4
Name: aibox-data-lake
Version: 1.2.0
Summary: AiBox Data Lake Toolkit.
Author: AiBox Lab
Maintainer-email: Moésio Filho <moesio.f@gmail.com>
Project-URL: Homepage, https://aiboxlab.org/data-lake
Project-URL: Documentation, https://aiboxlab.org/data-lake
Project-URL: Repository, https://github.com/aiboxlab/data-lake
Project-URL: Issues, https://github.com/aiboxlab/data-lake/issues
Project-URL: Changelog, https://github.com/aiboxlab/data-lake/blob/main/CHANGELOG.md
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Development Status :: 3 - Alpha
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: google-cloud-storage<4,>=3.3.1
Requires-Dist: ibis-framework[duckdb]<12,>=11.0.0
Requires-Dist: pandas<3,>=2.3.2
Requires-Dist: platformdirs<5,>=4.4.0
Requires-Dist: pyarrow<22,>=21.0.0
Requires-Dist: pydantic<3,>=2.11.7
Requires-Dist: pydantic-settings<3,>=2.10.1
Requires-Dist: rich<15,>=14.1.0
Requires-Dist: smart-open[all]<8,>=7.3.1
Requires-Dist: tqdm>=4.67.2
Requires-Dist: typer<1,>=0.17.4
Requires-Dist: uv<1,>=0.8.15
Dynamic: license-file

<h1 align="center">
  <br>
  <a href="https://aiboxlab.org/en/"><img src="https://aiboxlab.org/img/logo-aibox.png" alt="AiBox Lab" width="200"></a>
  <br>
  aibox-data-lake
  <br>
</h1>

<h4 align="center">AiBox Data Lake Toolkit.</h4>


[![Python](https://img.shields.io/pypi/pyversions/aibox-data-lake.svg)](https://badge.fury.io/py/aibox-data-lake)
[![PyPI](https://badge.fury.io/py/aibox-data-lake.svg)](https://badge.fury.io/py/aibox-data-lake)

# Quickstart

O AiBox Data Lake Toolkit é uma biblioteca enxuta que fornece acesso uniforme a Data Lakes em provedores de nuvem (e.g., GCP). Essa biblioteca foi desenvolvida para uso interno, mas grande parte do código-fonte e dos padrões adotados são comuns e podem ser aplicados a outros contextos.

A biblioteca pode ser instalada usando o seu gerenciador de pacotes preferido:

```sh
uv add aibox-data-lake
uv pip install aibox-data-lake
pip install aibox-data-lake
```

Depois de instalada, a biblioteca pode ser configurada através do `aibox-dl config`. A biblioteca fornece um registro simples de buckets, que associa a URL de um bucket (e.g., `gs://my-bucket`) a um nome (e.g., `bronze`). As credenciais da nuvem devem ser configuradas pelas bibliotecas cliente do provedor (e.g., `google-cloud-storage`, `boto3`). A CLI também oferece outros recursos, como listagem de objetos e leitura de metadados de datasets.

Também é possível utilizar a biblioteca com a URL do bucket diretamente, sem a necessidade de configuração extra.

A principal classe para acesso e manipulação programática do Data Lake é a [aibox.data_lake.Client](./src/aibox/data_lake/client.py). Essa classe fornece métodos para operações comuns no Data Lake, como leitura de arquivos específicos ou carregamento de datasets. Exemplo de uso:

```python
from aibox.data_lake import Client

# Load the configuration and authenticates
#   to the cloud providers.
client = Client()

# List all objects on a bucket
client.list_objects("<bucket-name>")

# Loads a structured data source (e.g.,
#   .parquet, .csv).
ds = client.get_tabular_dataset("<bucket-name>", "<dataset-prefix>")

# A structured data source can be easily
#   loaded to a DataFrame
ds.to_frame()
```
