This directory contains the code for the Python `brotli` module, and roundtrip tests. Only Python 3.10+ is supported. We provide a `Makefile` to simplify common development commands. ### Installation If you just want to install the latest release of the Python `brotli` module, we recommend installing from [PyPI][]: $ pip install brotli Alternatively, you may install directly from source by running the following command from this directory: $ make install If you already have native Brotli installed on your system and want to use this one instead of the vendored sources, you should set the `USE_SYSTEM_BROTLI=1` environment variable when building the wheel, like this: $ USE_SYSTEM_BROTLI=1 pip install brotli --no-binary brotli Brotli is found via the `pkg-config` utility. Moreover, you must build all 3 `brotlicommon`, `brotlienc`, and `brotlidec` components. If you're installing brotli from the package manager, you need the development package, like this on Fedora: $ dnf install brotli brotli-devel ### Development You may run the following commands from this directory: $ make # Build the module in-place $ make test # Test the module $ make clean # Remove all temporary files and build output If you wish to make the module available while still being able to edit the source files, you can use the `setuptools` "[development mode][]": $ make develop # Install the module in "development mode" ### Code Style Brotli code follows the [Google Python Style Guide][]. To automatically format your code, first install [YAPF][]: $ pip install yapf Then, to format all files in the project, you can run: $ make fix # Automatically format code See the [YAPF usage][] documentation for more information. [PyPI]: https://pypi.org/project/Brotli/ [development mode]: https://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode [Google Python Style Guide]: https://google.github.io/styleguide/pyguide.html [YAPF]: https://github.com/google/yapf [YAPF usage]: https://github.com/google/yapf#usage