Skip to main content

odoo-addons-parser

Version Supported Versions Pre-commit Status Tests Status

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)

Source distribution for odoo-addons-parser 0.8
File Size Uploaded
odoo_addons_parser-0.8.tar.gz 37.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for odoo-addons-parser 0.8
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.8 This release

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page