acs-toolbox
Utilitários de uso geral para automação, banco de dados PostgreSQL, downloads, progresso e segredos. Referência completa das classes: docs/acs_toolbox.md.
Instalação (uv)
Em outro projeto gerenciado por uv:
uv add acs-toolbox # núcleo (Download, Progress)
uv add "acs-toolbox[database]" # + Database (psycopg2, pandas, numpy)
uv add "acs-toolbox[webdriver]" # + WebDriver (selenium)
uv add "acs-toolbox[gcp]" # + segredos (Google Secret Manager)
uv add "acs-toolbox[all]" # tudo
Como dependência de um pyproject.toml:
dependencies = ["acs-toolbox[database,webdriver]>=0.1"]
Extras
| Extra | Habilita | Dependências |
|---|---|---|
| (núcleo) | Download, Progress |
nenhuma |
database |
Database |
pandas, numpy, psycopg2-binary |
webdriver |
WebDriver |
selenium |
notebook |
limpeza de saída Jupyter no Progress |
ipython |
gcp |
segredos (Google Secret Manager) |
google-cloud-secret-manager |
Importar um módulo sem o extra correspondente gera um ImportError que indica o comando de instalação.
Configuração do banco
Database() obtém os parâmetros de conexão (host, port, database, user, password)
nesta ordem:
- argumento
dbparams={...}; - arquivo
.ini(seção[postgresql]): argumentoconfig_file=...ou variável de ambienteACS_TOOLBOX_DB_CONFIG; - o segredo
postgresqldo cofre de segredos (ver abaixo).
Se nenhuma fonte estiver configurada, o erro explica as opções. Não versione o arquivo .ini.
Segredos (Google Secret Manager)
O módulo acs_toolbox.segredos lê segredos de um único segredo JSON no Google Secret Manager,
em vez de .env ou arquivos espalhados. O programa pede só as chaves de que precisa:
from acs_toolbox.segredos import get_secret, get_secrets, load_env
api_key = get_secret("MINHA_API_KEY")
cfg = get_secrets("DB_HOST", "DB_PORT") # {"DB_HOST": ..., "DB_PORT": ...}
load_env("MINHA_API_KEY") # copia para os.environ (código que usa os.getenv)
- O conteúdo é baixado uma vez por processo e fica só em memória.
- Uma variável de ambiente com o nome da chave tem precedência (testes, CI, uso offline).
- Configuração por variáveis de ambiente (identificadores, não segredos):
ACS_TOOLBOX_GCP_PROJECT(id do projeto) eACS_TOOLBOX_SECRET_NAME(padrãoacs-toolbox-secrets). - Instalação e login:
uv add "acs-toolbox[gcp]"egcloud auth application-default login. - Filtrar por chaves reduz a exposição no processo, mas não é uma barreira de acesso: quem lê o segredo recebe o JSON inteiro. Use segredos separados quando precisar de isolamento.
Desenvolvimento
uv sync # cria .venv e instala com extras + dev
uv run pytest # testes; os de integração exigem ACS_TOOLBOX_TEST_DSN (PostgreSQL)
uv run ruff check .
uv run mypy
uv build # gera dist/*.whl e dist/*.tar.gz
A publicação no PyPI é feita pelo GitHub Actions (Trusted Publishing) ao criar um release; ver .github/workflows/publish.yml.
Licença
Apache License 2.0 — veja LICENSE. Copyright 2026 Alberto de Campos e Silva.
Release files for acs-toolbox 0.1.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 | |
|---|---|---|---|
| acs_toolbox-0.1.0.tar.gz | 22.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acs_toolbox-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.3 kB
Release files / acs_toolbox-0.1.0.tar.gz
| Download URL | acs_toolbox-0.1.0.tar.gz |
|---|---|
| Size | 22.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
39fa687f468874176b15552055f9a10021eecd90716297fb1b84be83be0dbb7f
|
|
BLAKE2b-256 checksum How to use checksums |
a9b77f1534ed58f8ad548aff4e3503b340b3928f73de6041addac7844362232a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / acs_toolbox-0.1.0-py3-none-any.whl
| Download URL | acs_toolbox-0.1.0-py3-none-any.whl |
|---|---|
| Size | 25.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
43dbfc8ff49d94a97020829476e6fbbd1ca183ce0d1724034a503b2ba17d2a70
|
|
BLAKE2b-256 checksum How to use checksums |
4f245c06a9f2bde8b102c575362d9416e4f97c5c63d8f0911988eefd4af06b72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|