Package skeleton + config/auth handling #2

Closed
opened 2026-08-03 04:10:45 +00:00 by scheerenkevin · 1 comment
scheerenkevin commented 2026-08-03 04:10:45 +00:00 (Migrated from github.com)

Why

Foundational package structure and secure API-key handling that everything else builds on.

Scope

  • src/ layout with importable package alchemy_wallet_client
  • pyproject.toml using hatchling as build backend (NOT uv_build), Hatch-managed envs
  • Config/auth module: reads Alchemy API key from an environment variable (e.g. ALCHEMY_API_KEY)
    • Never hardcoded, never logged (including in repr/str of config or client objects, and in any debug/error logging)
  • Basic package metadata (__version__, etc.)

Acceptance criteria

  • pip install -e . / hatch build works from a clean checkout
  • import alchemy_wallet_client succeeds
  • Config object raises a clear error if ALCHEMY_API_KEY is unset
  • Tests confirm the API key never appears in repr()/str() of config/client objects
  • hatch run lint / hatch run test pass in CI
## Why Foundational package structure and secure API-key handling that everything else builds on. ## Scope - `src/` layout with importable package `alchemy_wallet_client` - `pyproject.toml` using `hatchling` as build backend (NOT `uv_build`), Hatch-managed envs - Config/auth module: reads Alchemy API key from an environment variable (e.g. `ALCHEMY_API_KEY`) - Never hardcoded, never logged (including in repr/str of config or client objects, and in any debug/error logging) - Basic package metadata (`__version__`, etc.) ## Acceptance criteria - [ ] `pip install -e .` / `hatch build` works from a clean checkout - [ ] `import alchemy_wallet_client` succeeds - [ ] Config object raises a clear error if `ALCHEMY_API_KEY` is unset - [ ] Tests confirm the API key never appears in `repr()`/`str()` of config/client objects - [ ] `hatch run lint` / `hatch run test` pass in CI
scheerenkevin commented 2026-08-03 04:19:41 +00:00 (Migrated from github.com)

Merged into develop via #12.

Merged into develop via #12.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kevin/alchemy-wallet-client#2
No description provided.