Skip to main content

Package to analyse odoo modules

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

odoo_analyse-2.0.0-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

File details

Details for the file odoo_analyse-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: odoo_analyse-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 28.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.13

File hashes

Hashes for odoo_analyse-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d8c42e134269f4f14c9a96da308f5d01edd6351636f0bbf1b1624e8f5409466
MD5 cc7795c1884fa168601494daed36ad6a
BLAKE2b-256 41460d48c52e952f65f1fc74b0f19beae5690dcfd2b71a71d70c64b6e0ebb351

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page