import importlib
from types import ModuleType
from typing import Union
from .depscall import DepsCall
from .transportable_object import TransportableObject
class DepsModule(DepsCall):
"""
Python modules to be imported in an electron's execution environment.
This is only used as a vehicle to send the module by reference to the
to the right place of serialization where it will instead be pickled by value.
Deps class to encapsulate python modules to be
imported in the same execution environment as the electron.
Note: This subclasses the DepsCall class due to its pre-existing
infrastructure integrations, and not because of its logical functionality.
Attributes:
module_name: A string containing the name of the module to be imported.
"""
def __init__(self, module: Union[str, ModuleType]):
if isinstance(module, str):
module = importlib.import_module(module)
self.pickled_module = TransportableObject(module)
super().__init__()
def short_name(self):
"""Returns the short name of this class."""
return "depsmodule"