ExtensionManager#

class omni.ext.ExtensionManager#

Bases: pybind11_object

Methods

__init__(*args, **kwargs)

add_path(self, path, type)

add_path_protocol_provider(self, scheme, ...)

Add new path protocol provider, scheme must be unique `false` returned otherwise.

add_registry_provider(self, name, provider)

Add registry provider to be used for remote extension registry.

fetch_all_extension_packages(self)

fetch_extension_packages(self, arg0)

fetch_extension_summaries(self)

fetch_extension_versions(self, arg0)

get_change_event_stream(self)

get_enabled_extension_id(self, ext_name)

get_enabled_extension_module_names()

Get all python modules of enabled extensions

get_extension_dict(self, ext_id)

get_extension_id_by_module(module)

Get enabled extension id that contains this python module.

get_extension_packages(self)

get_extension_path(self, ext_id)

get_extension_path_by_module(module)

Get enabled extension path that contains this python module.

get_extensions(self)

get_folders(self)

Get folders monitored for python extensions.

get_hooks(self)

get_registry_extension_dict(self, ext_id)

get_registry_extension_packages(self)

get_registry_extensions(self)

get_registry_providers(self)

is_extension_enabled(self, ext_name)

pack_extension(ext_id, output_folder)

Pack extension into archive.

process_and_apply_all_changes(self)

publish_extension(self, ext_id[, ...])

pull_extension(self, ext_id)

pull_extension_async(self, ext_id)

refresh_registry(self)

remove_path(self, path)

remove_path_protocol_provider(self, scheme)

remove_registry_provider(self, name)

Remove registry provider.

set_extension_enabled(self, extension_id, ...)

Toggle extension enable/disable.

set_extension_enabled_immediate(self, ...)

Toggle extension enable/disable immediately.

set_extensions_excluded(self, exts)

Set extensions to exclude on following solver/startup routines.

solve_extensions(self, exts[, add_enabled, ...])

Run extension dependencies solver on the input.

subscribe_to_extension_enable(self, ...)

Call callback if extension is enabled and hook in extension system to wait for extension to be enabled again (after reload for instance) and disabled.

sync_registry(self)

uninstall_extension(self, ext_id)

unpublish_extension(self, ext_id[, ...])

__init__(*args, **kwargs)#
add_path(
self: omni.ext._extensions.ExtensionManager,
path: str,
type: omni.ext._extensions.ExtensionPathType = <ExtensionPathType.COLLECTION: 0>,
) None#
add_path_protocol_provider(
self: omni.ext._extensions.ExtensionManager,
scheme: str,
on_add_path_fn: Callable[[str], str],
on_remove_path_fn: Callable[[str], None],
) bool#

Add new path protocol provider, scheme must be unique `false` returned otherwise.

Parameters:
  • scheme (str) – Scheme name.

  • fn (Callable[[str], str]) – The callback to be called when new search path is added for this scheme.

add_registry_provider(
self: omni.ext._extensions.ExtensionManager,
name: str,
provider: omni::ext::IRegistryProvider,
) bool#

Add registry provider to be used for remote extension registry.

Parameters:
fetch_all_extension_packages(
self: omni.ext._extensions.ExtensionManager,
) tuple#
fetch_extension_packages(
self: omni.ext._extensions.ExtensionManager,
arg0: str,
) tuple#
fetch_extension_summaries(
self: omni.ext._extensions.ExtensionManager,
) tuple#
fetch_extension_versions(
self: omni.ext._extensions.ExtensionManager,
arg0: str,
) tuple#
get_change_event_stream(
self: omni.ext._extensions.ExtensionManager,
) carb.events._events.IEventStream#
get_enabled_extension_id(
self: omni.ext._extensions.ExtensionManager,
ext_name: str,
) str#
get_enabled_extension_module_names()#

Get all python modules of enabled extensions

get_extension_dict(
self: omni.ext._extensions.ExtensionManager,
ext_id: str,
) carb.dictionary._dictionary.Item#
get_extension_id_by_module(module: str) str#

Get enabled extension id that contains this python module.

get_extension_packages(
self: omni.ext._extensions.ExtensionManager,
) tuple#
get_extension_path(
self: omni.ext._extensions.ExtensionManager,
ext_id: str,
) str#
get_extension_path_by_module(module: str) str#

Get enabled extension path that contains this python module.

get_extensions(
self: omni.ext._extensions.ExtensionManager,
) tuple#
get_folders(
self: omni.ext._extensions.ExtensionManager,
) tuple#

Get folders monitored for python extensions.

Returns (List[Dict]):

List of folders. Each folder is dict with “path” and “builtin” key.

get_hooks(
self: omni.ext._extensions.ExtensionManager,
) omni::ext::IExtensionManagerHooks#
get_registry_extension_dict(
self: omni.ext._extensions.ExtensionManager,
ext_id: str,
) carb.dictionary._dictionary.Item#
get_registry_extension_packages(
self: omni.ext._extensions.ExtensionManager,
) tuple#
get_registry_extensions(
self: omni.ext._extensions.ExtensionManager,
) tuple#
get_registry_providers(
self: omni.ext._extensions.ExtensionManager,
) tuple#
is_extension_enabled(
self: omni.ext._extensions.ExtensionManager,
ext_name: str,
) bool#
pack_extension(
ext_id: str,
output_folder: str,
) str#

Pack extension into archive.

Supports both single file extensions (kit files) and folders.

Parameters:
  • ext_id (str) – Local extension id.

  • output_folder – Folder to output archive into.

Returns:

Path to archived extension.

Return type:

str

process_and_apply_all_changes(
self: omni.ext._extensions.ExtensionManager,
) None#
publish_extension(
self: omni.ext._extensions.ExtensionManager,
ext_id: str,
provider_name: str = '',
allow_overwrite: bool = False,
) bool#
pull_extension(
self: omni.ext._extensions.ExtensionManager,
ext_id: str,
) bool#
pull_extension_async(
self: omni.ext._extensions.ExtensionManager,
ext_id: str,
) None#
refresh_registry(
self: omni.ext._extensions.ExtensionManager,
) None#
remove_path(
self: omni.ext._extensions.ExtensionManager,
path: str,
) None#
remove_path_protocol_provider(
self: omni.ext._extensions.ExtensionManager,
scheme: str,
) None#
remove_registry_provider(
self: omni.ext._extensions.ExtensionManager,
name: str,
) None#

Remove registry provider.

Parameters:

name (str) – Provider unique name.

set_extension_enabled(
self: omni.ext._extensions.ExtensionManager,
extension_id: str,
enabled: bool,
) None#

Toggle extension enable/disable.

Parameters:
  • extension_id (str) – Extension id. Full python module name, returned by `get_extensions`.

  • enabled (bool) – Enable/disable toggle.

set_extension_enabled_immediate(
self: omni.ext._extensions.ExtensionManager,
extension_id: str,
enabled: bool,
) bool#

Toggle extension enable/disable immediately.

Parameters:
  • extension_id (str) – Extension id. Full python module name, returned by `get_extensions`.

  • enabled (bool) – Enable/disable toggle.

Returns (bool):

Failure or success.

set_extensions_excluded(
self: omni.ext._extensions.ExtensionManager,
exts: List[str],
) None#

Set extensions to exclude on following solver/startup routines. They persist until next call to this function.

Parameters:

extensions (List[str]) – List Extension id with or without versions.

solve_extensions(
self: omni.ext._extensions.ExtensionManager,
exts: List[str],
add_enabled: bool = False,
return_only_disabled: bool = False,
) tuple#

Run extension dependencies solver on the input.

Input is a list of extension, they can be names, full id, partial versions like `ommi.foo-2`.

Parameters:
  • exts (List[str]) – List of extensions.

  • add_enabled (bool) – Automatically add already enabled extension to the input (to take into account)

  • return_only_disabled (bool) – If true exclude from the result extensions that are currently already enabled

Returns(Tuple[bool, List[str], str]):

Tuple of result, list of extensions (solution) and error message.

subscribe_to_extension_enable(
self: omni.ext._extensions.ExtensionManager,
on_enable_fn: Callable[[str], None],
on_disable_fn: Callable[[str], None] = None,
ext_name: str = '',
hook_name: str = '',
) Tuple[omni::ext::IHookHolder, omni::ext::IHookHolder]#

Call callback if extension is enabled and hook in extension system to wait for extension to be enabled again (after reload for instance) and disabled.

Example:

def on_ext_enabled(ext_id: str):
    print("enabled:" + ext_id)

def on_ext_disabled(ext_id: str):
    print("disabled:" + ext_id)

manager = omni.kit.app.get_app().get_extension_manager()
self.hooks = manager.subscribe_to_extension_enable(on_ext_enabled, on_ext_disabled, ext_name="omni.kit.window.console", hook_name="la la la")
# Notice that we stored subscription holder somewhere (in self for instance) to hold it.
Parameters:
  • on_enable_fn (Callable[[str]]) – The callback to be called when extension is enabled. It accepts extension id.

  • on_disable_fn (Callable[[str]], optional) – The callback to be called when extension is disabled. It accepts extension id.

  • ext_name (str, optional) – Extension name to look for. Hook is only called for extensions with matching name. Can be empty.

  • hook_name (str) – Hook name for debugging and logging.

Returns:

Pair of hook holders.

sync_registry(
self: omni.ext._extensions.ExtensionManager,
) bool#
uninstall_extension(
self: omni.ext._extensions.ExtensionManager,
ext_id: str,
) bool#
unpublish_extension(
self: omni.ext._extensions.ExtensionManager,
ext_id: str,
provider_name: str = '',
) bool#