def _getModuleList(moduleDir): moduleNameSet = _getModuleFiles(moduleDir) moduleList = [] PH.addPath(moduleDir) for moduleName in moduleNameSet: try: module = __import__(moduleName, fromlist=['']) module and moduleList.append(module) except: _logger.error('error in _getModuleList: %s', moduleName) traceback.print_exc() continue _logger.info('_getModuleList: %s', str(moduleList)) return moduleList
# # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. import PathHelper as PH PH.addPathes('../') import inspect from MarsLog.LogManager import LogManager from MessageCodec import Md5IndexDecoder from Utils import ExtendableType class EntityFactory(object): __metaclass__ = ExtendableType _instance = None def __init__(self): self.logger = LogManager.getLogger('Utils.EntityFactory') self.entityClasses = {} @staticmethod
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. import PathHelper as PH PH.addPathes("../") import AsyncIo def addTimer(delay, func, *args, **kwargs): """ * delay(float): seconds to wait. * func(object): callable object to call later. * args: arguments to call it with. * kwargs: keyword arguments to call it with; a special `errCaller` parameter can be passed: it's a callable called in case target function raise an exception. * return: a timer object can reset or cancel. """