Exemple #1
0
 def test_lazyimport(self):
     from stuf.six import callable
     from stuf.utils import lazyimport
     fsum = lazyimport('math.fsum')
     self.assertTrue(callable(fsum))
     fsum = lazyimport('math', 'fsum')
     self.assertTrue(callable(fsum))
Exemple #2
0
 def _load(self, destination, conf):
     # load configuration
     if isstring(conf):
         # load import
         conf = lazyimport(conf)
     if isinstance(conf, _BaseFactory):
         # load configuration from factory
         destination.update(i for i in conf)
     elif isclass(conf):
         # load configuration from class
         newconf = {}
         xpartmap(
             lambda x, y: x({y.pop('classname', 'options'): y}),
             iter(lazyknife(conf).traverse().attrs('maps').merge()),
             newconf.update,
         )
         destination.update(newconf)
def store_backend(uri, **kw):
    '''
    Loads the right store backend based on a URI.

    :argument uri: instance or name :class:`str`
    '''
    if isinstance(uri, strings):
        mod = stores[uri.split('://', 1)[0]]
        # load module if setuptools not present
        if isinstance(mod, strings):
            # isolate classname from dot path
            module, klass = mod.split(':')
            # load module
            mod = lazyimport(module, klass)
        # load appropriate class from setuptools entry point
        else:
            mod = mod.load()
        # return instance
        return mod(uri, **kw)
    # no-op for existing instances
    return uri
Exemple #4
0
def store_backend(uri, **kw):
    '''
    Loads the right store backend based on a URI.

    :argument uri: instance or name :class:`str`
    '''
    if isinstance(uri, strings):
        mod = stores[uri.split('://', 1)[0]]
        # load module if setuptools not present
        if isinstance(mod, strings):
            # isolate classname from dot path
            module, klass = mod.split(':')
            # load module
            mod = lazyimport(module, klass)
        # load appropriate class from setuptools entry point
        else:
            mod = mod.load()
        # return instance
        return mod(uri, **kw)
    # no-op for existing instances
    return uri