build.manifest¶
Private Methods
Private methods, if any (those starting with _), are documented
for completeness but do not offer any stability guarantees.
They may change or be removed at any time without notice.
Module for generating Odoo __manifest__.py files.
_extract_github_username(email)
¶
Extract GitHub username from a noreply email address.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
email
|
str
|
Email address to parse |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
GitHub username if email is a noreply address, None otherwise |
Source code in src/polytropos/build/manifest.py
_manual_manifest(pyproject_data, odoo_release)
¶
Get version-specific overrides from pyproject.toml, if any.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pyproject_data
|
dict[str, Any]
|
Parsed |
required |
odoo_release
|
str
|
Odoo release (e.g., "19.0") to match against |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Merged overrides dictionary for matching releases |
Source code in src/polytropos/build/manifest.py
_standard_manifest(pyproject_data, odoo_release, root=None, src_dir=None)
¶
Convert standard pyproject.toml values to __manifest__.py.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pyproject_data
|
dict[str, Any]
|
Parsed |
required |
odoo_release
|
str
|
Odoo release (e.g., "19.0") |
required |
root
|
Path | None
|
Project root directory (optional, for reading README) |
None
|
src_dir
|
str | None
|
Source subdirectory (optional, e.g., "src") |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dictionary representing standard |
Source code in src/polytropos/build/manifest.py
addon_name(pkg_name)
¶
Get addon name from package name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pkg_name
|
str
|
Package name (e.g., "odoo-addon-example-module") |
required |
Returns:
| Type | Description |
|---|---|
str
|
Addon name (e.g., "example_module") |
Raises:
| Type | Description |
|---|---|
ValueError
|
If package name doesn't start with ADDON_PREFIX |
Source code in src/polytropos/build/manifest.py
generate_manifest(pyproject_data, odoo_release, root=None, src_dir=None)
¶
Convert standard pyproject.toml values to __manifest__.py.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pyproject_data
|
dict[str, Any]
|
Parsed |
required |
odoo_release
|
str
|
Odoo release (e.g., "19.0") |
required |
root
|
Path | None
|
Project root directory (optional, for reading README) |
None
|
src_dir
|
str | None
|
Source subdirectory (optional, e.g., "src") |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dictionary representing |
Source code in src/polytropos/build/manifest.py
generate_manifest_content(manifest)
¶
Generate manifest.py file content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
manifest
|
dict[str, Any]
|
Manifest dictionary |
required |
Returns:
| Type | Description |
|---|---|
str
|
String content for manifest.py |
Source code in src/polytropos/build/manifest.py
get_author_value(pyproject_data)
¶
Extract author value from project authors list.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pyproject_data
|
dict[str, Any]
|
Parsed |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Comma-separated author names, or |
Source code in src/polytropos/build/manifest.py
get_maintainer_value(pyproject_data)
¶
Extract maintainer value from project maintainers list.
Uses GitHub noreply emails to extract usernames. Falls back to name if email is not a GitHub noreply address.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pyproject_data
|
dict[str, Any]
|
Parsed |
required |
Returns:
| Type | Description |
|---|---|
list[str] | None
|
List of GitHub usernames or maintainer names, or |
Source code in src/polytropos/build/manifest.py
parse_project_dependencies(pyproject_data)
¶
Parse project.dependencies to extract depends and external_dependencies.python.
- odoo-addon-* packages become depends (with prefix stripped)
- odoo>=X.Y becomes depends as just 'odoo'
- Other packages become external_dependencies.python
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pyproject_data
|
dict[str, Any]
|
Parsed pyproject.toml data |
required |
Returns:
| Type | Description |
|---|---|
tuple[list[str], list[str]]
|
Tuple of (depends list, external_dependencies.python list) |
Source code in src/polytropos/build/manifest.py
write_manifest(manifest, output_path)
¶
Write manifest to manifest.py file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
manifest
|
dict[str, Any]
|
Manifest dictionary |
required |
output_path
|
Path
|
Path where to write manifest.py |
required |