45 lines
1010 B
Cython
45 lines
1010 B
Cython
|
#cython: language_level=3
|
||
|
|
||
|
'''
|
||
|
Created on 27 mars 2016
|
||
|
|
||
|
@author: coissac
|
||
|
'''
|
||
|
|
||
|
import pkgutil
|
||
|
|
||
|
from obitools3 import commands
|
||
|
|
||
|
cdef object loadCommand(str name,loader):
|
||
|
'''
|
||
|
Load a command module from its name and an ImpLoader
|
||
|
|
||
|
This function is for internal use
|
||
|
|
||
|
@param name: name of the module
|
||
|
@type name: str
|
||
|
@param loader: the module loader
|
||
|
@type loader: ImpLoader
|
||
|
|
||
|
@return the loaded module
|
||
|
@rtype: module
|
||
|
'''
|
||
|
|
||
|
module = loader.find_module(name).load_module(name)
|
||
|
return module
|
||
|
|
||
|
def getCommandsList():
|
||
|
'''
|
||
|
Returns the list of sub-commands available to the main `obi` command
|
||
|
|
||
|
@return: a dict instance with key corresponding to each command and
|
||
|
value corresponding to the module
|
||
|
|
||
|
@rtype: dict
|
||
|
'''
|
||
|
|
||
|
cdef dict cmds = dict((x[1],loadCommand(x[1],x[0]))
|
||
|
for x in pkgutil.iter_modules(commands.__path__)
|
||
|
if not x[2])
|
||
|
return cmds
|