Skip to content

Commit

Permalink
argsdef_in and _out as dict
Browse files Browse the repository at this point in the history
As mentioned in flyte#4
  • Loading branch information
smaiLee authored Aug 31, 2017
1 parent 561fdba commit 5199a14
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions upnpclient/upnp.py
Original file line number Diff line number Diff line change
Expand Up @@ -272,17 +272,17 @@ def _read_actions(self):

for action_node in self._findall('actionList/action'):
name = action_node.findtext('name', namespaces=action_node.nsmap)
argsdef_in = []
argsdef_out = []
argsdef_in = {}
argsdef_out = {}
for arg_node in action_node.findall(
'argumentList/argument', namespaces=action_node.nsmap):
findtext = partial(arg_node.findtext, namespaces=arg_node.nsmap)
arg_name = findtext('name')
arg_statevar = self.statevars[findtext('relatedStateVariable')]
if findtext('direction').lower() == 'in':
argsdef_in.append((arg_name, arg_statevar))
argsdef_in[arg_name] = arg_statevar
else:
argsdef_out.append((arg_name, arg_statevar))
argsdef_out[arg_name] = arg_statevar
action = Action(self, action_url, self.service_type, name, argsdef_in, argsdef_out)
self.action_map[name] = action
self.actions.append(action)
Expand Down Expand Up @@ -399,7 +399,7 @@ def __repr__(self):
def __call__(self, **kwargs):
arg_reasons = {}
# Validate arguments using the SCPD stateVariable definitions
for name, statevar in self.argsdef_in:
for name, statevar in self.argsdef_in.items():
if name not in kwargs:
raise UPNPError('Missing required param \'%s\'' % (name))
valid, reasons = self.validate_arg(kwargs[name], statevar)
Expand All @@ -415,7 +415,7 @@ def __call__(self, **kwargs):

# Marshall the response to python data types
out = {}
for name, statevar in self.argsdef_out:
for name, statevar in self.argsdef_out.items():
_, value = marshal_value(statevar['datatype'], soap_response[name])
out[name] = value

Expand Down

0 comments on commit 5199a14

Please sign in to comment.