Skip to main content

A Special Module Loader that can load modules with overlays.

Project description

OverlayModule

This module finder makes it possible to load modules with overlays. This can be useful in cases you try to customize some kind of application in places at moment that is out of your control.

For example, it is useful when you want to customize an application that make extensive uses of global. This module will allow you to load an overlay over a module that is being loaded right after the module has been loaded.

Let say you have this module a.b. You'd want to customize the class a.b:Application. To make sure that something that inherits later from a.b:Application will in fact inherit from o.overlay.a.b:Application.

When the module is being loaded it will first load a.b then it will execute the module o.overlay.a.b on top of the module a.b.

In short, this is more or less monkey patching on steroid.

How to use:

For the script using it:

import importlib
from overlaymodule import OverlayFinder

module_spec = importlib.util.find_spec('a')
module_path = odoo_spec.submodule_search_locations[0]

sys.meta_path.insert(
    0,
    OverlayFinder(
        'a',
        module_path,
        overlays=[
            "o.overlay",
        ]
    )
)

from a.b import Application, OldApplication

A module overlay o.overlay.a.b

# since a.b is already loaded, it's possible to import it within itself!
from a.b import Application as OldApplication

class Application(OldApplication):
    pass

Project details


Download files

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

Source Distribution

overlaymodule-0.0.2.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

overlaymodule-0.0.2-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file overlaymodule-0.0.2.tar.gz.

File metadata

  • Download URL: overlaymodule-0.0.2.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for overlaymodule-0.0.2.tar.gz
Algorithm Hash digest
SHA256 a7b4906072858c59ff5e69262c4ded198d255b0d3c8a05215a50a7c13ecbae37
MD5 2657bf9c228c864e40342cacdd8ad018
BLAKE2b-256 b21ba2e6d91bcf97fb3b505e5455a2afa79206bd8640adb92931eec84ff3db58

See more details on using hashes here.

File details

Details for the file overlaymodule-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for overlaymodule-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 37b735aa3f67c75fa011edd1ac597f204b5eb2e7540e2309b589d90a8948d1ac
MD5 2d9881ffe7aa1bb91832671ec8ef5313
BLAKE2b-256 9f8e2b6a68dc0bb483ee5c879caa8265be050adc89e97cd3263e3da1861bb9e3

See more details on using hashes here.

Supported by

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