odoo-addons-parser
Python package to collect and analyze data from Odoo module folders without requiring an Odoo runtime. It performs static file analysis to extract useful information from Odoo modules.
Features
- Static Analysis: Doesn't rely on any Odoo runtime; performs static files analysis
- Code Statistics: Count lines of code (Python, XML, JavaScript, and CSS)
- Manifest Parsing: Extract useful data from manifest files (authors, dependencies, etc.)
- Model Extraction: Extract Odoo models information (with fields and methods)
- Data Extraction: Extract data from XML and CSV files
- Flexible Scanning: Scan individual modules, repositories, or entire Odoo source code
Installation
uv pip install odoo-addons-parser
Or with pip:
pip install odoo-addons-parser
Usage
ModuleParser
Parse a single Odoo module:
from odoo_addons_parser import ModuleParser
from pprint import pprint as pp
mod = ModuleParser("/path/to/OCA/server-tools/server_environment")
pp(mod.to_dict())
Example output:
{
'code': {'CSS': 0, 'JavaScript': 0, 'Python': 541, 'XML': 21},
'manifest': {
'author': 'Camptocamp,Odoo Community Association (OCA)',
'category': 'Tools',
'data': ['security/ir.model.access.csv', 'security/res_groups.xml', 'serv_config.xml'],
'depends': ['base', 'base_sparse_field'],
'installable': True,
'license': 'GPL-3 or any later version',
'name': 'server configuration environment files',
'summary': 'move some configurations out of the database',
'version': '14.0.1.0.0',
'website': 'https://github.com/OCA/server-env'
},
'models': ...,
'name': 'server_environment'
}
RepositoryParser
Parse a whole repository of addons:
from odoo_addons_parser import RepositoryParser
repo = RepositoryParser("/path/to/OCA/server-tools")
pp(repo.to_dict())
OdooParser
Parse the Odoo source code repository:
from odoo_addons_parser import OdooParser
odoo = OdooParser("/path/to/odoo/odoo")
data = odoo.to_dict()
list(data["__odoo__"]["models"])
# ["BaseModel", "Model", "TransientModel"]
"res.partner" in data["base"]["models"]
# True
Parameters
You can disable specific features using parameters:
# Disable code statistics
repo = RepositoryParser("path/to/addons_path", code_stats=False)
# Disable model scanning
mod = ModuleParser("path/to/addons_path/module", scan_models=False)
# Disable data scanning
mod = ModuleParser("path/to/addons_path/module", scan_data=False)
# Disable all
odoo = OdooParser("/path/to/odoo/odoo", code_stats=False, scan_models=False, scan_data=False)
License
This project is licensed under the LGPL-3.0 License - see the LICENSE file for details.
Metadata
Release files for odoo-addons-parser 0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odoo_addons_parser-0.8.tar.gz | 37.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_addons_parser-0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.9 kB
Release files / odoo_addons_parser-0.8.tar.gz
| Download URL | odoo_addons_parser-0.8.tar.gz |
|---|---|
| Size | 37.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c1f703990a10d29167b6f5833eaf1a050ccc2f4f9c00518c2a2d6262fb39229d
|
|
BLAKE2b-256 checksum How to use checksums |
9b023b72c137cc2d726f07c752a173d495177b9a94c2b14321e0cf7c390d5cbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / odoo_addons_parser-0.8-py3-none-any.whl
| Download URL | odoo_addons_parser-0.8-py3-none-any.whl |
|---|---|
| Size | 43.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f59d60f0ef719f87d670ee9bdbe6829c4dc6fbda6c0c50928efb979b6a1cd21
|
|
BLAKE2b-256 checksum How to use checksums |
ce656a54493c89a1246978ed46f4e21b368fbfe2f117fc831637863bab21f0da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency log