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
Com pip: pip install "acs-toolbox[all]".
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.
Skill para o Claude Code
A pasta skills/acs-toolbox
contém uma skill que ensina o Claude Code a usar esta biblioteca. Para usá-la em todos os projetos,
copie a pasta para ~/.claude/skills/acs-toolbox/ (ou para .claude/skills/acs-toolbox/ de um projeto).
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.1
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.1.tar.gz | 22.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acs_toolbox-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.0 kB
Release files / acs_toolbox-0.1.1.tar.gz
| Download URL | acs_toolbox-0.1.1.tar.gz |
|---|---|
| Size | 22.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4db677c5aa795dbd0b3311c7de79b732557706118973fc678073739e7da7da86
|
|
BLAKE2b-256 checksum How to use checksums |
7ff065b15d4b70c9755ad64d648349c2e6b3d95746c8cb3a8acd23eeafab6024
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / acs_toolbox-0.1.1-py3-none-any.whl
| Download URL | acs_toolbox-0.1.1-py3-none-any.whl |
|---|---|
| Size | 25.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b7b68b267993b59867c1b9000aa7095628a120cf4032b4c719e432bb03350ecd
|
|
BLAKE2b-256 checksum How to use checksums |
b29e09c85ede9ab1cbe9acddd4899b8de897d9324022f4f3e70e84bdf102aa2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|