Skip to content
Python Shell
Find file
New pull request
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.




Manager is the Components Manager package of Umbra, sIBL_GUI and sIBL_Reporter. Components are simple python packages extending capabilities of their host application.


The following dependencies are needed:

To install Manager from the Python Package Index you can issue this command in a shell:

pip install Manager

or this alternative command:

easy_install Manager

You can also directly install from Github source repository:

git clone git://
cd Manager
python install

If you want to build the documentation you will also need:


Please refer to Manager - Api for precise usage examples.

A Component package contains at least a resource .rc description file and a main module:

└── testsComponentA.rc

The description file is a configuration style file with a structure similar to what you would find in Microsoft Windows INI files:

Name = core.testsComponentA
Title = Tests Component A
Module = testsComponentA
Object = TestsComponentA
Version = 1.0

Author = Thomas Mansencal
Email =
Url =
Description = Core tests Component A.

Given the following directories structure:

├── testsComponentA
│   ├──
│   ├──
│   └── testsComponentA.rc
└── testsComponentB
        └── testsComponentB.rc

Instantiating the Components Manager is done the following way:

>>> manager = Manager(("./manager/tests/testsManager/resources/components/core",))
>>> manager.registerComponents()
>>> manager.listComponents()
['core.testsComponentA', 'core.testsComponentB']
>>> manager.instantiateComponents()
>>> manager.getInterface("core.testsComponentA")
<testsComponentA.TestsComponentA object at 0x11dd990>

manager.componentsManager.Manager.getInterface(name) method returns the interface of given Component, in the previous example it's the object declared in the description file by this statement: Object = TestsComponentA.

Three base Components are provided by default:

  • manager.component.Component
  • manager.qobjectComponent.QObjectComponent
  • manager.qwidgetComponent.QWidgetComponent

When inheriting from those Components, one have to reimplement the following methods for all the Components types:

  • activate
  • deactivate

activated attribute has to be set accordingly in the methods implementation.

When implementing a manager.qwidgetComponent.Component or manager.qobjectComponent.QObjectComponent, the following methods are also needed:

  • initialize
  • uninitialize

initialized attribute has to be set accordingly in the methods implementation.

Or alternatively, those methods when implementing a manager.qwidgetComponent.QWidgetComponent:

  • initializeUi
  • uninitializeUi

initializedUi attribute has to be set accordingly in the methods implementation.

Reference Component implementation example class:

class TestsComponentA(Component):

        def __init__(self, name=None):
                Component.__init__(self, name=name)

                self.deactivatable = True

        def activate(self):
                print("> Activating '{0}' Component.".format(self.__class__.__name__))

                self.activated = True
                return True

        def deactivate(self):
                print("> Deactivating '{0}' Component.".format(self.__class__.__name__))

                self.activated = False
                return True

        def initialize(self):
                print("> Initializing '{0}' Component.".format(self.__class__.__name__))

                self.initialized = True
                return True

        def uninitialize(self):
                print("> Uninitializing '{0}' Component.".format(self.__class__.__name__))

                self.initialized = False
                return True


Manager by Thomas Mansencal – 2008 - 2014
Copyright © 2008 - 2014 – Thomas Mansencal –
This software is released under terms of GNU GPL V3 license:
Something went wrong with that request. Please try again.