# Copyright (C) 2006 The Trustees of Princeton University
#
-from types import NoneType, IntType, LongType, FloatType, StringTypes, DictType, TupleType, ListType
+from types import NoneType, IntType, LongType, FloatType, DictType, TupleType, ListType
from sfa.util.faults import SfaAPIError
+from sfa.util.py23 import StringType
+
+
class Parameter:
"""
Typed value wrapper. Use in accepts and returns to document method
sub-parameters (i.e., dict fields).
"""
- def __init__(self, type, doc = "",
- min = None, max = None,
- optional = None,
- ro = False,
- nullok = False):
+ def __init__(self, type, doc="",
+ min=None, max=None,
+ optional=None,
+ ro=False,
+ nullok=False):
# Basic type of the parameter. Must be a builtin type
# that can be marshalled by XML-RPC.
self.type = type
def __repr__(self):
return repr(self.type)
+
class Mixed(tuple):
"""
A list (technically, a tuple) of types. Use in accepts and returns
else:
return type(arg)
+
def xmlrpc_type(arg):
"""
Returns the XML-RPC type of the specified argument, which may be a
return "boolean"
elif arg_type == FloatType:
return "double"
- elif arg_type in StringTypes:
+ elif issubclass(arg_type, StringType):
return "string"
elif arg_type == ListType or arg_type == TupleType:
return "array"