Skip to content

[17.0] component: raises NameError: name 'cachedmethod' is not defined` #533

Description

@rrebollo

Module

component

Describe the bug

2026-06-11 14:38:44,403 1 WARNING devel odoo.modules.loading: Transient module states were reset odoo-1
2026-06-11 14:38:44,403 1 ERROR devel odoo.modules.registry: Failed to load registry odoo-1
Traceback (most recent call last): odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/registry.py", line 96, in new odoo-1
    odoo.modules.load_modules(registry, force_demo, status, update_module) odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/loading.py", line 481, in load_modules odoo-1
    processed_modules += load_marked_modules(env, graph, odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/loading.py", line 366, in load_marked_modules odoo-1
    loaded, processed = load_module_graph( odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/loading.py", line 187, in load_module_graph odoo-1
    load_openerp_module(package.name) odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/module.py", line 424, in load_openerp_module odoo-1
    __import__(qualname) odoo-1
  File "/opt/odoo/auto/addons/component/__init__.py", line 1, in <module> odoo-1
    from . import core odoo-1
  File "/opt/odoo/auto/addons/component/core.py", line 63, in <module> odoo-1
    class ComponentRegistry: odoo-1
  File "/opt/odoo/auto/addons/component/core.py", line 104, in ComponentRegistry odoo-1
    @cachedmethod(operator.attrgetter("_cache")) odoo-1
NameError: name 'cachedmethod' is not defined odoo-1
2026-06-11 14:38:44,404 1 CRITICAL devel odoo.service.server: Failed to initialize database `devel`. odoo-1`
Traceback (most recent call last): odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/service/server.py", line 1390, in preload_registries odoo-1
    registry = Registry.new(dbname, update_module=update_module) odoo-1
  File "<decorator-gen-16>", line 2, in new odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/tools/func.py", line 87, in locked odoo-1
    return func(inst, *args, **kwargs) odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/registry.py", line 96, in new odoo-1
    odoo.modules.load_modules(registry, force_demo, status, update_module) odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/loading.py", line 481, in load_modules odoo-1
    processed_modules += load_marked_modules(env, graph, odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/loading.py", line 366, in load_marked_modules odoo-1
    loaded, processed = load_module_graph( odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/loading.py", line 187, in load_module_graph odoo-1
    load_openerp_module(package.name) odoo-1
  File "/opt/odoo/custom/src/odoo/odoo/modules/module.py", line 424, in load_openerp_module odoo-1
    __import__(qualname) odoo-1
  File "/opt/odoo/auto/addons/component/__init__.py", line 1, in <module> odoo-1
    from . import core odoo-1
  File "/opt/odoo/auto/addons/component/core.py", line 63, in <module> odoo-1
    class ComponentRegistry: odoo-1
  File "/opt/odoo/auto/addons/component/core.py", line 104, in ComponentRegistry odoo-1
    @cachedmethod(operator.attrgetter("_cache")) odoo-1
NameError: name 'cachedmethod' is not defined```

## To Reproduce
17.0 Confirmed

**Additional context**
From cachetools's changelog v7.0.0 (Feb 2026) Descriptor protocol change	Requires Python 3.10+. Changes how decorators work with class methods 

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions