Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

pypm install manager

How to install Manager

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install manager
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
2.0.4 Available View build log
Linux (64-bit)
2.0.4 Available View build log
Depended by
Lastest release
version 2.0.4 on Apr 26th, 2013


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

Alternatively, if you want to directly install from Github source repository:

git clone git://github.com/KelSolaar/Manager.git
cd Manager
python setup.py 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:

├── __init__.py
├── testsComponentA.py
└── 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 = thomas.mansencal@gmail.com
Url = http://www.hdrlabs.com/
Description = Core tests Component A.

Given the following directories structure:

├── __init__.py
├── testsComponentA
│   ├── __init__.py
│   ├── testsComponentA.py
│   └── testsComponentA.rc
└── testsComponentB
        ├── __init__.py
        ├── testsComponentB.py
        └── 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 - 2013
Copyright© 2008 - 2013 – Thomas Mansencal – thomas.mansencal@gmail.com
This software is released under terms of GNU GPL V3 license: http://www.gnu.org/licenses/

Subscribe to package updates

Last updated Apr 26th, 2013

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.