# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: Parameter.py,v 1.6 2006/11/08 22:10:00 mlhuang Exp $
-#
-from types import *
from PLC.Faults import *
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, typeval, 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
+ self.type = typeval
# Documentation string for the parameter
self.doc = doc
def __new__(cls, *types):
return tuple.__new__(cls, types)
-
def python_type(arg):
"""
Returns the Python type of the specified argument, which may be a
arg_type = python_type(arg)
- if arg_type == NoneType:
+ if arg_type is type(None):
return "nil"
- elif arg_type == IntType or arg_type == LongType:
+ elif arg_type is int:
return "int"
- elif arg_type == bool:
+ elif arg_type is bool:
return "boolean"
- elif arg_type == FloatType:
+ elif arg_type is float:
return "double"
- elif arg_type in StringTypes:
+ elif arg_type is str:
return "string"
- elif arg_type == ListType or arg_type == TupleType:
+ elif arg_type in (list, tuple):
return "array"
- elif arg_type == DictType:
+ elif arg_type is dict:
return "struct"
elif arg_type == Mixed:
# Not really an XML-RPC type but return "mixed" for
# documentation purposes.
return "mixed"
else:
- raise PLCAPIError, "XML-RPC cannot marshal %s objects" % arg_type
+ raise PLCAPIError("XML-RPC cannot marshal %s objects" % arg_type)