Contributing
Contributions are welcome! This project uses setuptools for packaging and modern tooling for quality assurance.
Development Setup
-
Clone the repository:
-
Install dependencies:
We recommend using a virtual environment.
-
Install Pre-commit Hooks:
This project uses
pre-committo ensure code quality.
Running Tests
Run the full test suite using pytest:
Code Quality
We use ruff for linting and formatting, and both mypy and ty for static type checking. These are run automatically by pre-commit, but you can run them manually:
Package Layout
Core implementation is split across focused modules in src/aiogzip:
_common.py: shared constants, validation helpers, and protocols_binary.py:AsyncGzipBinaryFileimplementation_text.py:AsyncGzipTextFileimplementation__init__.py: public API exports andAsyncGzipFilefactory
When adding new internals, prefer one of the focused modules and keep __init__.py as the stable public API surface.
Documentation
To build the documentation locally:
Then open http://localhost:8000 in your browser.