pythreads
pythreads copied to clipboard
v0.3.0 refactors
This pull request modernizes the project's development, CI, and documentation workflows by migrating from Hatch to the uv toolchain, introducing automated lint/type checks with pre-commit, and improving developer and contributor documentation. It also updates the documentation to reflect new async iterator features and exposes key API types and errors for easier imports.
Tooling & CI Modernization:
- Switched from Hatch to uv for dependency management and scripts throughout the project. All workflow files and documentation now use uv commands for setup, linting, type checking, and testing. (
.github/workflows/ci.yml,.github/workflows/documentation.yml,.prototools,pyproject.toml,README.md,AGENTS.md,CLAUDE.md) [1] [2] [3] [4] [5] [6] [7] - Removed the old Hatch-based workflow and all related configuration from the repository, simplifying environment management. (
.github/workflows/hatch.yml,pyproject.toml) [1] [2]
Developer Experience Improvements:
- Added pre-commit configuration for automated linting (ruff) and type checking (pyright). (
.pre-commit-config.yaml) - Added a
.python-versionfile to standardize on Python 3.12 for development. - Updated and expanded contributor/developer guidelines in
AGENTS.mdand added a detailed architecture and workflow guide for Claude inCLAUDE.md. [1] [2]
Documentation Enhancements:
- Updated the documentation to describe new async iterator features (
threads_iter,replies_iter), per-call API options, and usage of Pydantic models for response validation. (README.md,docs/source/pythreads.rst) [1] [2] [3] - Added new documentation pages for architecture and doctests, and enabled Sphinx doctest extension. (
docs/source/architecture.rst,docs/source/doctests.rst,docs/source/conf.py,docs/source/index.rst) [1] [2] [3] [4]
API Improvements:
- The
pythreads.apipackage now re-exports key types and errors, making it easier to import these directly frompythreads.api. (src/pythreads/api/__init__.py)
Configuration Updates:
- Added a
[tool.pyright]section topyproject.tomlfor consistent type checking configuration.
References: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]