Skip to main content

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:

  1. argumento dbparams={...};
  2. arquivo .ini (seção [postgresql]): argumento config_file=... ou variável de ambiente ACS_TOOLBOX_DB_CONFIG;
  3. o segredo postgresql do 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) e ACS_TOOLBOX_SECRET_NAME (padrão acs-toolbox-secrets).
  • Instalação e login: uv add "acs-toolbox[gcp]" e gcloud 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)

Source distribution for acs-toolbox 0.1.1
File Size Uploaded
acs_toolbox-0.1.1.tar.gz 22.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for acs-toolbox 0.1.1
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page