X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fstorage%2Fparameter.py;h=1545cac483f21aacce887d69f3c87d05013375a7;hb=fd395e1944dcd49f10a4d5b27ce4983ad389fb96;hp=6737d0bd226ad0dded13887c459d7434955360e8;hpb=ecc85e0b923922cf7117d29b380f5284edb88f21;p=sfa.git diff --git a/sfa/storage/parameter.py b/sfa/storage/parameter.py index 6737d0bd..1545cac4 100644 --- a/sfa/storage/parameter.py +++ b/sfa/storage/parameter.py @@ -5,9 +5,12 @@ # 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 @@ -15,11 +18,11 @@ class Parameter: 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 @@ -49,6 +52,7 @@ class Parameter: def __repr__(self): return repr(self.type) + class Mixed(tuple): """ A list (technically, a tuple) of types. Use in accepts and returns @@ -73,6 +77,7 @@ def python_type(arg): else: return type(arg) + def xmlrpc_type(arg): """ Returns the XML-RPC type of the specified argument, which may be a @@ -89,7 +94,7 @@ def xmlrpc_type(arg): 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"