Exemplo n.º 1
0
def evalurl(url, **opts):
    '''
    Construct either a local object or a telepath proxy.

    Args:
        url (str): URL to evaluate
        **opts: Additional options.

    Notes:
        This API enables the ctor:// protocol which uses ``eval()``.
        It should **only** be used with trusted inputs!

    Examples:
        Get a remote object over a TCP connection:

            item0 = evalurl('tcp://1.2.3.4:90/foo')

        Get a local object via ctor:

            item1 = evalurl('ctor://foo.bar.baz("woot",y=20)')

    Returns:
        object: A python object
    '''
    if url.find('://') == -1:
        raise s_common.BadUrl(url)

    scheme, therest = url.split('://', 1)
    if scheme == 'ctor':
        locs = opts.get('locs')
        return s_dyndeps.runDynEval(therest, locs=locs)

    return openurl(url, **opts)
Exemplo n.º 2
0
def evalurl(url,**opts):
    '''
    Construct either a local object or a telepath proxy.

    WARNING: this API enables ctor:// proto which uses eval!
             ( trusted inputs only )

    Example:

        item0 = evalurl('tcp://1.2.3.4:90/foo')
        item1 = evalurl('ctor://foo.bar.baz("woot",y=20)')

    '''
    if url.find('://') == -1:
        raise BadUrl(url)

    scheme,therest = url.split('://',1)
    if scheme == 'ctor':
        locs = opts.get('locs')
        return s_dyndeps.runDynEval(therest, locs=locs)

    return openurl(url,**opts)
Exemplo n.º 3
0
def evalurl(url,**opts):
    '''
    Construct either a local object or a telepath proxy.

    WARNING: this API enables ctor:// proto which uses eval!
             ( trusted inputs only )

    Example:

        item0 = evalurl('tcp://1.2.3.4:90/foo')
        item1 = evalurl('ctor://foo.bar.baz("woot",y=20)')

    '''
    if url.find('://') == -1:
        raise BadUrl(url)

    scheme,therest = url.split('://',1)
    if scheme == 'ctor':
        locs = opts.get('locs')
        return s_dyndeps.runDynEval(therest, locs=locs)

    return openurl(url,**opts)
Exemplo n.º 4
0
 def test_dyndeps_eval(self):
     valu = s_dyndeps.runDynEval('synapse.tests.test_dyndeps.woot(40,y=10)')
     self.assertEqual( valu, 50 )
Exemplo n.º 5
0
 def test_dyndeps_eval(self):
     valu = s_dyndeps.runDynEval('synapse.tests.test_dyndeps.woot(40,y=10)')
     self.assertEqual(valu, 50)