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
| Series | Status | Details | Code |
|---|---|---|---|
| 16.0 | ✓Installs | · run 2026-08-21 · 16.0.1.0.5 | on GitHub |
| 17.0 | ✓Installs | · run 2026-08-20 · 17.0.1.0.3 | on GitHub |
| 18.0 | ✗Install error | UNRECOGNISED: ImportError: Failed to initialize: Bad git executable. · run 2026-08-27 | on GitHub |
| 19.0 | —Not tested | no branch | |
| 20.0 | —Not tested | no branch |
The module’s code on 18.0
| Lines of code | python 367 · xml 311 |
| Tests | yes: 1 file(s), 45 lines |
| Migration scripts | no |
| Models | 3 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
| Module | Status | Checked |
|---|---|---|
| base | core | ships with Odoo |
External dependencies
Checked against modidx/odoo:18.0-deps-20260820.
| Kind | Package | In our image |
|---|---|---|
| python | pygount | in image |
History
| Last change | 2025-12-16 |
| Code commits, 12 months | 30 |
| Most active | Telmo Santos, Florian da Costa, Sylvain LE GAL |
| Files | 41 |
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=quietResult looks wrong? Tell us — we will show the log or run it again. Report a wrong result