views:

191

answers:

2

I'm using SOAPpy to access a SOAP Webservice. This call to the function findPathwaysByText works just fine:

server.findPathwaysByText (query= 'WP619', species = 'Mus musculus')

However, this call to the function login does not:

server.login (user='amarillion', pass='*****')

Because pass is a reserved word, python won't run this. Is there a workaround?

A: 

You can say

server.login(user='amarillion', **{'pass': '*****'})

The double-asterix syntax here applies keyword arguments. Here's a simple example that shows what's happening:

def f(a, b):
    return a + b

kwargs = {"a": 5, "b": 6}
return f(**kwargs)        # same as saying f(a=5, b=6)
Eli Courtwright
+2  A: 

You could try:

d = {'user':'amarillion', 'pass':'*****' }
server.login(**d)

This passes in the given dictionary as though they were keyword arguments (the **)