Manager is the Components Manager package of Umbra, sIBL_GUI and sIBL_Reporter.
Project description
Introduction
Manager is the Components Manager package of Umbra, sIBL_GUI and sIBL_Reporter. Components are simple python packages extending capabilities of their host application.
Installation
The following dependencies are needed:
Python 2.6.7 or Python 2.7.3: http://www.python.org/
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://github.com/KelSolaar/Manager.git cd Manager python setup.py install
If you want to build the documentation you will also need:
Usage
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 ├── __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:
[Component] Name = core.testsComponentA Title = Tests Component A Module = testsComponentA Object = TestsComponentA Version = 1.0 [Informations] Author = Thomas Mansencal Email = thomas.mansencal@gmail.com Url = http://www.hdrlabs.com/ Description = Core tests Component A.
Given the following directories structure:
core ├── __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() True >>> manager.listComponents() ['core.testsComponentA', 'core.testsComponentB'] >>> manager.instantiateComponents() True >>> 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
About
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file Manager-2.0.5.tar.gz
.
File metadata
- Download URL: Manager-2.0.5.tar.gz
- Upload date:
- Size: 751.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89d16c3835d66f2b95352ee4449f8ece0f983b0c5171ce0774128a129a879091 |
|
MD5 | 61bc2f8d2d027de8899859cd9310ecaa |
|
BLAKE2b-256 | 618d3b9bce5400950d1029131dfcbb8b4487ca932abbe735bda412fdae149e7b |