## Summary
- Add `TableRepositoryInterface` and `PostgresAdapter` for dict-based row CRUD via psycopg3
- Add `PostgresConfig` with env-based configuration and lazy optional `[postgres]` extra
- Add unit and integration tests (testcontainers, PostgreSQL 16), plus `UserTableRepository` example
- Fix integration test deadlock by using autocommit connections
## Test plan
- [x] `uv run pytest tests/unit/ -m "not integration" -v`
- [x] `uv run pytest tests/integration/postgres/ -v`
- [x] `uv run pytest -m "not integration" --cov=python_repositories --cov-report= --cov-fail-under=0 -q && uv run pytest -m integration --cov=python_repositories --cov-append --cov-report=term-missing --cov-fail-under=100 -q`
- [x] `uv run mypy python_repositories tests`
Introduce PostgresAdapter for dict-based row CRUD via psycopg3, including config, lazy exports, unit/integration tests with testcontainers, and an example UserTableRepository.
Co-authored-by: Cursor <cursoragent@cursor.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
TableRepositoryInterfaceandPostgresAdapterfor dict-based row CRUD via psycopg3PostgresConfigwith env-based configuration and lazy optional[postgres]extraUserTableRepositoryexampleTest plan
uv run pytest tests/unit/ -m "not integration" -vuv run pytest tests/integration/postgres/ -vuv run pytest -m "not integration" --cov=python_repositories --cov-report= --cov-fail-under=0 -q && uv run pytest -m integration --cov=python_repositories --cov-append --cov-report=term-missing --cov-fail-under=100 -quv run mypy python_repositories testsTest Coverage Report:
Test Coverage Report:
Test Coverage Report:
Test Coverage Report: