ebonite.utils.module module

ebonite.utils.module.analyze_module_imports(module_path)[source]
ebonite.utils.module.check_pypi_module(module_name, module_version=None, raise_on_error=False, warn_on_error=True)[source]

Checks that module with given name and (optionally) version exists in PyPi repository.

Parameters:
  • module_name – name of module to look for in PyPi
  • module_version – (optional) version of module to look for in PyPi
  • raise_on_error – raise ValueError if module is not found in PyPi instead of returning False
  • warn_on_error – print a warning if module is not found in PyPi
Returns:

True if module found in PyPi, False otherwise

ebonite.utils.module.get_object_base_module(obj: object) → module[source]

Determines base module of module given object comes from.

>>> import numpy
>>> get_object_base_module(numpy.random.Generator)
<module 'numpy' from '...'>

Essentially this function is a combination of get_object_module() and get_base_module().

Parameters:obj – object to determine base module for
Returns:Python module object for base module
ebonite.utils.module.get_base_module(mod: module)[source]

Determines base module for given module.

>>> import numpy
>>> get_base_module(numpy.random)
<module 'numpy' from '...'>
Parameters:mod – Python module object to determine base module for
Returns:Python module object for base module
ebonite.utils.module.get_object_module(obj: object) → module[source]

Determines module given object comes from

>>> import numpy
>>> get_object_module(numpy.ndarray)
<module 'numpy' from '...'>
Parameters:obj – obj to determine module it comes from
Returns:Python module object for object module
class ebonite.utils.module.ISortModuleFinder[source]

Bases: object

Determines type of module: standard library (ISortModuleFinder.is_stdlib()) or third party (ISortModuleFinder.is_thirdparty()). This class uses isort library heuristics with some modifications.

instance = None
classmethod init()[source]
classmethod is_stdlib(module: str)
classmethod is_thirdparty(module: str)
ebonite.utils.module.is_private_module(mod: module)[source]

Determines that given module object represents private module.

Parameters:mod – module object to use
Returns:boolean flag
ebonite.utils.module.is_pseudo_module(mod: module)[source]

Determines that given module object represents pseudo (aka Python “magic”) module.

Parameters:mod – module object to use
Returns:boolean flag
ebonite.utils.module.is_extension_module(mod: module)[source]

Determines that given module object represents native code extension module.

Parameters:mod – module object to use
Returns:boolean flag
ebonite.utils.module.is_installable_module(mod: module)[source]

Determines that given module object represents PyPi-installable (aka third party) module.

Parameters:mod – module object to use
Returns:boolean flag
ebonite.utils.module.is_builtin_module(mod: module)[source]

Determines that given module object represents standard library (aka builtin) module.

Parameters:mod – module object to use
Returns:boolean flag
ebonite.utils.module.is_ebonite_module(mod: module)[source]

Determines that given module object is ebonite module

Parameters:mod – module object to use
Returns:boolean flag
ebonite.utils.module.is_local_module(mod: module)[source]

Determines that given module object represents local module. Local module is a module (Python file) which is not from standard library and not installed via pip.

Parameters:mod – module object to use
Returns:boolean flag
ebonite.utils.module.is_from_installable_module(obj: object)[source]

Determines that given object comes from PyPi-installable (aka third party) module.

Parameters:obj – object to check
Returns:boolean flag
ebonite.utils.module.get_module_version(mod: module)[source]

Determines version of given module object.

Parameters:mod – module object to use
Returns:version as str or None if version could not be determined
ebonite.utils.module.get_python_version()[source]
Returns:Current python version in ‘major.minor.micro’ format
ebonite.utils.module.get_package_name(mod: module) → str[source]

Determines PyPi package name for given module object

Parameters:mod – module object to use
Returns:name as str
ebonite.utils.module.get_module_repr(mod: module, validate_pypi=False) → str[source]

Builds PyPi requirements.txt-compatible representation of given module object

Parameters:
  • mod – module object to use
  • validate_pypi – if True (default is False) perform representation validation in PyPi repository
Returns:

representation as str

ebonite.utils.module.get_module_as_requirement(mod: module, validate_pypi=False) → ebonite.core.objects.requirements.InstallableRequirement[source]

Builds Ebonite representation of given module object

Parameters:
  • mod – module object to use
  • validate_pypi – if True (default is False) perform representation validation in PyPi repository
Returns:

representation as InstallableRequirement

ebonite.utils.module.get_local_module_reqs(mod)[source]
ebonite.utils.module.add_closure_inspection(f)[source]
ebonite.utils.module.get_object_requirements(obj) → ebonite.core.objects.requirements.Requirements[source]

Analyzes packages required for given object to perform its function. This function uses pickle/dill libraries serialization hooks internally. Thus result of this function depend on given object being serializable by pickle/dill libraries: all nodes in objects graph which can’t be serialized are skipped and their dependencies are lost.

Parameters:obj – obj to analyze
Returns:Requirements object containing all required packages