XploreDS
Biblioteca Python e cookbook para experimentos em Data Science
Estrutura
src/xploreds/ → biblioteca (publicavel no PyPI)
cookbook/ → scripts e receitas locais
tests/ → testes automatizados
Módulos da biblioteca (src/xploreds/)
Pacotes por domínio; cada módulo segue o prefixo xds_ (Xplore Data Science).
| Pacote | Arquivo | Responsabilidade |
|---|---|---|
io |
xds_file.py |
Pastas, JSON e persistência de pandas (Parquet, Excel, etc.) |
log |
xds_log.py |
Logging estruturado, runs em runs/ e perfil de ambiente |
utils |
xds_environment.py |
Localizar a raiz do projeto (pyproject.toml) |
utils |
xds_memory.py |
Conversão de tamanhos de memória (KB, MB, GB, …) |
datetime |
xds_date_time.py |
Parsing, timezone e features temporais |
data_handle |
xds_dataframe_pandas.py |
Criação, validação e manipulação de DataFrames |
data_analysis |
xds_eda.py |
Exploração inicial e perfil do dataset |
data_analysis |
xds_stats.py |
Testes, distribuições e resumos estatísticos |
data_analysis |
xds_quality.py |
Schema, completude, consistência e integridade |
data_analysis |
xds_outliers.py |
Detecção e tratamento de outliers |
data_analysis |
xds_drift.py |
Drift de features e alvo entre bases ou no tempo |
data_transformation |
xds_categorical_encoding.py |
Encoding categórico (one-hot, ordinal, etc.) |
data_transformation |
xds_scaling.py |
Normalização e scaling de features numéricas |
data_transformation |
xds_missing_inputation.py |
Detecção e imputação de missing values |
data_transformation |
xds_datetime_encoding.py |
Extração e encoding de features de data/hora |
data_visualization |
xds_plotly.py |
Gráficos interativos com Plotly |
models |
xds_linear_regression.py |
Treino, predição e avaliação — regressão linear |
models |
xds_logistic_regression.py |
Treino, predição e avaliação — regressão logística |
models |
xds_evaluate_model.py |
Métricas, matriz de confusão e diagnósticos |
models |
xds_model.py |
Contratos genéricos de modelo (em construção) |
features |
xds_features.py |
Feature engineering (em construção) |
Configuração do ambiente
Este projeto usa uv para ambientes e dependencias.
Nao use requirements.txt nem pip install — tudo fica em pyproject.toml + uv.lock.
1. Instalar uv
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Inicializar ambiente do projeto
Na raiz do repositorio (onde esta o pyproject.toml):
uv sync --all-groups
O uv sync cria .venv/, instala as dependencias fixadas em uv.lock e registra xploreds em modo editavel apontando para src/xploreds/.
Para criar um projeto Python novo com uv (fora deste repo):
uv init --python 3.12
uv add pandas # exemplo: adiciona dependencia e atualiza pyproject.toml + uv.lock
uv sync
3. Notebooks sem output no Git (nbstripout)
Este repo nao usa o pacote pre-commit para notebooks. A limpeza e feita pelo filtro Git do nbstripout (ja dependencia em pyproject.toml).
Uma vez por clone (depois de uv sync), na raiz do repo:
uv run nbstripout --install --attributes .gitattributes
Isso registra o filtro em .git/config e versiona regras em .gitattributes (*.ipynb filter=nbstripout). No git add, outputs sao removidos do que entra no indice; no working tree voce pode continuar executando o notebook normalmente.
Conferir se esta ativo:
uv run nbstripout --is-installed
uv run nbstripout --status
Se recriar o .venv ou mudar o caminho do Python, reinstale o filtro:
uv run nbstripout --install --attributes .gitattributes --force
Limpar notebooks ja versionados (one-shot), se necessario:
git ls-files -z '*.ipynb' | xargs -0 uv run nbstripout
Validar CI/local sem alterar arquivos:
git ls-files -z '*.ipynb' | xargs -0 uv run nbstripout --verify
4. Execução
Validação do setup:
uv run xploredev
Testes:
uv run pytest
Exemplo de cookbook:
uv run python cookbook/sorting/test_sorting.py
Versionamento semantico (Commitizen)
Commits seguem Conventional Commits via Commitizen. A versão do pacote vive em pyproject.toml ([project].version); o cz bump atualiza essa versão, o CHANGELOG.md e cria a tag Git vX.Y.Z.
Commits
git add .
uv run cz commit
| Tipo | Quando usar | Bump |
|---|---|---|
feat |
Nova funcionalidade | minor |
fix |
Correcao de bug | patch |
docs |
Documentacao | — |
refactor |
Refatoracao | patch |
test |
Testes | — |
chore |
Manutencao | — |
Release e publicacao
uv run cz bump # bump de versao + CHANGELOG + tag
uv build # gera dist/*.whl
uv run --with xploreds --no-project -- python -c "import xploreds" # testar artefato
uv run --env-file .env --no-project -- uv publish # publica no PyPI (quando configurado)
git push && git push --tags
Metadata
Release files for xploreds 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| xploreds-0.2.0.tar.gz | 10.2 kB | Without provenance | Details for xploreds-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| xploreds-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for xploreds-0.2.0-py3-none-any.whl |
Total release size: 25.3 kB
Release files / xploreds-0.2.0.tar.gz
| Download URL | xploreds-0.2.0.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59277cd654766478d838a68be4d8e0c752050b184a6c5f568eb726a1ecf771c7
|
|
BLAKE2b-256 checksum How to use checksums |
ec3a8bf34c43c2952312345a2c2633c09b4bec536cb167ebf9645aca20dee8a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / xploreds-0.2.0-py3-none-any.whl
| Download URL | xploreds-0.2.0-py3-none-any.whl |
|---|---|
| Size | 15.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
483920dbf1f2aaa417ba83de8685ebaa067b5ae6b1b9e44aee050060a69db34d
|
|
BLAKE2b-256 checksum How to use checksums |
e6d7667386b8bc8c79e0a2895cf1593d482ec1a6154c8b0f958e8953e25fcf64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for xploreds 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.