Registry / web-framework / whool
library1.3pypypiunverified

whool is a build backend for Odoo addons, allowing them to be packaged and distributed as standard Python wheels and sdists. It leverages `pyproject.toml` for configuration and integrates with standard build tools like `pip` and `build`. The current version is 1.3, with releases occurring every few months to add features and improve compliance.

pip install whool
INSTALL
IMPORT
SIG · WHOOL
W
whool
web-frameworkpythonv1.3
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

This quickstart demonstrates how to use `whool` to initialize and build a simple Odoo addon into a standard Python wheel and sdist. It assumes `whool` and `build` (for `python -m build`) are installed.

# Create a dummy Odoo addon structure mkdir my_odoo_addon cd my_odoo_addon # Create a minimal Odoo __manifest__.py (required by Odoo) with open("__init__.py", "w") as f: f.write("__manifest__ = {'name': 'My Test Addon', 'version': '1.0.0', 'installable': True}") mkdir models with open("models/__init__.py", "w") as f: f.write("") # Initialize whool configuration (generates pyproject.toml) import subprocess subprocess.run(["whool", "init"], check=True) # Build the package (sdist and wheel) subprocess.run(["python", "-m", "build"], check=True) print("\nSuccessfully built package in 'dist/' directory:") import os print(os.listdir('dist'))
Debug
Known issues
breakingThe `dependencies` command was removed in v0.3, and `whool` stopped using internal `wheel` APIs. Code or scripts relying on this command or custom integrations with old `wheel` APIs will break.
fix
Remove usages of the `whool dependencies` command and update any custom code that interacted with `whool`'s previous internal `wheel` API usage. Consider `pyproject-dependencies` for dependency listing.
affects: <0.3 to >=0.3
gotchaWheel and sdist names are normalized for better standard compliance, especially for addon names containing uppercase letters. This might subtly change output filenames for existing projects.
fix
Update CI/CD pipelines or scripts that expect specific, non-normalized filenames for built distributions. Test builds to ensure compatibility with downstream systems.
affects: >=1.3
gotchaWhen the `git` command is not available, `whool` copies all files to the distribution, potentially including unwanted files not covered by `.gitignore` rules, instead of relying on `git` for file selection. This can lead to larger or incorrect distributions.
fix
Ensure `git` is installed and the build is performed within a git repository for accurate file inclusion based on `.gitignore`. If `git` is intentionally absent, carefully manage included files via `pyproject.toml` or other packaging mechanisms.
affects: >=1.2
Errors
Common errors & fixes
whool: command not found
`whool` is not installed or not in your system's PATH.
fix
Ensure `whool` is installed: `pip install whool`. If installed in a virtual environment, activate it or use `python -m whool`.
Error: "dependencies" command has been removed
You are using a `whool` version (0.3 or newer) that no longer supports the `dependencies` command, but your script or workflow is still trying to use it.
fix
Remove calls to `whool dependencies` from your scripts. For listing dependencies, consider using other tools like `pyproject-dependencies`.
No such file or directory: 'pyproject.toml'
`whool` requires a `pyproject.toml` file in the project root to configure the build process, which is typically generated by `whool init`.
fix
Run `whool init` in your project directory to generate the necessary `pyproject.toml` file.
Upgrade
Version history
1.3latest on PyPI · released Jul 26, 2025
Audit
Dependencies

No dependency data recorded yet.

Agent activity
13 hits · last 30 days
node
12
OpenAI (training)
1
Resources
whool — pip install whool · libregistry