XploreDev
Biblioteca Python e cookbook para experimentos em engenharia de software
Estrutura do repositório
src/xploredev/ → biblioteca (publicável no PyPI)
cookbook/ → scripts e notebooks de receitas locais
references/ → material de estudo
Módulos da biblioteca (src/xploredev/)
Pacotes por domínio; cada módulo segue o prefixo xdv_ (Xplore Development).
| Pacote | Arquivo | Responsabilidade |
|---|---|---|
io |
xdv_file.py |
Pastas, JSON e persistência de pandas (Parquet, etc.) |
log |
xdv_log.py |
Logging estruturado e perfil de ambiente em execuções |
utils |
xdv_environment.py |
Localizar a raiz do projeto (pyproject.toml) |
utils |
xds_memory.py |
Conversão e utilitários de memória |
environment |
xdv_localhost.py |
Estrutura de pastas para runs locais |
lists |
xdv_sorting.py |
Algoritmos de ordenação e knapsack (estudo) |
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 repositio (onde está o pyproject.toml):
uv sync --all-groups
O uv sync cria .venv/, instala dependências fixadas em uv.lock e registra xploredev em modo editável a partir de src/xploredev/.
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:
uv run nbstripout $(git ls-files '*.ipynb')
Validar CI/local sem alterar arquivos:
uv run nbstripout --verify $(git ls-files '*.ipynb')
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 semântico (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 & Push
git add .
uv run cz commit
git push
| 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 publish # publica no PyPI (quando configurado)
Metadata
Release files for xploredev 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 |
|---|---|---|---|---|
| xploredev-0.2.0.tar.gz | 9.2 kB | Without provenance | Details for xploredev-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| xploredev-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for xploredev-0.2.0-py3-none-any.whl |
Total release size: 21.1 kB
Release files / xploredev-0.2.0.tar.gz
| Download URL | xploredev-0.2.0.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
824ecb8d245bc3db66caba06c402a3b2b9b6553d8b70eaea4ba5c4b9711f5c9a
|
|
BLAKE2b-256 checksum How to use checksums |
e6ea36c2dbd19a546a234dcf974affb6a49ee65369f0fc2798de3f84b5e9b9f3
|
| 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 / xploredev-0.2.0-py3-none-any.whl
| Download URL | xploredev-0.2.0-py3-none-any.whl |
|---|---|
| Size | 12.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b78e7d46ce0c2072bf9137ed70058a4c20222fc6defefccf933af6e7b9b88877
|
|
BLAKE2b-256 checksum How to use checksums |
d39551eecb96d7a3d5e9056b857440958ba88ca59a1fe90b8db52a435dac4971
|
| 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 xploredev 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.