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

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.

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)

Source distribution for acs-toolbox 0.1.0
File Size Uploaded
acs_toolbox-0.1.0.tar.gz 22.3 kB Details

Built distribution (wheel)

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

Release history Release notifications | RSS feed

This release

0.1.0 This release

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