Skip to main content

odoo-analyse

Analyse tool for odoo modules

Installation

Install the module with the ability to render graphs:

apt install cloc graphviz
npm install -g eslintcc  # required for JS complexity
pip3 install "odoo-analyse[graph]"

Usage

odoo_analyse --help

Read in modules

--config /path/to/odoo.cfg .. Load modules using an odoo configuration file

--path /path/to/modules .. Load modules within a directory

--load /path/to/data.json .. Load the modules from a previously stored data file

Or if you want to load the file from stdin:

--load - .. Loads the data from the module analysis directly from the stdin

Save the loaded modules

-s /path/to/data.json .. Store the loaded modules in a file

Or if you want to output it to stdout:

-s - .. Output the loaded modules to stdout

Filtering

--modules '*' .. Only show modules with a matching name

--models '*' .. Only show models with a matching name

--views '*' .. Only show views with a matching name

--path-filter '*' .. Only modules with a matching file path

--test-filter .. Include module starting with test_

--estimate-state .. Estimate the state of a module (installed/uninstalled) only using dependencies and auto_install flags.

--state-filter installed .. Only modules with a specific state. This connects to a database to determine the state of a module. The connection information are extracted from a configuration file or using the database parameters

--full-graph .. If set all the above filters are only used for the starting nodes and not for the base modules

Module graph

Use atleast one of the following --show-* options to show a module graph.

--show-dependency .. Show module dependencies from the manifests

--show-import .. Show imports of module from other modules

--show-reference .. Show XML references of modules from other modules

--migration '*' .. Color all modules with a matching version

Database

These options can be used to extract instance specific information about modules such as installation state to be used in filters.

--db-host host .. Host on which the database is running

--db-port 5432 .. Port on which the database is running

--db-name odoo .. Name of the database

--db-user user .. Name of the user to access the database

--db-password .. If specified a password prompt will ask for the password to connect to the database

Skipping

These options control what is analysed and can result in a faster analyse.

--skip-all .. All of the below

--skip-assets .. Skip analysing assets (JS, CSS, Web Templates, ...)

--skip-data .. Skip analysing CSV and XML data

--skip-language .. Skip analysing the lines of code

--skip-python .. Skip analysing python files (controllers, models, ...)

--skip-readme .. Skip reading the readme files

Examples

Usage as library

If you'd like to import the package and use it within a Odoo module you can add it as an import and call the options:

>>> from odoo_analyse import Odoo
>>> odoo = Odoo.from_path(".")
>>> odoo["auth_session_timeout"].models
{'ir.http': <Model: ir.http>, 'ir.config_parameter': <Model: ir.config_parameter>, 'res.users': <Model: res.users>}
>>> odoo["auth_session_timeout"].manifest
{"auth_session_timeout": {"path": "/x/y/z", "name": "auth_session_timeout", ...}}

Usage as command line tool

# Analyse all modules in a folder and create a module dependency graph to module.gv.pdf
$ odoo_analyse -p /path/to/modules --show-dependency

# Analyse all available modules of an Odoo instance and save it to a json file for later usage
$ odoo_analyse -c /path/to/odoo.cfg -s /path/to/cache.json

The following examples are using a previously created cache file.

# Create the dependency graph of all modules starting with `sale_`
$ odoo_analyse -l /path/to/cache.json --modules 'sale_*' --show-dependency

# Create the full dependency graph of all modules starting with `sale_`
$ odoo_analyse -l /path/to/cache.json --modules 'sale_*' --show-dependency --full-graph

# Connect to the database from the odoo.cfg and create the dependency graph of all installed modules
$ odoo_analyse -l /path/to/cache.json -c /path/to/odoo.cfg --state-filter installed --show-dependency

# Estimate the state using the module dependencies and auto_install flags based on the `modules` given via stdin. Output the analysed installed modules to `analyse.json`.
$ cat modules.txt | odoo_analyse -p odoo --modules - --analyse analyse.json --estimate-state --state-filter installed

Metadata

Release files for odoo-analyse 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for odoo-analyse 2.0.0
File Interpreter ABI Platform
odoo_analyse-2.0.0-py3-none-any.whl Python 3 none any Details

Release files / odoo_analyse-2.0.0-py3-none-any.whl

Download URL odoo_analyse-2.0.0-py3-none-any.whl
Size 28.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4d8c42e134269f4f14c9a96da308f5d01edd6351636f0bbf1b1624e8f5409466
BLAKE2b-256 checksum
How to use checksums
41460d48c52e952f65f1fc74b0f19beae5690dcfd2b71a71d70c64b6e0ebb351
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.13

Release history Release notifications | RSS feed

This release

2.0.0 This release

1 release file

1.6.1

1 release file

1.6.0

1 release file

1.5.0

1 release file

1.3.0

1 release file

1.2.1

1 release file

1.2

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9

1 release file

0.8

2 release files

0.7

1 release file

0.6

1 release file

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1.1

2 release files

0.1.0

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