Source code for anybox.recipe.odoo.runtime

"""
Runtime
=======

This subpackage provides encapsulations and entry points for the application
itself:

* the ``session`` module features the supporting objects for "Odoo scripts"
  and the dedicated python interpreter.
* the ``start_openerp`` and ``test_openerp`` modules are the entry points for
  the main startup scripts.

This architecture is meant in particular to provide stability and uniformity
accross Odoo major versions, so that the recipe can be leveraged by
automated deploymnent tools and continuous integration systems.
"""

_imported_addons = set()


[docs]def already_imported(module_name): """Convenience to help some Odoo modules to avoid been imported twice. Each call of this function returns a boolean indicated whether the specified module was already in the ``imported_addons`` registry and add it inconditionnally. Thus caller code is expected to import the module right away if the return value was False. """ name = module_name.rsplit('.', 1)[-1] if name in _imported_addons: return True _imported_addons.add(name) return False
[docs]def clear_import_registry(): _imported_addons.clear()