module_analysis

in server-tools · source on GitHub

Add analysis tools regarding installed modules to know which installed modules comes from Odoo Core, OCA, or are custom modules

GRAP · AGPL-3

16.0✓Installs
17.0✓Installs
18.0✗Install error
19.0×Not in this series
20.0×Not in this series
SeriesStatusDetailsCode
16.0✓Installs · run 2026-08-21 · 16.0.1.0.5on GitHub
17.0✓Installs · run 2026-08-20 · 17.0.1.0.3on GitHub
18.0✗Install errorUNRECOGNISED: ImportError: Failed to initialize: Bad git executable. · run 2026-08-27on GitHub
19.0—Not testedno branch
20.0—Not testedno branch

The module’s code on 18.0

Lines of codepython 367 · xml 311
Testsyes: 1 file(s), 45 lines
Migration scriptsno
Models3 new · 1 extensions

Lines are physical, blanks and comments included, as wc -l. Tests are test_*.py files under tests/. Models are lines holding _name = and _inherit =. These are facts about the code, not a judgement: more lines is neither better nor worse. Measured 2026-08-28 on tree 21ef441b12bb.

The apps.odoo.com catalogue has a listing under the same technical name on 16.0, 17.0, 18.0: apps.odoo.com/apps/modules/18.0/module_analysis. A matching name does not prove matching code — how we counted this.

Depends on

ModuleStatusChecked
basecoreships with Odoo

External dependencies

Checked against modidx/odoo:18.0-deps-20260820.

KindPackageIn our image
pythonpygountin image

History

Last change2025-12-16
Code commits, 12 months30
Most activeTelmo Santos, Florian da Costa, Sylvain LE GAL
Files41

Translation and bot commits are excluded from the commit count.

Install log 18.0

Warn: Can't find .pfb for face 'Courier'
2026-08-27 07:55:30,242 1 CRITICAL job_0ee16f006b3c odoo.modules.module: Couldn't load module module_analysis 
2026-08-27 07:55:30,273 1 WARNING job_0ee16f006b3c odoo.modules.loading: Transient module states were reset 
2026-08-27 07:55:30,274 1 ERROR job_0ee16f006b3c odoo.modules.registry: Failed to load registry 
2026-08-27 07:55:30,274 1 CRITICAL job_0ee16f006b3c odoo.service.server: Failed to initialize database `job_0ee16f006b3c`. 
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/dist-packages/git/__init__.py", line 296, in <module>
    refresh()
  File "/usr/local/lib/python3.12/dist-packages/git/__init__.py", line 287, in refresh
    if not Git.refresh(path=path):
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/dist-packages/git/cmd.py", line 876, in refresh
    raise ImportError(err)
ImportError: Bad git executable.
The git executable must be specified in one of the following ways:
    - be included in your $PATH
    - be set via $GIT_PYTHON_GIT_EXECUTABLE
    - explicitly set via git.refresh(<full-path-to-git-executable>)

All git commands will error until this is rectified.

This initial message can be silenced or aggravated in the future by setting the
$GIT_PYTHON_REFRESH environment variable. Use one of the following values:
    - quiet|q|silence|s|silent|none|n|0: for no message or exception
    - warn|w|warning|log|l|1: for a warning message (logging level CRITICAL, displayed by default)
    - error|e|exception|raise|r|2: for a raised exception

Example:
    export GIT_PYTHON_REFRESH=quiet


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 1414, in preload_registries
    registry = Registry.new(dbname, update_module=update_module)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 97, in locked
    return func(inst, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 118, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 489, in load_modules
    processed_modules += load_marked_modules(env, graph,
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 365, in load_marked_modules
    loaded, processed = load_module_graph(
                        ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 186, in load_module_graph
    load_openerp_module(package.name)
  File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 384, in load_openerp_module
    __import__(qualname)
  File "/mnt/pool/module_analysis/__init__.py", line 1, in <module>
    from . import models
  File "/mnt/pool/module_analysis/models/__init__.py", line 2, in <module>
    from . import ir_module_module
  File "/mnt/pool/module_analysis/models/ir_module_module.py", line 9, in <module>
    from pygount import SourceAnalysis
  File "/usr/local/lib/python3.12/dist-packages/pygount/__init__.py", line 9, in <module>
    from .analysis import DuplicatePool, SourceAnalysis, SourceScanner, SourceState, encoding_for
  File "/usr/local/lib/python3.12/dist-packages/pygount/analysis.py", line 33, in <module>
    from pygount.git_storage import GitStorage, git_remote_url_and_revision_if_any
  File "/usr/local/lib/python3.12/dist-packages/pygount/git_storage.py", line 6, in <module>
    import git
  File "/usr/local/lib/python3.12/dist-packages/git/__init__.py", line 298, in <module>
    raise ImportError("Failed to initialize: {0}".format(_exc)) from _exc
ImportError: Failed to initialize: Bad git executable.
The git executable must be specified in one of the following ways:
    - be included in your $PATH
    - be set via $GIT_PYTHON_GIT_EXECUTABLE
    - explicitly set via git.refresh(<full-path-to-git-executable>)

All git commands will error until this is rectified.

This initial message can be silenced or aggravated in the future by setting the
$GIT_PYTHON_REFRESH environment variable. Use one of the following values:
    - quiet|q|silence|s|silent|none|n|0: for no message or exception
    - warn|w|warning|log|l|1: for a warning message (logging level CRITICAL, displayed by default)
    - error|e|exception|raise|r|2: for a raised exception

Example:
    export GIT_PYTHON_REFRESH=quiet

Result looks wrong? Tell us — we will show the log or run it again. Report a wrong result

Get told when this module changes state

Data updated 2026-10-07 13:00 UTC · build 4aa2dbe · we publish the install log with a date, not a vendor rating · CSV and JSON are open

Questions or a wrong result: open an issue or hello@allservices.one

Privacy · Terms

Independent project. Not affiliated with Odoo S.A. or the Odoo Community Association.