MCPcopy Create free account
hub / github.com/ronreiter/interactive-tutorials / Definition

Class Definition

suds/properties.py:134–196  ·  view source on GitHub ↗

Property definition. @ivar name: The property name. @type name: str @ivar classes: The (class) list of permitted values @type classes: tuple @ivar default: The default value. @ivar type: any

Source from the content-addressed store, hash-verified

132
133
134class Definition:
135 """
136 Property definition.
137 @ivar name: The property name.
138 @type name: str
139 @ivar classes: The (class) list of permitted values
140 @type classes: tuple
141 @ivar default: The default value.
142 @ivar type: any
143 """
144 def __init__(self, name, classes, default, linker=AutoLinker()):
145 """
146 @param name: The property name.
147 @type name: str
148 @param classes: The (class) list of permitted values
149 @type classes: tuple
150 @param default: The default value.
151 @type default: any
152 """
153 if not isinstance(classes, (list, tuple)):
154 classes = (classes,)
155 self.name = name
156 self.classes = classes
157 self.default = default
158 self.linker = linker
159
160 def nvl(self, value=None):
161 """
162 Convert the I{value} into the default when I{None}.
163 @param value: The proposed value.
164 @type value: any
165 @return: The I{default} when I{value} is I{None}, else I{value}.
166 @rtype: any
167 """
168 if value is None:
169 return self.default
170 else:
171 return value
172
173 def validate(self, value):
174 """
175 Validate the I{value} is of the correct class.
176 @param value: The value to validate.
177 @type value: any
178 @raise AttributeError: When I{value} is invalid.
179 """
180 if value is None:
181 return
182 if len(self.classes) and not isinstance(value, self.classes):
183 msg = '"%s" must be: %s' % (self.name, self.classes)
184 raise AttributeError(msg)
185
186 def __repr__(self):
187 return '%s: %s' % (self.name, str(self))
188
189 def __str__(self):
190 s = []
191 if len(self.classes):

Callers 2

__init__Method · 0.90
__init__Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected