karrio-tnt 2025.5rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3077 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ #
5
+ # Generated Sun Oct 22 20:42:03 2023 by generateDS.py version 2.43.2.
6
+ # Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
7
+ #
8
+ # Command line options:
9
+ # ('--no-namespace-defs', '')
10
+ # ('-o', './karrio/schemas/tnt/rating_response.py')
11
+ #
12
+ # Command line arguments:
13
+ # ./schemas/rating_response.xsd
14
+ #
15
+ # Command line:
16
+ # /home/kserver/Workspace/karrio/.venv/karrio/bin/generateDS --no-namespace-defs -o "./karrio/schemas/tnt/rating_response.py" ./schemas/rating_response.xsd
17
+ #
18
+ # Current working directory (os.getcwd()):
19
+ # tnt
20
+ #
21
+
22
+ import sys
23
+ try:
24
+ ModulenotfoundExp_ = ModuleNotFoundError
25
+ except NameError:
26
+ ModulenotfoundExp_ = ImportError
27
+ from six.moves import zip_longest
28
+ import os
29
+ import re as re_
30
+ import base64
31
+ import datetime as datetime_
32
+ import decimal as decimal_
33
+ from lxml import etree as etree_
34
+
35
+
36
+ Validate_simpletypes_ = True
37
+ SaveElementTreeNode = True
38
+ TagNamePrefix = ""
39
+ if sys.version_info.major == 2:
40
+ BaseStrType_ = basestring
41
+ else:
42
+ BaseStrType_ = str
43
+
44
+
45
+ def parsexml_(infile, parser=None, **kwargs):
46
+ if parser is None:
47
+ # Use the lxml ElementTree compatible parser so that, e.g.,
48
+ # we ignore comments.
49
+ try:
50
+ parser = etree_.ETCompatXMLParser()
51
+ except AttributeError:
52
+ # fallback to xml.etree
53
+ parser = etree_.XMLParser()
54
+ try:
55
+ if isinstance(infile, os.PathLike):
56
+ infile = os.path.join(infile)
57
+ except AttributeError:
58
+ pass
59
+ doc = etree_.parse(infile, parser=parser, **kwargs)
60
+ return doc
61
+
62
+ def parsexmlstring_(instring, parser=None, **kwargs):
63
+ if parser is None:
64
+ # Use the lxml ElementTree compatible parser so that, e.g.,
65
+ # we ignore comments.
66
+ try:
67
+ parser = etree_.ETCompatXMLParser()
68
+ except AttributeError:
69
+ # fallback to xml.etree
70
+ parser = etree_.XMLParser()
71
+ element = etree_.fromstring(instring, parser=parser, **kwargs)
72
+ return element
73
+
74
+ #
75
+ # Namespace prefix definition table (and other attributes, too)
76
+ #
77
+ # The module generatedsnamespaces, if it is importable, must contain
78
+ # a dictionary named GeneratedsNamespaceDefs. This Python dictionary
79
+ # should map element type names (strings) to XML schema namespace prefix
80
+ # definitions. The export method for any class for which there is
81
+ # a namespace prefix definition, will export that definition in the
82
+ # XML representation of that element. See the export method of
83
+ # any generated element type class for an example of the use of this
84
+ # table.
85
+ # A sample table is:
86
+ #
87
+ # # File: generatedsnamespaces.py
88
+ #
89
+ # GenerateDSNamespaceDefs = {
90
+ # "ElementtypeA": "http://www.xxx.com/namespaceA",
91
+ # "ElementtypeB": "http://www.xxx.com/namespaceB",
92
+ # }
93
+ #
94
+ # Additionally, the generatedsnamespaces module can contain a python
95
+ # dictionary named GenerateDSNamespaceTypePrefixes that associates element
96
+ # types with the namespace prefixes that are to be added to the
97
+ # "xsi:type" attribute value. See the _exportAttributes method of
98
+ # any generated element type and the generation of "xsi:type" for an
99
+ # example of the use of this table.
100
+ # An example table:
101
+ #
102
+ # # File: generatedsnamespaces.py
103
+ #
104
+ # GenerateDSNamespaceTypePrefixes = {
105
+ # "ElementtypeC": "aaa:",
106
+ # "ElementtypeD": "bbb:",
107
+ # }
108
+ #
109
+
110
+ try:
111
+ from generatedsnamespaces import GenerateDSNamespaceDefs as GenerateDSNamespaceDefs_
112
+ except ModulenotfoundExp_ :
113
+ GenerateDSNamespaceDefs_ = {}
114
+ try:
115
+ from generatedsnamespaces import GenerateDSNamespaceTypePrefixes as GenerateDSNamespaceTypePrefixes_
116
+ except ModulenotfoundExp_ :
117
+ GenerateDSNamespaceTypePrefixes_ = {}
118
+
119
+ #
120
+ # You can replace the following class definition by defining an
121
+ # importable module named "generatedscollector" containing a class
122
+ # named "GdsCollector". See the default class definition below for
123
+ # clues about the possible content of that class.
124
+ #
125
+ try:
126
+ from generatedscollector import GdsCollector as GdsCollector_
127
+ except ModulenotfoundExp_ :
128
+
129
+ class GdsCollector_(object):
130
+
131
+ def __init__(self, messages=None):
132
+ if messages is None:
133
+ self.messages = []
134
+ else:
135
+ self.messages = messages
136
+
137
+ def add_message(self, msg):
138
+ self.messages.append(msg)
139
+
140
+ def get_messages(self):
141
+ return self.messages
142
+
143
+ def clear_messages(self):
144
+ self.messages = []
145
+
146
+ def print_messages(self):
147
+ for msg in self.messages:
148
+ print("Warning: {}".format(msg))
149
+
150
+ def write_messages(self, outstream):
151
+ for msg in self.messages:
152
+ outstream.write("Warning: {}\n".format(msg))
153
+
154
+
155
+ #
156
+ # The super-class for enum types
157
+ #
158
+
159
+ try:
160
+ from enum import Enum
161
+ except ModulenotfoundExp_ :
162
+ Enum = object
163
+
164
+ #
165
+ # The root super-class for element type classes
166
+ #
167
+ # Calls to the methods in these classes are generated by generateDS.py.
168
+ # You can replace these methods by re-implementing the following class
169
+ # in a module named generatedssuper.py.
170
+
171
+ try:
172
+ from generatedssuper import GeneratedsSuper
173
+ except ModulenotfoundExp_ as exp:
174
+ try:
175
+ from generatedssupersuper import GeneratedsSuperSuper
176
+ except ModulenotfoundExp_ as exp:
177
+ class GeneratedsSuperSuper(object):
178
+ pass
179
+
180
+ class GeneratedsSuper(GeneratedsSuperSuper):
181
+ __hash__ = object.__hash__
182
+ tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
183
+ class _FixedOffsetTZ(datetime_.tzinfo):
184
+ def __init__(self, offset, name):
185
+ self.__offset = datetime_.timedelta(minutes=offset)
186
+ self.__name = name
187
+ def utcoffset(self, dt):
188
+ return self.__offset
189
+ def tzname(self, dt):
190
+ return self.__name
191
+ def dst(self, dt):
192
+ return None
193
+ def __str__(self):
194
+ settings = {
195
+ 'str_pretty_print': True,
196
+ 'str_indent_level': 0,
197
+ 'str_namespaceprefix': '',
198
+ 'str_name': self.__class__.__name__,
199
+ 'str_namespacedefs': '',
200
+ }
201
+ for n in settings:
202
+ if hasattr(self, n):
203
+ settings[n] = getattr(self, n)
204
+ if sys.version_info.major == 2:
205
+ from StringIO import StringIO
206
+ else:
207
+ from io import StringIO
208
+ output = StringIO()
209
+ self.export(
210
+ output,
211
+ settings['str_indent_level'],
212
+ pretty_print=settings['str_pretty_print'],
213
+ namespaceprefix_=settings['str_namespaceprefix'],
214
+ name_=settings['str_name'],
215
+ namespacedef_=settings['str_namespacedefs']
216
+ )
217
+ strval = output.getvalue()
218
+ output.close()
219
+ return strval
220
+ def gds_format_string(self, input_data, input_name=''):
221
+ return input_data
222
+ def gds_parse_string(self, input_data, node=None, input_name=''):
223
+ return input_data
224
+ def gds_validate_string(self, input_data, node=None, input_name=''):
225
+ if not input_data:
226
+ return ''
227
+ else:
228
+ return input_data
229
+ def gds_format_base64(self, input_data, input_name=''):
230
+ return base64.b64encode(input_data).decode('ascii')
231
+ def gds_validate_base64(self, input_data, node=None, input_name=''):
232
+ return input_data
233
+ def gds_format_integer(self, input_data, input_name=''):
234
+ return '%d' % int(input_data)
235
+ def gds_parse_integer(self, input_data, node=None, input_name=''):
236
+ try:
237
+ ival = int(input_data)
238
+ except (TypeError, ValueError) as exp:
239
+ raise_parse_error(node, 'Requires integer value: %s' % exp)
240
+ return ival
241
+ def gds_validate_integer(self, input_data, node=None, input_name=''):
242
+ try:
243
+ value = int(input_data)
244
+ except (TypeError, ValueError):
245
+ raise_parse_error(node, 'Requires integer value')
246
+ return value
247
+ def gds_format_integer_list(self, input_data, input_name=''):
248
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
249
+ input_data = [str(s) for s in input_data]
250
+ return '%s' % ' '.join(input_data)
251
+ def gds_validate_integer_list(
252
+ self, input_data, node=None, input_name=''):
253
+ values = input_data.split()
254
+ for value in values:
255
+ try:
256
+ int(value)
257
+ except (TypeError, ValueError):
258
+ raise_parse_error(node, 'Requires sequence of integer values')
259
+ return values
260
+ def gds_format_float(self, input_data, input_name=''):
261
+ value = ('%.15f' % float(input_data)).rstrip('0')
262
+ if value.endswith('.'):
263
+ value += '0'
264
+ return value
265
+
266
+ def gds_parse_float(self, input_data, node=None, input_name=''):
267
+ try:
268
+ fval_ = float(input_data)
269
+ except (TypeError, ValueError) as exp:
270
+ raise_parse_error(node, 'Requires float or double value: %s' % exp)
271
+ return fval_
272
+ def gds_validate_float(self, input_data, node=None, input_name=''):
273
+ try:
274
+ value = float(input_data)
275
+ except (TypeError, ValueError):
276
+ raise_parse_error(node, 'Requires float value')
277
+ return value
278
+ def gds_format_float_list(self, input_data, input_name=''):
279
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
280
+ input_data = [str(s) for s in input_data]
281
+ return '%s' % ' '.join(input_data)
282
+ def gds_validate_float_list(
283
+ self, input_data, node=None, input_name=''):
284
+ values = input_data.split()
285
+ for value in values:
286
+ try:
287
+ float(value)
288
+ except (TypeError, ValueError):
289
+ raise_parse_error(node, 'Requires sequence of float values')
290
+ return values
291
+ def gds_format_decimal(self, input_data, input_name=''):
292
+ return_value = '%s' % input_data
293
+ if '.' in return_value:
294
+ return_value = return_value.rstrip('0')
295
+ if return_value.endswith('.'):
296
+ return_value = return_value.rstrip('.')
297
+ return return_value
298
+ def gds_parse_decimal(self, input_data, node=None, input_name=''):
299
+ try:
300
+ decimal_value = decimal_.Decimal(input_data)
301
+ except (TypeError, ValueError):
302
+ raise_parse_error(node, 'Requires decimal value')
303
+ return decimal_value
304
+ def gds_validate_decimal(self, input_data, node=None, input_name=''):
305
+ try:
306
+ value = decimal_.Decimal(input_data)
307
+ except (TypeError, ValueError):
308
+ raise_parse_error(node, 'Requires decimal value')
309
+ return value
310
+ def gds_format_decimal_list(self, input_data, input_name=''):
311
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
312
+ input_data = [str(s) for s in input_data]
313
+ return ' '.join([self.gds_format_decimal(item) for item in input_data])
314
+ def gds_validate_decimal_list(
315
+ self, input_data, node=None, input_name=''):
316
+ values = input_data.split()
317
+ for value in values:
318
+ try:
319
+ decimal_.Decimal(value)
320
+ except (TypeError, ValueError):
321
+ raise_parse_error(node, 'Requires sequence of decimal values')
322
+ return values
323
+ def gds_format_double(self, input_data, input_name=''):
324
+ return '%s' % input_data
325
+ def gds_parse_double(self, input_data, node=None, input_name=''):
326
+ try:
327
+ fval_ = float(input_data)
328
+ except (TypeError, ValueError) as exp:
329
+ raise_parse_error(node, 'Requires double or float value: %s' % exp)
330
+ return fval_
331
+ def gds_validate_double(self, input_data, node=None, input_name=''):
332
+ try:
333
+ value = float(input_data)
334
+ except (TypeError, ValueError):
335
+ raise_parse_error(node, 'Requires double or float value')
336
+ return value
337
+ def gds_format_double_list(self, input_data, input_name=''):
338
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
339
+ input_data = [str(s) for s in input_data]
340
+ return '%s' % ' '.join(input_data)
341
+ def gds_validate_double_list(
342
+ self, input_data, node=None, input_name=''):
343
+ values = input_data.split()
344
+ for value in values:
345
+ try:
346
+ float(value)
347
+ except (TypeError, ValueError):
348
+ raise_parse_error(
349
+ node, 'Requires sequence of double or float values')
350
+ return values
351
+ def gds_format_boolean(self, input_data, input_name=''):
352
+ return ('%s' % input_data).lower()
353
+ def gds_parse_boolean(self, input_data, node=None, input_name=''):
354
+ input_data = input_data.strip()
355
+ if input_data in ('true', '1'):
356
+ bval = True
357
+ elif input_data in ('false', '0'):
358
+ bval = False
359
+ else:
360
+ raise_parse_error(node, 'Requires boolean value')
361
+ return bval
362
+ def gds_validate_boolean(self, input_data, node=None, input_name=''):
363
+ if input_data not in (True, 1, False, 0, ):
364
+ raise_parse_error(
365
+ node,
366
+ 'Requires boolean value '
367
+ '(one of True, 1, False, 0)')
368
+ return input_data
369
+ def gds_format_boolean_list(self, input_data, input_name=''):
370
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
371
+ input_data = [str(s) for s in input_data]
372
+ return '%s' % ' '.join(input_data)
373
+ def gds_validate_boolean_list(
374
+ self, input_data, node=None, input_name=''):
375
+ values = input_data.split()
376
+ for value in values:
377
+ value = self.gds_parse_boolean(value, node, input_name)
378
+ if value not in (True, 1, False, 0, ):
379
+ raise_parse_error(
380
+ node,
381
+ 'Requires sequence of boolean values '
382
+ '(one of True, 1, False, 0)')
383
+ return values
384
+ def gds_validate_datetime(self, input_data, node=None, input_name=''):
385
+ return input_data
386
+ def gds_format_datetime(self, input_data, input_name=''):
387
+ if input_data.microsecond == 0:
388
+ _svalue = '%04d-%02d-%02dT%02d:%02d:%02d' % (
389
+ input_data.year,
390
+ input_data.month,
391
+ input_data.day,
392
+ input_data.hour,
393
+ input_data.minute,
394
+ input_data.second,
395
+ )
396
+ else:
397
+ _svalue = '%04d-%02d-%02dT%02d:%02d:%02d.%s' % (
398
+ input_data.year,
399
+ input_data.month,
400
+ input_data.day,
401
+ input_data.hour,
402
+ input_data.minute,
403
+ input_data.second,
404
+ ('%f' % (float(input_data.microsecond) / 1000000))[2:],
405
+ )
406
+ if input_data.tzinfo is not None:
407
+ tzoff = input_data.tzinfo.utcoffset(input_data)
408
+ if tzoff is not None:
409
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
410
+ if total_seconds == 0:
411
+ _svalue += 'Z'
412
+ else:
413
+ if total_seconds < 0:
414
+ _svalue += '-'
415
+ total_seconds *= -1
416
+ else:
417
+ _svalue += '+'
418
+ hours = total_seconds // 3600
419
+ minutes = (total_seconds - (hours * 3600)) // 60
420
+ _svalue += '{0:02d}:{1:02d}'.format(hours, minutes)
421
+ return _svalue
422
+ @classmethod
423
+ def gds_parse_datetime(cls, input_data):
424
+ tz = None
425
+ if input_data[-1] == 'Z':
426
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
427
+ input_data = input_data[:-1]
428
+ else:
429
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
430
+ if results is not None:
431
+ tzoff_parts = results.group(2).split(':')
432
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
433
+ if results.group(1) == '-':
434
+ tzoff *= -1
435
+ tz = GeneratedsSuper._FixedOffsetTZ(
436
+ tzoff, results.group(0))
437
+ input_data = input_data[:-6]
438
+ time_parts = input_data.split('.')
439
+ if len(time_parts) > 1:
440
+ micro_seconds = int(float('0.' + time_parts[1]) * 1000000)
441
+ input_data = '%s.%s' % (
442
+ time_parts[0], "{}".format(micro_seconds).rjust(6, "0"), )
443
+ dt = datetime_.datetime.strptime(
444
+ input_data, '%Y-%m-%dT%H:%M:%S.%f')
445
+ else:
446
+ dt = datetime_.datetime.strptime(
447
+ input_data, '%Y-%m-%dT%H:%M:%S')
448
+ dt = dt.replace(tzinfo=tz)
449
+ return dt
450
+ def gds_validate_date(self, input_data, node=None, input_name=''):
451
+ return input_data
452
+ def gds_format_date(self, input_data, input_name=''):
453
+ _svalue = '%04d-%02d-%02d' % (
454
+ input_data.year,
455
+ input_data.month,
456
+ input_data.day,
457
+ )
458
+ try:
459
+ if input_data.tzinfo is not None:
460
+ tzoff = input_data.tzinfo.utcoffset(input_data)
461
+ if tzoff is not None:
462
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
463
+ if total_seconds == 0:
464
+ _svalue += 'Z'
465
+ else:
466
+ if total_seconds < 0:
467
+ _svalue += '-'
468
+ total_seconds *= -1
469
+ else:
470
+ _svalue += '+'
471
+ hours = total_seconds // 3600
472
+ minutes = (total_seconds - (hours * 3600)) // 60
473
+ _svalue += '{0:02d}:{1:02d}'.format(
474
+ hours, minutes)
475
+ except AttributeError:
476
+ pass
477
+ return _svalue
478
+ @classmethod
479
+ def gds_parse_date(cls, input_data):
480
+ tz = None
481
+ if input_data[-1] == 'Z':
482
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
483
+ input_data = input_data[:-1]
484
+ else:
485
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
486
+ if results is not None:
487
+ tzoff_parts = results.group(2).split(':')
488
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
489
+ if results.group(1) == '-':
490
+ tzoff *= -1
491
+ tz = GeneratedsSuper._FixedOffsetTZ(
492
+ tzoff, results.group(0))
493
+ input_data = input_data[:-6]
494
+ dt = datetime_.datetime.strptime(input_data, '%Y-%m-%d')
495
+ dt = dt.replace(tzinfo=tz)
496
+ return dt.date()
497
+ def gds_validate_time(self, input_data, node=None, input_name=''):
498
+ return input_data
499
+ def gds_format_time(self, input_data, input_name=''):
500
+ if input_data.microsecond == 0:
501
+ _svalue = '%02d:%02d:%02d' % (
502
+ input_data.hour,
503
+ input_data.minute,
504
+ input_data.second,
505
+ )
506
+ else:
507
+ _svalue = '%02d:%02d:%02d.%s' % (
508
+ input_data.hour,
509
+ input_data.minute,
510
+ input_data.second,
511
+ ('%f' % (float(input_data.microsecond) / 1000000))[2:],
512
+ )
513
+ if input_data.tzinfo is not None:
514
+ tzoff = input_data.tzinfo.utcoffset(input_data)
515
+ if tzoff is not None:
516
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
517
+ if total_seconds == 0:
518
+ _svalue += 'Z'
519
+ else:
520
+ if total_seconds < 0:
521
+ _svalue += '-'
522
+ total_seconds *= -1
523
+ else:
524
+ _svalue += '+'
525
+ hours = total_seconds // 3600
526
+ minutes = (total_seconds - (hours * 3600)) // 60
527
+ _svalue += '{0:02d}:{1:02d}'.format(hours, minutes)
528
+ return _svalue
529
+ def gds_validate_simple_patterns(self, patterns, target):
530
+ # pat is a list of lists of strings/patterns.
531
+ # The target value must match at least one of the patterns
532
+ # in order for the test to succeed.
533
+ found1 = True
534
+ target = str(target)
535
+ for patterns1 in patterns:
536
+ found2 = False
537
+ for patterns2 in patterns1:
538
+ mo = re_.search(patterns2, target)
539
+ if mo is not None and len(mo.group(0)) == len(target):
540
+ found2 = True
541
+ break
542
+ if not found2:
543
+ found1 = False
544
+ break
545
+ return found1
546
+ @classmethod
547
+ def gds_parse_time(cls, input_data):
548
+ tz = None
549
+ if input_data[-1] == 'Z':
550
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
551
+ input_data = input_data[:-1]
552
+ else:
553
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
554
+ if results is not None:
555
+ tzoff_parts = results.group(2).split(':')
556
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
557
+ if results.group(1) == '-':
558
+ tzoff *= -1
559
+ tz = GeneratedsSuper._FixedOffsetTZ(
560
+ tzoff, results.group(0))
561
+ input_data = input_data[:-6]
562
+ if len(input_data.split('.')) > 1:
563
+ dt = datetime_.datetime.strptime(input_data, '%H:%M:%S.%f')
564
+ else:
565
+ dt = datetime_.datetime.strptime(input_data, '%H:%M:%S')
566
+ dt = dt.replace(tzinfo=tz)
567
+ return dt.time()
568
+ def gds_check_cardinality_(
569
+ self, value, input_name,
570
+ min_occurs=0, max_occurs=1, required=None):
571
+ if value is None:
572
+ length = 0
573
+ elif isinstance(value, list):
574
+ length = len(value)
575
+ else:
576
+ length = 1
577
+ if required is not None :
578
+ if required and length < 1:
579
+ self.gds_collector_.add_message(
580
+ "Required value {}{} is missing".format(
581
+ input_name, self.gds_get_node_lineno_()))
582
+ if length < min_occurs:
583
+ self.gds_collector_.add_message(
584
+ "Number of values for {}{} is below "
585
+ "the minimum allowed, "
586
+ "expected at least {}, found {}".format(
587
+ input_name, self.gds_get_node_lineno_(),
588
+ min_occurs, length))
589
+ elif length > max_occurs:
590
+ self.gds_collector_.add_message(
591
+ "Number of values for {}{} is above "
592
+ "the maximum allowed, "
593
+ "expected at most {}, found {}".format(
594
+ input_name, self.gds_get_node_lineno_(),
595
+ max_occurs, length))
596
+ def gds_validate_builtin_ST_(
597
+ self, validator, value, input_name,
598
+ min_occurs=None, max_occurs=None, required=None):
599
+ if value is not None:
600
+ try:
601
+ validator(value, input_name=input_name)
602
+ except GDSParseError as parse_error:
603
+ self.gds_collector_.add_message(str(parse_error))
604
+ def gds_validate_defined_ST_(
605
+ self, validator, value, input_name,
606
+ min_occurs=None, max_occurs=None, required=None):
607
+ if value is not None:
608
+ try:
609
+ validator(value)
610
+ except GDSParseError as parse_error:
611
+ self.gds_collector_.add_message(str(parse_error))
612
+ def gds_str_lower(self, instring):
613
+ return instring.lower()
614
+ def get_path_(self, node):
615
+ path_list = []
616
+ self.get_path_list_(node, path_list)
617
+ path_list.reverse()
618
+ path = '/'.join(path_list)
619
+ return path
620
+ Tag_strip_pattern_ = re_.compile(r'\{.*\}')
621
+ def get_path_list_(self, node, path_list):
622
+ if node is None:
623
+ return
624
+ tag = GeneratedsSuper.Tag_strip_pattern_.sub('', node.tag)
625
+ if tag:
626
+ path_list.append(tag)
627
+ self.get_path_list_(node.getparent(), path_list)
628
+ def get_class_obj_(self, node, default_class=None):
629
+ class_obj1 = default_class
630
+ if 'xsi' in node.nsmap:
631
+ classname = node.get('{%s}type' % node.nsmap['xsi'])
632
+ if classname is not None:
633
+ names = classname.split(':')
634
+ if len(names) == 2:
635
+ classname = names[1]
636
+ class_obj2 = globals().get(classname)
637
+ if class_obj2 is not None:
638
+ class_obj1 = class_obj2
639
+ return class_obj1
640
+ def gds_build_any(self, node, type_name=None):
641
+ # provide default value in case option --disable-xml is used.
642
+ content = ""
643
+ content = etree_.tostring(node, encoding="unicode")
644
+ return content
645
+ @classmethod
646
+ def gds_reverse_node_mapping(cls, mapping):
647
+ return dict(((v, k) for k, v in mapping.items()))
648
+ @staticmethod
649
+ def gds_encode(instring):
650
+ if sys.version_info.major == 2:
651
+ if ExternalEncoding:
652
+ encoding = ExternalEncoding
653
+ else:
654
+ encoding = 'utf-8'
655
+ return instring.encode(encoding)
656
+ else:
657
+ return instring
658
+ @staticmethod
659
+ def convert_unicode(instring):
660
+ if isinstance(instring, str):
661
+ result = quote_xml(instring)
662
+ elif sys.version_info.major == 2 and isinstance(instring, unicode):
663
+ result = quote_xml(instring).encode('utf8')
664
+ else:
665
+ result = GeneratedsSuper.gds_encode(str(instring))
666
+ return result
667
+ def __eq__(self, other):
668
+ def excl_select_objs_(obj):
669
+ return (obj[0] != 'parent_object_' and
670
+ obj[0] != 'gds_collector_')
671
+ if type(self) != type(other):
672
+ return False
673
+ return all(x == y for x, y in zip_longest(
674
+ filter(excl_select_objs_, self.__dict__.items()),
675
+ filter(excl_select_objs_, other.__dict__.items())))
676
+ def __ne__(self, other):
677
+ return not self.__eq__(other)
678
+ # Django ETL transform hooks.
679
+ def gds_djo_etl_transform(self):
680
+ pass
681
+ def gds_djo_etl_transform_db_obj(self, dbobj):
682
+ pass
683
+ # SQLAlchemy ETL transform hooks.
684
+ def gds_sqa_etl_transform(self):
685
+ return 0, None
686
+ def gds_sqa_etl_transform_db_obj(self, dbobj):
687
+ pass
688
+ def gds_get_node_lineno_(self):
689
+ if (hasattr(self, "gds_elementtree_node_") and
690
+ self.gds_elementtree_node_ is not None):
691
+ return ' near line {}'.format(
692
+ self.gds_elementtree_node_.sourceline)
693
+ else:
694
+ return ""
695
+
696
+
697
+ def getSubclassFromModule_(module, class_):
698
+ '''Get the subclass of a class from a specific module.'''
699
+ name = class_.__name__ + 'Sub'
700
+ if hasattr(module, name):
701
+ return getattr(module, name)
702
+ else:
703
+ return None
704
+
705
+
706
+ #
707
+ # If you have installed IPython you can uncomment and use the following.
708
+ # IPython is available from http://ipython.scipy.org/.
709
+ #
710
+
711
+ ## from IPython.Shell import IPShellEmbed
712
+ ## args = ''
713
+ ## ipshell = IPShellEmbed(args,
714
+ ## banner = 'Dropping into IPython',
715
+ ## exit_msg = 'Leaving Interpreter, back to program.')
716
+
717
+ # Then use the following line where and when you want to drop into the
718
+ # IPython shell:
719
+ # ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
720
+
721
+ #
722
+ # Globals
723
+ #
724
+
725
+ ExternalEncoding = ''
726
+ # Set this to false in order to deactivate during export, the use of
727
+ # name space prefixes captured from the input document.
728
+ UseCapturedNS_ = True
729
+ CapturedNsmap_ = {}
730
+ Tag_pattern_ = re_.compile(r'({.*})?(.*)')
731
+ String_cleanup_pat_ = re_.compile(r"[\n\r\s]+")
732
+ Namespace_extract_pat_ = re_.compile(r'{(.*)}(.*)')
733
+ CDATA_pattern_ = re_.compile(r"<!\[CDATA\[.*?\]\]>", re_.DOTALL)
734
+
735
+ # Change this to redirect the generated superclass module to use a
736
+ # specific subclass module.
737
+ CurrentSubclassModule_ = None
738
+
739
+ #
740
+ # Support/utility functions.
741
+ #
742
+
743
+
744
+ def showIndent(outfile, level, pretty_print=True):
745
+ if pretty_print:
746
+ for idx in range(level):
747
+ outfile.write(' ')
748
+
749
+
750
+ def quote_xml(inStr):
751
+ "Escape markup chars, but do not modify CDATA sections."
752
+ if not inStr:
753
+ return ''
754
+ s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)
755
+ s2 = ''
756
+ pos = 0
757
+ matchobjects = CDATA_pattern_.finditer(s1)
758
+ for mo in matchobjects:
759
+ s3 = s1[pos:mo.start()]
760
+ s2 += quote_xml_aux(s3)
761
+ s2 += s1[mo.start():mo.end()]
762
+ pos = mo.end()
763
+ s3 = s1[pos:]
764
+ s2 += quote_xml_aux(s3)
765
+ return s2
766
+
767
+
768
+ def quote_xml_aux(inStr):
769
+ s1 = inStr.replace('&', '&amp;')
770
+ s1 = s1.replace('<', '&lt;')
771
+ s1 = s1.replace('>', '&gt;')
772
+ return s1
773
+
774
+
775
+ def quote_attrib(inStr):
776
+ s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)
777
+ s1 = s1.replace('&', '&amp;')
778
+ s1 = s1.replace('<', '&lt;')
779
+ s1 = s1.replace('>', '&gt;')
780
+ s1 = s1.replace('\n', '&#10;')
781
+ if '"' in s1:
782
+ if "'" in s1:
783
+ s1 = '"%s"' % s1.replace('"', "&quot;")
784
+ else:
785
+ s1 = "'%s'" % s1
786
+ else:
787
+ s1 = '"%s"' % s1
788
+ return s1
789
+
790
+
791
+ def quote_python(inStr):
792
+ s1 = inStr
793
+ if s1.find("'") == -1:
794
+ if s1.find('\n') == -1:
795
+ return "'%s'" % s1
796
+ else:
797
+ return "'''%s'''" % s1
798
+ else:
799
+ if s1.find('"') != -1:
800
+ s1 = s1.replace('"', '\\"')
801
+ if s1.find('\n') == -1:
802
+ return '"%s"' % s1
803
+ else:
804
+ return '"""%s"""' % s1
805
+
806
+
807
+ def get_all_text_(node):
808
+ if node.text is not None:
809
+ text = node.text
810
+ else:
811
+ text = ''
812
+ for child in node:
813
+ if child.tail is not None:
814
+ text += child.tail
815
+ return text
816
+
817
+
818
+ def find_attr_value_(attr_name, node):
819
+ attrs = node.attrib
820
+ attr_parts = attr_name.split(':')
821
+ value = None
822
+ if len(attr_parts) == 1:
823
+ value = attrs.get(attr_name)
824
+ elif len(attr_parts) == 2:
825
+ prefix, name = attr_parts
826
+ if prefix == 'xml':
827
+ namespace = 'http://www.w3.org/XML/1998/namespace'
828
+ else:
829
+ namespace = node.nsmap.get(prefix)
830
+ if namespace is not None:
831
+ value = attrs.get('{%s}%s' % (namespace, name, ))
832
+ return value
833
+
834
+
835
+ def encode_str_2_3(instr):
836
+ return instr
837
+
838
+
839
+ class GDSParseError(Exception):
840
+ pass
841
+
842
+
843
+ def raise_parse_error(node, msg):
844
+ if node is not None:
845
+ msg = '%s (element %s/line %d)' % (msg, node.tag, node.sourceline, )
846
+ raise GDSParseError(msg)
847
+
848
+
849
+ class MixedContainer:
850
+ # Constants for category:
851
+ CategoryNone = 0
852
+ CategoryText = 1
853
+ CategorySimple = 2
854
+ CategoryComplex = 3
855
+ # Constants for content_type:
856
+ TypeNone = 0
857
+ TypeText = 1
858
+ TypeString = 2
859
+ TypeInteger = 3
860
+ TypeFloat = 4
861
+ TypeDecimal = 5
862
+ TypeDouble = 6
863
+ TypeBoolean = 7
864
+ TypeBase64 = 8
865
+ def __init__(self, category, content_type, name, value):
866
+ self.category = category
867
+ self.content_type = content_type
868
+ self.name = name
869
+ self.value = value
870
+ def getCategory(self):
871
+ return self.category
872
+ def getContenttype(self, content_type):
873
+ return self.content_type
874
+ def getValue(self):
875
+ return self.value
876
+ def getName(self):
877
+ return self.name
878
+ def export(self, outfile, level, name, namespace,
879
+ pretty_print=True):
880
+ if self.category == MixedContainer.CategoryText:
881
+ # Prevent exporting empty content as empty lines.
882
+ if self.value.strip():
883
+ outfile.write(self.value)
884
+ elif self.category == MixedContainer.CategorySimple:
885
+ self.exportSimple(outfile, level, name)
886
+ else: # category == MixedContainer.CategoryComplex
887
+ self.value.export(
888
+ outfile, level, namespace, name_=name,
889
+ pretty_print=pretty_print)
890
+ def exportSimple(self, outfile, level, name):
891
+ if self.content_type == MixedContainer.TypeString:
892
+ outfile.write('<%s>%s</%s>' % (
893
+ self.name, self.value, self.name))
894
+ elif self.content_type == MixedContainer.TypeInteger or \
895
+ self.content_type == MixedContainer.TypeBoolean:
896
+ outfile.write('<%s>%d</%s>' % (
897
+ self.name, self.value, self.name))
898
+ elif self.content_type == MixedContainer.TypeFloat or \
899
+ self.content_type == MixedContainer.TypeDecimal:
900
+ outfile.write('<%s>%f</%s>' % (
901
+ self.name, self.value, self.name))
902
+ elif self.content_type == MixedContainer.TypeDouble:
903
+ outfile.write('<%s>%g</%s>' % (
904
+ self.name, self.value, self.name))
905
+ elif self.content_type == MixedContainer.TypeBase64:
906
+ outfile.write('<%s>%s</%s>' % (
907
+ self.name,
908
+ base64.b64encode(self.value),
909
+ self.name))
910
+ def to_etree(self, element, mapping_=None, reverse_mapping_=None, nsmap_=None):
911
+ if self.category == MixedContainer.CategoryText:
912
+ # Prevent exporting empty content as empty lines.
913
+ if self.value.strip():
914
+ if len(element) > 0:
915
+ if element[-1].tail is None:
916
+ element[-1].tail = self.value
917
+ else:
918
+ element[-1].tail += self.value
919
+ else:
920
+ if element.text is None:
921
+ element.text = self.value
922
+ else:
923
+ element.text += self.value
924
+ elif self.category == MixedContainer.CategorySimple:
925
+ subelement = etree_.SubElement(
926
+ element, '%s' % self.name)
927
+ subelement.text = self.to_etree_simple()
928
+ else: # category == MixedContainer.CategoryComplex
929
+ self.value.to_etree(element)
930
+ def to_etree_simple(self, mapping_=None, reverse_mapping_=None, nsmap_=None):
931
+ if self.content_type == MixedContainer.TypeString:
932
+ text = self.value
933
+ elif (self.content_type == MixedContainer.TypeInteger or
934
+ self.content_type == MixedContainer.TypeBoolean):
935
+ text = '%d' % self.value
936
+ elif (self.content_type == MixedContainer.TypeFloat or
937
+ self.content_type == MixedContainer.TypeDecimal):
938
+ text = '%f' % self.value
939
+ elif self.content_type == MixedContainer.TypeDouble:
940
+ text = '%g' % self.value
941
+ elif self.content_type == MixedContainer.TypeBase64:
942
+ text = '%s' % base64.b64encode(self.value)
943
+ return text
944
+ def exportLiteral(self, outfile, level, name):
945
+ if self.category == MixedContainer.CategoryText:
946
+ showIndent(outfile, level)
947
+ outfile.write(
948
+ 'model_.MixedContainer(%d, %d, "%s", "%s"),\n' % (
949
+ self.category, self.content_type,
950
+ self.name, self.value))
951
+ elif self.category == MixedContainer.CategorySimple:
952
+ showIndent(outfile, level)
953
+ outfile.write(
954
+ 'model_.MixedContainer(%d, %d, "%s", "%s"),\n' % (
955
+ self.category, self.content_type,
956
+ self.name, self.value))
957
+ else: # category == MixedContainer.CategoryComplex
958
+ showIndent(outfile, level)
959
+ outfile.write(
960
+ 'model_.MixedContainer(%d, %d, "%s",\n' % (
961
+ self.category, self.content_type, self.name,))
962
+ self.value.exportLiteral(outfile, level + 1)
963
+ showIndent(outfile, level)
964
+ outfile.write(')\n')
965
+
966
+
967
+ class MemberSpec_(object):
968
+ def __init__(self, name='', data_type='', container=0,
969
+ optional=0, child_attrs=None, choice=None):
970
+ self.name = name
971
+ self.data_type = data_type
972
+ self.container = container
973
+ self.child_attrs = child_attrs
974
+ self.choice = choice
975
+ self.optional = optional
976
+ def set_name(self, name): self.name = name
977
+ def get_name(self): return self.name
978
+ def set_data_type(self, data_type): self.data_type = data_type
979
+ def get_data_type_chain(self): return self.data_type
980
+ def get_data_type(self):
981
+ if isinstance(self.data_type, list):
982
+ if len(self.data_type) > 0:
983
+ return self.data_type[-1]
984
+ else:
985
+ return 'xs:string'
986
+ else:
987
+ return self.data_type
988
+ def set_container(self, container): self.container = container
989
+ def get_container(self): return self.container
990
+ def set_child_attrs(self, child_attrs): self.child_attrs = child_attrs
991
+ def get_child_attrs(self): return self.child_attrs
992
+ def set_choice(self, choice): self.choice = choice
993
+ def get_choice(self): return self.choice
994
+ def set_optional(self, optional): self.optional = optional
995
+ def get_optional(self): return self.optional
996
+
997
+
998
+ def _cast(typ, value):
999
+ if typ is None or value is None:
1000
+ return value
1001
+ return typ(value)
1002
+
1003
+
1004
+ #
1005
+ # Start enum classes
1006
+ #
1007
+ #
1008
+ # Start data representation classes
1009
+ #
1010
+ class document(GeneratedsSuper):
1011
+ """document -- The root element for a response from the ExpressConnect Pricing
1012
+ Service
1013
+ requestId -- The requestId is a unique identifier for your price
1014
+ request which should be provided to the agent when contacting the
1015
+ service centre with any queries you have about the ExpressConnect
1016
+ pricing service. It will allow quick recovery of the request and
1017
+ response XML and enable a more timely response to any enquiry.
1018
+ errors -- This provides a breakdown of any errors or warning
1019
+ generated by the request.
1020
+ priceResponse -- This element provides the pricing information that is
1021
+ returned per priceCheck request. There may be up to a maximum of 10
1022
+ priceResponse
1023
+
1024
+ """
1025
+ __hash__ = GeneratedsSuper.__hash__
1026
+ subclass = None
1027
+ superclass = None
1028
+ def __init__(self, requestId=None, errors=None, priceResponse=None, gds_collector_=None, **kwargs_):
1029
+ self.gds_collector_ = gds_collector_
1030
+ self.gds_elementtree_node_ = None
1031
+ self.original_tagname_ = None
1032
+ self.parent_object_ = kwargs_.get('parent_object_')
1033
+ self.ns_prefix_ = None
1034
+ self.requestId = requestId
1035
+ self.requestId_nsprefix_ = None
1036
+ self.errors = errors
1037
+ self.errors_nsprefix_ = None
1038
+ if priceResponse is None:
1039
+ self.priceResponse = []
1040
+ else:
1041
+ self.priceResponse = priceResponse
1042
+ self.priceResponse_nsprefix_ = None
1043
+ def factory(*args_, **kwargs_):
1044
+ if CurrentSubclassModule_ is not None:
1045
+ subclass = getSubclassFromModule_(
1046
+ CurrentSubclassModule_, document)
1047
+ if subclass is not None:
1048
+ return subclass(*args_, **kwargs_)
1049
+ if document.subclass:
1050
+ return document.subclass(*args_, **kwargs_)
1051
+ else:
1052
+ return document(*args_, **kwargs_)
1053
+ factory = staticmethod(factory)
1054
+ def get_ns_prefix_(self):
1055
+ return self.ns_prefix_
1056
+ def set_ns_prefix_(self, ns_prefix):
1057
+ self.ns_prefix_ = ns_prefix
1058
+ def get_requestId(self):
1059
+ return self.requestId
1060
+ def set_requestId(self, requestId):
1061
+ self.requestId = requestId
1062
+ def get_errors(self):
1063
+ return self.errors
1064
+ def set_errors(self, errors):
1065
+ self.errors = errors
1066
+ def get_priceResponse(self):
1067
+ return self.priceResponse
1068
+ def set_priceResponse(self, priceResponse):
1069
+ self.priceResponse = priceResponse
1070
+ def add_priceResponse(self, value):
1071
+ self.priceResponse.append(value)
1072
+ def insert_priceResponse_at(self, index, value):
1073
+ self.priceResponse.insert(index, value)
1074
+ def replace_priceResponse_at(self, index, value):
1075
+ self.priceResponse[index] = value
1076
+ def has__content(self):
1077
+ if (
1078
+ self.requestId is not None or
1079
+ self.errors is not None or
1080
+ self.priceResponse
1081
+ ):
1082
+ return True
1083
+ else:
1084
+ return False
1085
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='document', pretty_print=True):
1086
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('document')
1087
+ if imported_ns_def_ is not None:
1088
+ namespacedef_ = imported_ns_def_
1089
+ if pretty_print:
1090
+ eol_ = '\n'
1091
+ else:
1092
+ eol_ = ''
1093
+ if self.original_tagname_ is not None and name_ == 'document':
1094
+ name_ = self.original_tagname_
1095
+ if UseCapturedNS_ and self.ns_prefix_:
1096
+ namespaceprefix_ = self.ns_prefix_ + ':'
1097
+ showIndent(outfile, level, pretty_print)
1098
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1099
+ already_processed = set()
1100
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='document')
1101
+ if self.has__content():
1102
+ outfile.write('>%s' % (eol_, ))
1103
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='document', pretty_print=pretty_print)
1104
+ showIndent(outfile, level, pretty_print)
1105
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1106
+ else:
1107
+ outfile.write('/>%s' % (eol_, ))
1108
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='document'):
1109
+ pass
1110
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='document', fromsubclass_=False, pretty_print=True):
1111
+ if pretty_print:
1112
+ eol_ = '\n'
1113
+ else:
1114
+ eol_ = ''
1115
+ if self.requestId is not None:
1116
+ namespaceprefix_ = self.requestId_nsprefix_ + ':' if (UseCapturedNS_ and self.requestId_nsprefix_) else ''
1117
+ showIndent(outfile, level, pretty_print)
1118
+ outfile.write('<%srequestId>%s</%srequestId>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.requestId), input_name='requestId')), namespaceprefix_ , eol_))
1119
+ if self.errors is not None:
1120
+ namespaceprefix_ = self.errors_nsprefix_ + ':' if (UseCapturedNS_ and self.errors_nsprefix_) else ''
1121
+ self.errors.export(outfile, level, namespaceprefix_, namespacedef_='', name_='errors', pretty_print=pretty_print)
1122
+ for priceResponse_ in self.priceResponse:
1123
+ namespaceprefix_ = self.priceResponse_nsprefix_ + ':' if (UseCapturedNS_ and self.priceResponse_nsprefix_) else ''
1124
+ priceResponse_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='priceResponse', pretty_print=pretty_print)
1125
+ def build(self, node, gds_collector_=None):
1126
+ self.gds_collector_ = gds_collector_
1127
+ if SaveElementTreeNode:
1128
+ self.gds_elementtree_node_ = node
1129
+ already_processed = set()
1130
+ self.ns_prefix_ = node.prefix
1131
+ self._buildAttributes(node, node.attrib, already_processed)
1132
+ for child in node:
1133
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1134
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1135
+ return self
1136
+ def _buildAttributes(self, node, attrs, already_processed):
1137
+ pass
1138
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1139
+ if nodeName_ == 'requestId':
1140
+ value_ = child_.text
1141
+ value_ = self.gds_parse_string(value_, node, 'requestId')
1142
+ value_ = self.gds_validate_string(value_, node, 'requestId')
1143
+ self.requestId = value_
1144
+ self.requestId_nsprefix_ = child_.prefix
1145
+ elif nodeName_ == 'errors':
1146
+ obj_ = errors.factory(parent_object_=self)
1147
+ obj_.build(child_, gds_collector_=gds_collector_)
1148
+ self.errors = obj_
1149
+ obj_.original_tagname_ = 'errors'
1150
+ elif nodeName_ == 'priceResponse':
1151
+ obj_ = priceResponse.factory(parent_object_=self)
1152
+ obj_.build(child_, gds_collector_=gds_collector_)
1153
+ self.priceResponse.append(obj_)
1154
+ obj_.original_tagname_ = 'priceResponse'
1155
+ # end class document
1156
+
1157
+
1158
+ class priceResponse(GeneratedsSuper):
1159
+ """ratedServices -- This is made up of one or more ratedService which contain a
1160
+ price for a particular service option combination from the original request.
1161
+
1162
+ """
1163
+ __hash__ = GeneratedsSuper.__hash__
1164
+ subclass = None
1165
+ superclass = None
1166
+ def __init__(self, ratedServices=None, gds_collector_=None, **kwargs_):
1167
+ self.gds_collector_ = gds_collector_
1168
+ self.gds_elementtree_node_ = None
1169
+ self.original_tagname_ = None
1170
+ self.parent_object_ = kwargs_.get('parent_object_')
1171
+ self.ns_prefix_ = None
1172
+ self.ratedServices = ratedServices
1173
+ self.ratedServices_nsprefix_ = None
1174
+ def factory(*args_, **kwargs_):
1175
+ if CurrentSubclassModule_ is not None:
1176
+ subclass = getSubclassFromModule_(
1177
+ CurrentSubclassModule_, priceResponse)
1178
+ if subclass is not None:
1179
+ return subclass(*args_, **kwargs_)
1180
+ if priceResponse.subclass:
1181
+ return priceResponse.subclass(*args_, **kwargs_)
1182
+ else:
1183
+ return priceResponse(*args_, **kwargs_)
1184
+ factory = staticmethod(factory)
1185
+ def get_ns_prefix_(self):
1186
+ return self.ns_prefix_
1187
+ def set_ns_prefix_(self, ns_prefix):
1188
+ self.ns_prefix_ = ns_prefix
1189
+ def get_ratedServices(self):
1190
+ return self.ratedServices
1191
+ def set_ratedServices(self, ratedServices):
1192
+ self.ratedServices = ratedServices
1193
+ def has__content(self):
1194
+ if (
1195
+ self.ratedServices is not None
1196
+ ):
1197
+ return True
1198
+ else:
1199
+ return False
1200
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='priceResponse', pretty_print=True):
1201
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('priceResponse')
1202
+ if imported_ns_def_ is not None:
1203
+ namespacedef_ = imported_ns_def_
1204
+ if pretty_print:
1205
+ eol_ = '\n'
1206
+ else:
1207
+ eol_ = ''
1208
+ if self.original_tagname_ is not None and name_ == 'priceResponse':
1209
+ name_ = self.original_tagname_
1210
+ if UseCapturedNS_ and self.ns_prefix_:
1211
+ namespaceprefix_ = self.ns_prefix_ + ':'
1212
+ showIndent(outfile, level, pretty_print)
1213
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1214
+ already_processed = set()
1215
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='priceResponse')
1216
+ if self.has__content():
1217
+ outfile.write('>%s' % (eol_, ))
1218
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='priceResponse', pretty_print=pretty_print)
1219
+ showIndent(outfile, level, pretty_print)
1220
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1221
+ else:
1222
+ outfile.write('/>%s' % (eol_, ))
1223
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='priceResponse'):
1224
+ pass
1225
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='priceResponse', fromsubclass_=False, pretty_print=True):
1226
+ if pretty_print:
1227
+ eol_ = '\n'
1228
+ else:
1229
+ eol_ = ''
1230
+ if self.ratedServices is not None:
1231
+ namespaceprefix_ = self.ratedServices_nsprefix_ + ':' if (UseCapturedNS_ and self.ratedServices_nsprefix_) else ''
1232
+ self.ratedServices.export(outfile, level, namespaceprefix_, namespacedef_='', name_='ratedServices', pretty_print=pretty_print)
1233
+ def build(self, node, gds_collector_=None):
1234
+ self.gds_collector_ = gds_collector_
1235
+ if SaveElementTreeNode:
1236
+ self.gds_elementtree_node_ = node
1237
+ already_processed = set()
1238
+ self.ns_prefix_ = node.prefix
1239
+ self._buildAttributes(node, node.attrib, already_processed)
1240
+ for child in node:
1241
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1242
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1243
+ return self
1244
+ def _buildAttributes(self, node, attrs, already_processed):
1245
+ pass
1246
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1247
+ if nodeName_ == 'ratedServices':
1248
+ obj_ = ratedServices.factory(parent_object_=self)
1249
+ obj_.build(child_, gds_collector_=gds_collector_)
1250
+ self.ratedServices = obj_
1251
+ obj_.original_tagname_ = 'ratedServices'
1252
+ # end class priceResponse
1253
+
1254
+
1255
+ class ratedServices(GeneratedsSuper):
1256
+ """rateId -- The rateId is used to associate the priceResponse with the
1257
+ corresponding priceCheck.
1258
+ currency -- The currency element describes the currency that the price is
1259
+ displayed.
1260
+ ratedService -- A container element for the price details for a particular
1261
+ service.
1262
+
1263
+ """
1264
+ __hash__ = GeneratedsSuper.__hash__
1265
+ subclass = None
1266
+ superclass = None
1267
+ def __init__(self, rateId=None, currency=None, ratedService=None, gds_collector_=None, **kwargs_):
1268
+ self.gds_collector_ = gds_collector_
1269
+ self.gds_elementtree_node_ = None
1270
+ self.original_tagname_ = None
1271
+ self.parent_object_ = kwargs_.get('parent_object_')
1272
+ self.ns_prefix_ = None
1273
+ self.rateId = rateId
1274
+ self.rateId_nsprefix_ = None
1275
+ self.currency = currency
1276
+ self.currency_nsprefix_ = None
1277
+ if ratedService is None:
1278
+ self.ratedService = []
1279
+ else:
1280
+ self.ratedService = ratedService
1281
+ self.ratedService_nsprefix_ = None
1282
+ def factory(*args_, **kwargs_):
1283
+ if CurrentSubclassModule_ is not None:
1284
+ subclass = getSubclassFromModule_(
1285
+ CurrentSubclassModule_, ratedServices)
1286
+ if subclass is not None:
1287
+ return subclass(*args_, **kwargs_)
1288
+ if ratedServices.subclass:
1289
+ return ratedServices.subclass(*args_, **kwargs_)
1290
+ else:
1291
+ return ratedServices(*args_, **kwargs_)
1292
+ factory = staticmethod(factory)
1293
+ def get_ns_prefix_(self):
1294
+ return self.ns_prefix_
1295
+ def set_ns_prefix_(self, ns_prefix):
1296
+ self.ns_prefix_ = ns_prefix
1297
+ def get_rateId(self):
1298
+ return self.rateId
1299
+ def set_rateId(self, rateId):
1300
+ self.rateId = rateId
1301
+ def get_currency(self):
1302
+ return self.currency
1303
+ def set_currency(self, currency):
1304
+ self.currency = currency
1305
+ def get_ratedService(self):
1306
+ return self.ratedService
1307
+ def set_ratedService(self, ratedService):
1308
+ self.ratedService = ratedService
1309
+ def add_ratedService(self, value):
1310
+ self.ratedService.append(value)
1311
+ def insert_ratedService_at(self, index, value):
1312
+ self.ratedService.insert(index, value)
1313
+ def replace_ratedService_at(self, index, value):
1314
+ self.ratedService[index] = value
1315
+ def has__content(self):
1316
+ if (
1317
+ self.rateId is not None or
1318
+ self.currency is not None or
1319
+ self.ratedService
1320
+ ):
1321
+ return True
1322
+ else:
1323
+ return False
1324
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ratedServices', pretty_print=True):
1325
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ratedServices')
1326
+ if imported_ns_def_ is not None:
1327
+ namespacedef_ = imported_ns_def_
1328
+ if pretty_print:
1329
+ eol_ = '\n'
1330
+ else:
1331
+ eol_ = ''
1332
+ if self.original_tagname_ is not None and name_ == 'ratedServices':
1333
+ name_ = self.original_tagname_
1334
+ if UseCapturedNS_ and self.ns_prefix_:
1335
+ namespaceprefix_ = self.ns_prefix_ + ':'
1336
+ showIndent(outfile, level, pretty_print)
1337
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1338
+ already_processed = set()
1339
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ratedServices')
1340
+ if self.has__content():
1341
+ outfile.write('>%s' % (eol_, ))
1342
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ratedServices', pretty_print=pretty_print)
1343
+ showIndent(outfile, level, pretty_print)
1344
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1345
+ else:
1346
+ outfile.write('/>%s' % (eol_, ))
1347
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ratedServices'):
1348
+ pass
1349
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ratedServices', fromsubclass_=False, pretty_print=True):
1350
+ if pretty_print:
1351
+ eol_ = '\n'
1352
+ else:
1353
+ eol_ = ''
1354
+ if self.rateId is not None:
1355
+ namespaceprefix_ = self.rateId_nsprefix_ + ':' if (UseCapturedNS_ and self.rateId_nsprefix_) else ''
1356
+ showIndent(outfile, level, pretty_print)
1357
+ outfile.write('<%srateId>%s</%srateId>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.rateId), input_name='rateId')), namespaceprefix_ , eol_))
1358
+ if self.currency is not None:
1359
+ namespaceprefix_ = self.currency_nsprefix_ + ':' if (UseCapturedNS_ and self.currency_nsprefix_) else ''
1360
+ showIndent(outfile, level, pretty_print)
1361
+ outfile.write('<%scurrency>%s</%scurrency>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.currency), input_name='currency')), namespaceprefix_ , eol_))
1362
+ for ratedService_ in self.ratedService:
1363
+ namespaceprefix_ = self.ratedService_nsprefix_ + ':' if (UseCapturedNS_ and self.ratedService_nsprefix_) else ''
1364
+ ratedService_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='ratedService', pretty_print=pretty_print)
1365
+ def build(self, node, gds_collector_=None):
1366
+ self.gds_collector_ = gds_collector_
1367
+ if SaveElementTreeNode:
1368
+ self.gds_elementtree_node_ = node
1369
+ already_processed = set()
1370
+ self.ns_prefix_ = node.prefix
1371
+ self._buildAttributes(node, node.attrib, already_processed)
1372
+ for child in node:
1373
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1374
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1375
+ return self
1376
+ def _buildAttributes(self, node, attrs, already_processed):
1377
+ pass
1378
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1379
+ if nodeName_ == 'rateId':
1380
+ value_ = child_.text
1381
+ value_ = self.gds_parse_string(value_, node, 'rateId')
1382
+ value_ = self.gds_validate_string(value_, node, 'rateId')
1383
+ self.rateId = value_
1384
+ self.rateId_nsprefix_ = child_.prefix
1385
+ elif nodeName_ == 'currency':
1386
+ value_ = child_.text
1387
+ value_ = self.gds_parse_string(value_, node, 'currency')
1388
+ value_ = self.gds_validate_string(value_, node, 'currency')
1389
+ self.currency = value_
1390
+ self.currency_nsprefix_ = child_.prefix
1391
+ elif nodeName_ == 'ratedService':
1392
+ obj_ = ratedService.factory(parent_object_=self)
1393
+ obj_.build(child_, gds_collector_=gds_collector_)
1394
+ self.ratedService.append(obj_)
1395
+ obj_.original_tagname_ = 'ratedService'
1396
+ # end class ratedServices
1397
+
1398
+
1399
+ class ratedService(GeneratedsSuper):
1400
+ """product -- This is a container element for Information relating to the
1401
+ TNT product chosen for this priceCheck.
1402
+ totalPrice -- The totalPrice element contains the total estimated price for
1403
+ the service including VAT.
1404
+ totalPriceExclVat -- The totalPriceExclVat element contains the total estimated
1405
+ price for the service excluding VAT.
1406
+ vatAmount -- The vatAmount element contains the estimated amount of VAT for
1407
+ the service requested.
1408
+ chargeElements -- The chargeElements element contains an optional breakdown of
1409
+ any charges which are included within the price such as VAT and fuel
1410
+ supplements. See the chargeElements section for more information.
1411
+
1412
+ """
1413
+ __hash__ = GeneratedsSuper.__hash__
1414
+ subclass = None
1415
+ superclass = None
1416
+ def __init__(self, product=None, totalPrice=None, totalPriceExclVat=None, vatAmount=None, chargeElements=None, gds_collector_=None, **kwargs_):
1417
+ self.gds_collector_ = gds_collector_
1418
+ self.gds_elementtree_node_ = None
1419
+ self.original_tagname_ = None
1420
+ self.parent_object_ = kwargs_.get('parent_object_')
1421
+ self.ns_prefix_ = None
1422
+ self.product = product
1423
+ self.product_nsprefix_ = None
1424
+ self.totalPrice = totalPrice
1425
+ self.totalPrice_nsprefix_ = None
1426
+ self.totalPriceExclVat = totalPriceExclVat
1427
+ self.totalPriceExclVat_nsprefix_ = None
1428
+ self.vatAmount = vatAmount
1429
+ self.vatAmount_nsprefix_ = None
1430
+ self.chargeElements = chargeElements
1431
+ self.chargeElements_nsprefix_ = None
1432
+ def factory(*args_, **kwargs_):
1433
+ if CurrentSubclassModule_ is not None:
1434
+ subclass = getSubclassFromModule_(
1435
+ CurrentSubclassModule_, ratedService)
1436
+ if subclass is not None:
1437
+ return subclass(*args_, **kwargs_)
1438
+ if ratedService.subclass:
1439
+ return ratedService.subclass(*args_, **kwargs_)
1440
+ else:
1441
+ return ratedService(*args_, **kwargs_)
1442
+ factory = staticmethod(factory)
1443
+ def get_ns_prefix_(self):
1444
+ return self.ns_prefix_
1445
+ def set_ns_prefix_(self, ns_prefix):
1446
+ self.ns_prefix_ = ns_prefix
1447
+ def get_product(self):
1448
+ return self.product
1449
+ def set_product(self, product):
1450
+ self.product = product
1451
+ def get_totalPrice(self):
1452
+ return self.totalPrice
1453
+ def set_totalPrice(self, totalPrice):
1454
+ self.totalPrice = totalPrice
1455
+ def get_totalPriceExclVat(self):
1456
+ return self.totalPriceExclVat
1457
+ def set_totalPriceExclVat(self, totalPriceExclVat):
1458
+ self.totalPriceExclVat = totalPriceExclVat
1459
+ def get_vatAmount(self):
1460
+ return self.vatAmount
1461
+ def set_vatAmount(self, vatAmount):
1462
+ self.vatAmount = vatAmount
1463
+ def get_chargeElements(self):
1464
+ return self.chargeElements
1465
+ def set_chargeElements(self, chargeElements):
1466
+ self.chargeElements = chargeElements
1467
+ def has__content(self):
1468
+ if (
1469
+ self.product is not None or
1470
+ self.totalPrice is not None or
1471
+ self.totalPriceExclVat is not None or
1472
+ self.vatAmount is not None or
1473
+ self.chargeElements is not None
1474
+ ):
1475
+ return True
1476
+ else:
1477
+ return False
1478
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ratedService', pretty_print=True):
1479
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ratedService')
1480
+ if imported_ns_def_ is not None:
1481
+ namespacedef_ = imported_ns_def_
1482
+ if pretty_print:
1483
+ eol_ = '\n'
1484
+ else:
1485
+ eol_ = ''
1486
+ if self.original_tagname_ is not None and name_ == 'ratedService':
1487
+ name_ = self.original_tagname_
1488
+ if UseCapturedNS_ and self.ns_prefix_:
1489
+ namespaceprefix_ = self.ns_prefix_ + ':'
1490
+ showIndent(outfile, level, pretty_print)
1491
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1492
+ already_processed = set()
1493
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ratedService')
1494
+ if self.has__content():
1495
+ outfile.write('>%s' % (eol_, ))
1496
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ratedService', pretty_print=pretty_print)
1497
+ showIndent(outfile, level, pretty_print)
1498
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1499
+ else:
1500
+ outfile.write('/>%s' % (eol_, ))
1501
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ratedService'):
1502
+ pass
1503
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ratedService', fromsubclass_=False, pretty_print=True):
1504
+ if pretty_print:
1505
+ eol_ = '\n'
1506
+ else:
1507
+ eol_ = ''
1508
+ if self.product is not None:
1509
+ namespaceprefix_ = self.product_nsprefix_ + ':' if (UseCapturedNS_ and self.product_nsprefix_) else ''
1510
+ self.product.export(outfile, level, namespaceprefix_, namespacedef_='', name_='product', pretty_print=pretty_print)
1511
+ if self.totalPrice is not None:
1512
+ namespaceprefix_ = self.totalPrice_nsprefix_ + ':' if (UseCapturedNS_ and self.totalPrice_nsprefix_) else ''
1513
+ showIndent(outfile, level, pretty_print)
1514
+ outfile.write('<%stotalPrice>%s</%stotalPrice>%s' % (namespaceprefix_ , self.gds_format_decimal(self.totalPrice, input_name='totalPrice'), namespaceprefix_ , eol_))
1515
+ if self.totalPriceExclVat is not None:
1516
+ namespaceprefix_ = self.totalPriceExclVat_nsprefix_ + ':' if (UseCapturedNS_ and self.totalPriceExclVat_nsprefix_) else ''
1517
+ showIndent(outfile, level, pretty_print)
1518
+ outfile.write('<%stotalPriceExclVat>%s</%stotalPriceExclVat>%s' % (namespaceprefix_ , self.gds_format_decimal(self.totalPriceExclVat, input_name='totalPriceExclVat'), namespaceprefix_ , eol_))
1519
+ if self.vatAmount is not None:
1520
+ namespaceprefix_ = self.vatAmount_nsprefix_ + ':' if (UseCapturedNS_ and self.vatAmount_nsprefix_) else ''
1521
+ showIndent(outfile, level, pretty_print)
1522
+ outfile.write('<%svatAmount>%s</%svatAmount>%s' % (namespaceprefix_ , self.gds_format_decimal(self.vatAmount, input_name='vatAmount'), namespaceprefix_ , eol_))
1523
+ if self.chargeElements is not None:
1524
+ namespaceprefix_ = self.chargeElements_nsprefix_ + ':' if (UseCapturedNS_ and self.chargeElements_nsprefix_) else ''
1525
+ self.chargeElements.export(outfile, level, namespaceprefix_, namespacedef_='', name_='chargeElements', pretty_print=pretty_print)
1526
+ def build(self, node, gds_collector_=None):
1527
+ self.gds_collector_ = gds_collector_
1528
+ if SaveElementTreeNode:
1529
+ self.gds_elementtree_node_ = node
1530
+ already_processed = set()
1531
+ self.ns_prefix_ = node.prefix
1532
+ self._buildAttributes(node, node.attrib, already_processed)
1533
+ for child in node:
1534
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1535
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1536
+ return self
1537
+ def _buildAttributes(self, node, attrs, already_processed):
1538
+ pass
1539
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1540
+ if nodeName_ == 'product':
1541
+ obj_ = product.factory(parent_object_=self)
1542
+ obj_.build(child_, gds_collector_=gds_collector_)
1543
+ self.product = obj_
1544
+ obj_.original_tagname_ = 'product'
1545
+ elif nodeName_ == 'totalPrice' and child_.text:
1546
+ sval_ = child_.text
1547
+ fval_ = self.gds_parse_decimal(sval_, node, 'totalPrice')
1548
+ fval_ = self.gds_validate_decimal(fval_, node, 'totalPrice')
1549
+ self.totalPrice = fval_
1550
+ self.totalPrice_nsprefix_ = child_.prefix
1551
+ elif nodeName_ == 'totalPriceExclVat' and child_.text:
1552
+ sval_ = child_.text
1553
+ fval_ = self.gds_parse_decimal(sval_, node, 'totalPriceExclVat')
1554
+ fval_ = self.gds_validate_decimal(fval_, node, 'totalPriceExclVat')
1555
+ self.totalPriceExclVat = fval_
1556
+ self.totalPriceExclVat_nsprefix_ = child_.prefix
1557
+ elif nodeName_ == 'vatAmount' and child_.text:
1558
+ sval_ = child_.text
1559
+ fval_ = self.gds_parse_decimal(sval_, node, 'vatAmount')
1560
+ fval_ = self.gds_validate_decimal(fval_, node, 'vatAmount')
1561
+ self.vatAmount = fval_
1562
+ self.vatAmount_nsprefix_ = child_.prefix
1563
+ elif nodeName_ == 'chargeElements':
1564
+ obj_ = chargeElements.factory(parent_object_=self)
1565
+ obj_.build(child_, gds_collector_=gds_collector_)
1566
+ self.chargeElements = obj_
1567
+ obj_.original_tagname_ = 'chargeElements'
1568
+ # end class ratedService
1569
+
1570
+
1571
+ class chargeElements(GeneratedsSuper):
1572
+ """chargeElement -- Each chargeElement contains a specific item of price breakdown
1573
+ information that relates to the total price returned.
1574
+
1575
+ """
1576
+ __hash__ = GeneratedsSuper.__hash__
1577
+ subclass = None
1578
+ superclass = None
1579
+ def __init__(self, chargeElement=None, gds_collector_=None, **kwargs_):
1580
+ self.gds_collector_ = gds_collector_
1581
+ self.gds_elementtree_node_ = None
1582
+ self.original_tagname_ = None
1583
+ self.parent_object_ = kwargs_.get('parent_object_')
1584
+ self.ns_prefix_ = None
1585
+ if chargeElement is None:
1586
+ self.chargeElement = []
1587
+ else:
1588
+ self.chargeElement = chargeElement
1589
+ self.chargeElement_nsprefix_ = None
1590
+ def factory(*args_, **kwargs_):
1591
+ if CurrentSubclassModule_ is not None:
1592
+ subclass = getSubclassFromModule_(
1593
+ CurrentSubclassModule_, chargeElements)
1594
+ if subclass is not None:
1595
+ return subclass(*args_, **kwargs_)
1596
+ if chargeElements.subclass:
1597
+ return chargeElements.subclass(*args_, **kwargs_)
1598
+ else:
1599
+ return chargeElements(*args_, **kwargs_)
1600
+ factory = staticmethod(factory)
1601
+ def get_ns_prefix_(self):
1602
+ return self.ns_prefix_
1603
+ def set_ns_prefix_(self, ns_prefix):
1604
+ self.ns_prefix_ = ns_prefix
1605
+ def get_chargeElement(self):
1606
+ return self.chargeElement
1607
+ def set_chargeElement(self, chargeElement):
1608
+ self.chargeElement = chargeElement
1609
+ def add_chargeElement(self, value):
1610
+ self.chargeElement.append(value)
1611
+ def insert_chargeElement_at(self, index, value):
1612
+ self.chargeElement.insert(index, value)
1613
+ def replace_chargeElement_at(self, index, value):
1614
+ self.chargeElement[index] = value
1615
+ def has__content(self):
1616
+ if (
1617
+ self.chargeElement
1618
+ ):
1619
+ return True
1620
+ else:
1621
+ return False
1622
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='chargeElements', pretty_print=True):
1623
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('chargeElements')
1624
+ if imported_ns_def_ is not None:
1625
+ namespacedef_ = imported_ns_def_
1626
+ if pretty_print:
1627
+ eol_ = '\n'
1628
+ else:
1629
+ eol_ = ''
1630
+ if self.original_tagname_ is not None and name_ == 'chargeElements':
1631
+ name_ = self.original_tagname_
1632
+ if UseCapturedNS_ and self.ns_prefix_:
1633
+ namespaceprefix_ = self.ns_prefix_ + ':'
1634
+ showIndent(outfile, level, pretty_print)
1635
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1636
+ already_processed = set()
1637
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='chargeElements')
1638
+ if self.has__content():
1639
+ outfile.write('>%s' % (eol_, ))
1640
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='chargeElements', pretty_print=pretty_print)
1641
+ showIndent(outfile, level, pretty_print)
1642
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1643
+ else:
1644
+ outfile.write('/>%s' % (eol_, ))
1645
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='chargeElements'):
1646
+ pass
1647
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='chargeElements', fromsubclass_=False, pretty_print=True):
1648
+ if pretty_print:
1649
+ eol_ = '\n'
1650
+ else:
1651
+ eol_ = ''
1652
+ for chargeElement_ in self.chargeElement:
1653
+ namespaceprefix_ = self.chargeElement_nsprefix_ + ':' if (UseCapturedNS_ and self.chargeElement_nsprefix_) else ''
1654
+ chargeElement_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='chargeElement', pretty_print=pretty_print)
1655
+ def build(self, node, gds_collector_=None):
1656
+ self.gds_collector_ = gds_collector_
1657
+ if SaveElementTreeNode:
1658
+ self.gds_elementtree_node_ = node
1659
+ already_processed = set()
1660
+ self.ns_prefix_ = node.prefix
1661
+ self._buildAttributes(node, node.attrib, already_processed)
1662
+ for child in node:
1663
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1664
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1665
+ return self
1666
+ def _buildAttributes(self, node, attrs, already_processed):
1667
+ pass
1668
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1669
+ if nodeName_ == 'chargeElement':
1670
+ obj_ = chargeElement.factory(parent_object_=self)
1671
+ obj_.build(child_, gds_collector_=gds_collector_)
1672
+ self.chargeElement.append(obj_)
1673
+ obj_.original_tagname_ = 'chargeElement'
1674
+ # end class chargeElements
1675
+
1676
+
1677
+ class chargeElement(GeneratedsSuper):
1678
+ """chargeItem -- The chargeItem is an identifier for the chargeElement within
1679
+ the list of chargeElements returned.
1680
+ chargeCategory -- The chargeCategory is a descriptor of the type of charge
1681
+ element being returned. This will either be SURCHARGE or VAT.
1682
+ chargeCode -- The chargeCode is a unique identifier for the charge being
1683
+ applied.
1684
+ description -- The description provides a more detailed explanation of the
1685
+ charge being applied e.g. Fuel Surcharge.
1686
+ chargeValue -- The chargeValue is the cost of the charge in the currency.
1687
+ vatIndicator -- The vatIndicator defines whether the VAT is applied to the
1688
+ charge.
1689
+
1690
+ """
1691
+ __hash__ = GeneratedsSuper.__hash__
1692
+ subclass = None
1693
+ superclass = None
1694
+ def __init__(self, chargeItem=None, chargeCategory=None, chargeCode=None, description=None, chargeValue=None, vatIndicator=None, gds_collector_=None, **kwargs_):
1695
+ self.gds_collector_ = gds_collector_
1696
+ self.gds_elementtree_node_ = None
1697
+ self.original_tagname_ = None
1698
+ self.parent_object_ = kwargs_.get('parent_object_')
1699
+ self.ns_prefix_ = None
1700
+ self.chargeItem = chargeItem
1701
+ self.chargeItem_nsprefix_ = None
1702
+ self.chargeCategory = chargeCategory
1703
+ self.chargeCategory_nsprefix_ = None
1704
+ self.chargeCode = chargeCode
1705
+ self.chargeCode_nsprefix_ = None
1706
+ self.description = description
1707
+ self.description_nsprefix_ = None
1708
+ self.chargeValue = chargeValue
1709
+ self.chargeValue_nsprefix_ = None
1710
+ self.vatIndicator = vatIndicator
1711
+ self.vatIndicator_nsprefix_ = None
1712
+ def factory(*args_, **kwargs_):
1713
+ if CurrentSubclassModule_ is not None:
1714
+ subclass = getSubclassFromModule_(
1715
+ CurrentSubclassModule_, chargeElement)
1716
+ if subclass is not None:
1717
+ return subclass(*args_, **kwargs_)
1718
+ if chargeElement.subclass:
1719
+ return chargeElement.subclass(*args_, **kwargs_)
1720
+ else:
1721
+ return chargeElement(*args_, **kwargs_)
1722
+ factory = staticmethod(factory)
1723
+ def get_ns_prefix_(self):
1724
+ return self.ns_prefix_
1725
+ def set_ns_prefix_(self, ns_prefix):
1726
+ self.ns_prefix_ = ns_prefix
1727
+ def get_chargeItem(self):
1728
+ return self.chargeItem
1729
+ def set_chargeItem(self, chargeItem):
1730
+ self.chargeItem = chargeItem
1731
+ def get_chargeCategory(self):
1732
+ return self.chargeCategory
1733
+ def set_chargeCategory(self, chargeCategory):
1734
+ self.chargeCategory = chargeCategory
1735
+ def get_chargeCode(self):
1736
+ return self.chargeCode
1737
+ def set_chargeCode(self, chargeCode):
1738
+ self.chargeCode = chargeCode
1739
+ def get_description(self):
1740
+ return self.description
1741
+ def set_description(self, description):
1742
+ self.description = description
1743
+ def get_chargeValue(self):
1744
+ return self.chargeValue
1745
+ def set_chargeValue(self, chargeValue):
1746
+ self.chargeValue = chargeValue
1747
+ def get_vatIndicator(self):
1748
+ return self.vatIndicator
1749
+ def set_vatIndicator(self, vatIndicator):
1750
+ self.vatIndicator = vatIndicator
1751
+ def has__content(self):
1752
+ if (
1753
+ self.chargeItem is not None or
1754
+ self.chargeCategory is not None or
1755
+ self.chargeCode is not None or
1756
+ self.description is not None or
1757
+ self.chargeValue is not None or
1758
+ self.vatIndicator is not None
1759
+ ):
1760
+ return True
1761
+ else:
1762
+ return False
1763
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='chargeElement', pretty_print=True):
1764
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('chargeElement')
1765
+ if imported_ns_def_ is not None:
1766
+ namespacedef_ = imported_ns_def_
1767
+ if pretty_print:
1768
+ eol_ = '\n'
1769
+ else:
1770
+ eol_ = ''
1771
+ if self.original_tagname_ is not None and name_ == 'chargeElement':
1772
+ name_ = self.original_tagname_
1773
+ if UseCapturedNS_ and self.ns_prefix_:
1774
+ namespaceprefix_ = self.ns_prefix_ + ':'
1775
+ showIndent(outfile, level, pretty_print)
1776
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1777
+ already_processed = set()
1778
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='chargeElement')
1779
+ if self.has__content():
1780
+ outfile.write('>%s' % (eol_, ))
1781
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='chargeElement', pretty_print=pretty_print)
1782
+ showIndent(outfile, level, pretty_print)
1783
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1784
+ else:
1785
+ outfile.write('/>%s' % (eol_, ))
1786
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='chargeElement'):
1787
+ pass
1788
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='chargeElement', fromsubclass_=False, pretty_print=True):
1789
+ if pretty_print:
1790
+ eol_ = '\n'
1791
+ else:
1792
+ eol_ = ''
1793
+ if self.chargeItem is not None:
1794
+ namespaceprefix_ = self.chargeItem_nsprefix_ + ':' if (UseCapturedNS_ and self.chargeItem_nsprefix_) else ''
1795
+ showIndent(outfile, level, pretty_print)
1796
+ outfile.write('<%schargeItem>%s</%schargeItem>%s' % (namespaceprefix_ , self.gds_format_integer(self.chargeItem, input_name='chargeItem'), namespaceprefix_ , eol_))
1797
+ if self.chargeCategory is not None:
1798
+ namespaceprefix_ = self.chargeCategory_nsprefix_ + ':' if (UseCapturedNS_ and self.chargeCategory_nsprefix_) else ''
1799
+ showIndent(outfile, level, pretty_print)
1800
+ outfile.write('<%schargeCategory>%s</%schargeCategory>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.chargeCategory), input_name='chargeCategory')), namespaceprefix_ , eol_))
1801
+ if self.chargeCode is not None:
1802
+ namespaceprefix_ = self.chargeCode_nsprefix_ + ':' if (UseCapturedNS_ and self.chargeCode_nsprefix_) else ''
1803
+ showIndent(outfile, level, pretty_print)
1804
+ outfile.write('<%schargeCode>%s</%schargeCode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.chargeCode), input_name='chargeCode')), namespaceprefix_ , eol_))
1805
+ if self.description is not None:
1806
+ namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
1807
+ showIndent(outfile, level, pretty_print)
1808
+ outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
1809
+ if self.chargeValue is not None:
1810
+ namespaceprefix_ = self.chargeValue_nsprefix_ + ':' if (UseCapturedNS_ and self.chargeValue_nsprefix_) else ''
1811
+ showIndent(outfile, level, pretty_print)
1812
+ outfile.write('<%schargeValue>%s</%schargeValue>%s' % (namespaceprefix_ , self.gds_format_decimal(self.chargeValue, input_name='chargeValue'), namespaceprefix_ , eol_))
1813
+ if self.vatIndicator is not None:
1814
+ namespaceprefix_ = self.vatIndicator_nsprefix_ + ':' if (UseCapturedNS_ and self.vatIndicator_nsprefix_) else ''
1815
+ showIndent(outfile, level, pretty_print)
1816
+ outfile.write('<%svatIndicator>%s</%svatIndicator>%s' % (namespaceprefix_ , self.gds_format_boolean(self.vatIndicator, input_name='vatIndicator'), namespaceprefix_ , eol_))
1817
+ def build(self, node, gds_collector_=None):
1818
+ self.gds_collector_ = gds_collector_
1819
+ if SaveElementTreeNode:
1820
+ self.gds_elementtree_node_ = node
1821
+ already_processed = set()
1822
+ self.ns_prefix_ = node.prefix
1823
+ self._buildAttributes(node, node.attrib, already_processed)
1824
+ for child in node:
1825
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1826
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1827
+ return self
1828
+ def _buildAttributes(self, node, attrs, already_processed):
1829
+ pass
1830
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1831
+ if nodeName_ == 'chargeItem' and child_.text:
1832
+ sval_ = child_.text
1833
+ ival_ = self.gds_parse_integer(sval_, node, 'chargeItem')
1834
+ ival_ = self.gds_validate_integer(ival_, node, 'chargeItem')
1835
+ self.chargeItem = ival_
1836
+ self.chargeItem_nsprefix_ = child_.prefix
1837
+ elif nodeName_ == 'chargeCategory':
1838
+ value_ = child_.text
1839
+ value_ = self.gds_parse_string(value_, node, 'chargeCategory')
1840
+ value_ = self.gds_validate_string(value_, node, 'chargeCategory')
1841
+ self.chargeCategory = value_
1842
+ self.chargeCategory_nsprefix_ = child_.prefix
1843
+ elif nodeName_ == 'chargeCode':
1844
+ value_ = child_.text
1845
+ value_ = self.gds_parse_string(value_, node, 'chargeCode')
1846
+ value_ = self.gds_validate_string(value_, node, 'chargeCode')
1847
+ self.chargeCode = value_
1848
+ self.chargeCode_nsprefix_ = child_.prefix
1849
+ elif nodeName_ == 'description':
1850
+ value_ = child_.text
1851
+ value_ = self.gds_parse_string(value_, node, 'description')
1852
+ value_ = self.gds_validate_string(value_, node, 'description')
1853
+ self.description = value_
1854
+ self.description_nsprefix_ = child_.prefix
1855
+ elif nodeName_ == 'chargeValue' and child_.text:
1856
+ sval_ = child_.text
1857
+ fval_ = self.gds_parse_decimal(sval_, node, 'chargeValue')
1858
+ fval_ = self.gds_validate_decimal(fval_, node, 'chargeValue')
1859
+ self.chargeValue = fval_
1860
+ self.chargeValue_nsprefix_ = child_.prefix
1861
+ elif nodeName_ == 'vatIndicator':
1862
+ sval_ = child_.text
1863
+ ival_ = self.gds_parse_boolean(sval_, node, 'vatIndicator')
1864
+ ival_ = self.gds_validate_boolean(ival_, node, 'vatIndicator')
1865
+ self.vatIndicator = ival_
1866
+ self.vatIndicator_nsprefix_ = child_.prefix
1867
+ # end class chargeElement
1868
+
1869
+
1870
+ class errors(GeneratedsSuper):
1871
+ __hash__ = GeneratedsSuper.__hash__
1872
+ subclass = None
1873
+ superclass = None
1874
+ def __init__(self, runtimeError=None, parseError=None, brokenRule=None, gds_collector_=None, **kwargs_):
1875
+ self.gds_collector_ = gds_collector_
1876
+ self.gds_elementtree_node_ = None
1877
+ self.original_tagname_ = None
1878
+ self.parent_object_ = kwargs_.get('parent_object_')
1879
+ self.ns_prefix_ = None
1880
+ if runtimeError is None:
1881
+ self.runtimeError = []
1882
+ else:
1883
+ self.runtimeError = runtimeError
1884
+ self.runtimeError_nsprefix_ = None
1885
+ if parseError is None:
1886
+ self.parseError = []
1887
+ else:
1888
+ self.parseError = parseError
1889
+ self.parseError_nsprefix_ = None
1890
+ if brokenRule is None:
1891
+ self.brokenRule = []
1892
+ else:
1893
+ self.brokenRule = brokenRule
1894
+ self.brokenRule_nsprefix_ = None
1895
+ def factory(*args_, **kwargs_):
1896
+ if CurrentSubclassModule_ is not None:
1897
+ subclass = getSubclassFromModule_(
1898
+ CurrentSubclassModule_, errors)
1899
+ if subclass is not None:
1900
+ return subclass(*args_, **kwargs_)
1901
+ if errors.subclass:
1902
+ return errors.subclass(*args_, **kwargs_)
1903
+ else:
1904
+ return errors(*args_, **kwargs_)
1905
+ factory = staticmethod(factory)
1906
+ def get_ns_prefix_(self):
1907
+ return self.ns_prefix_
1908
+ def set_ns_prefix_(self, ns_prefix):
1909
+ self.ns_prefix_ = ns_prefix
1910
+ def get_runtimeError(self):
1911
+ return self.runtimeError
1912
+ def set_runtimeError(self, runtimeError):
1913
+ self.runtimeError = runtimeError
1914
+ def add_runtimeError(self, value):
1915
+ self.runtimeError.append(value)
1916
+ def insert_runtimeError_at(self, index, value):
1917
+ self.runtimeError.insert(index, value)
1918
+ def replace_runtimeError_at(self, index, value):
1919
+ self.runtimeError[index] = value
1920
+ def get_parseError(self):
1921
+ return self.parseError
1922
+ def set_parseError(self, parseError):
1923
+ self.parseError = parseError
1924
+ def add_parseError(self, value):
1925
+ self.parseError.append(value)
1926
+ def insert_parseError_at(self, index, value):
1927
+ self.parseError.insert(index, value)
1928
+ def replace_parseError_at(self, index, value):
1929
+ self.parseError[index] = value
1930
+ def get_brokenRule(self):
1931
+ return self.brokenRule
1932
+ def set_brokenRule(self, brokenRule):
1933
+ self.brokenRule = brokenRule
1934
+ def add_brokenRule(self, value):
1935
+ self.brokenRule.append(value)
1936
+ def insert_brokenRule_at(self, index, value):
1937
+ self.brokenRule.insert(index, value)
1938
+ def replace_brokenRule_at(self, index, value):
1939
+ self.brokenRule[index] = value
1940
+ def has__content(self):
1941
+ if (
1942
+ self.runtimeError or
1943
+ self.parseError or
1944
+ self.brokenRule
1945
+ ):
1946
+ return True
1947
+ else:
1948
+ return False
1949
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='errors', pretty_print=True):
1950
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('errors')
1951
+ if imported_ns_def_ is not None:
1952
+ namespacedef_ = imported_ns_def_
1953
+ if pretty_print:
1954
+ eol_ = '\n'
1955
+ else:
1956
+ eol_ = ''
1957
+ if self.original_tagname_ is not None and name_ == 'errors':
1958
+ name_ = self.original_tagname_
1959
+ if UseCapturedNS_ and self.ns_prefix_:
1960
+ namespaceprefix_ = self.ns_prefix_ + ':'
1961
+ showIndent(outfile, level, pretty_print)
1962
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1963
+ already_processed = set()
1964
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='errors')
1965
+ if self.has__content():
1966
+ outfile.write('>%s' % (eol_, ))
1967
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='errors', pretty_print=pretty_print)
1968
+ showIndent(outfile, level, pretty_print)
1969
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1970
+ else:
1971
+ outfile.write('/>%s' % (eol_, ))
1972
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='errors'):
1973
+ pass
1974
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='errors', fromsubclass_=False, pretty_print=True):
1975
+ if pretty_print:
1976
+ eol_ = '\n'
1977
+ else:
1978
+ eol_ = ''
1979
+ for runtimeError_ in self.runtimeError:
1980
+ namespaceprefix_ = self.runtimeError_nsprefix_ + ':' if (UseCapturedNS_ and self.runtimeError_nsprefix_) else ''
1981
+ runtimeError_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='runtimeError', pretty_print=pretty_print)
1982
+ for parseError_ in self.parseError:
1983
+ namespaceprefix_ = self.parseError_nsprefix_ + ':' if (UseCapturedNS_ and self.parseError_nsprefix_) else ''
1984
+ parseError_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='parseError', pretty_print=pretty_print)
1985
+ for brokenRule_ in self.brokenRule:
1986
+ namespaceprefix_ = self.brokenRule_nsprefix_ + ':' if (UseCapturedNS_ and self.brokenRule_nsprefix_) else ''
1987
+ brokenRule_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='brokenRule', pretty_print=pretty_print)
1988
+ def build(self, node, gds_collector_=None):
1989
+ self.gds_collector_ = gds_collector_
1990
+ if SaveElementTreeNode:
1991
+ self.gds_elementtree_node_ = node
1992
+ already_processed = set()
1993
+ self.ns_prefix_ = node.prefix
1994
+ self._buildAttributes(node, node.attrib, already_processed)
1995
+ for child in node:
1996
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1997
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1998
+ return self
1999
+ def _buildAttributes(self, node, attrs, already_processed):
2000
+ pass
2001
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2002
+ if nodeName_ == 'runtimeError':
2003
+ obj_ = runtimeError.factory(parent_object_=self)
2004
+ obj_.build(child_, gds_collector_=gds_collector_)
2005
+ self.runtimeError.append(obj_)
2006
+ obj_.original_tagname_ = 'runtimeError'
2007
+ elif nodeName_ == 'parseError':
2008
+ obj_ = parseError.factory(parent_object_=self)
2009
+ obj_.build(child_, gds_collector_=gds_collector_)
2010
+ self.parseError.append(obj_)
2011
+ obj_.original_tagname_ = 'parseError'
2012
+ elif nodeName_ == 'brokenRule':
2013
+ obj_ = brokenRule.factory(parent_object_=self)
2014
+ obj_.build(child_, gds_collector_=gds_collector_)
2015
+ self.brokenRule.append(obj_)
2016
+ obj_.original_tagname_ = 'brokenRule'
2017
+ # end class errors
2018
+
2019
+
2020
+ class runtimeError(GeneratedsSuper):
2021
+ """runtimeError -- The runtime error messages returned by ExpressConnect e.g pricing
2022
+ service not available
2023
+ errorReason -- This element contains a description indicating that the
2024
+ pricing request has failed and what action the customer should take.
2025
+ errorSrcText -- This element might contain some additional information
2026
+ regarding the source of the error.
2027
+
2028
+ """
2029
+ __hash__ = GeneratedsSuper.__hash__
2030
+ subclass = None
2031
+ superclass = None
2032
+ def __init__(self, errorReason=None, errorSrcText=None, gds_collector_=None, **kwargs_):
2033
+ self.gds_collector_ = gds_collector_
2034
+ self.gds_elementtree_node_ = None
2035
+ self.original_tagname_ = None
2036
+ self.parent_object_ = kwargs_.get('parent_object_')
2037
+ self.ns_prefix_ = None
2038
+ self.errorReason = errorReason
2039
+ self.errorReason_nsprefix_ = None
2040
+ self.errorSrcText = errorSrcText
2041
+ self.errorSrcText_nsprefix_ = None
2042
+ def factory(*args_, **kwargs_):
2043
+ if CurrentSubclassModule_ is not None:
2044
+ subclass = getSubclassFromModule_(
2045
+ CurrentSubclassModule_, runtimeError)
2046
+ if subclass is not None:
2047
+ return subclass(*args_, **kwargs_)
2048
+ if runtimeError.subclass:
2049
+ return runtimeError.subclass(*args_, **kwargs_)
2050
+ else:
2051
+ return runtimeError(*args_, **kwargs_)
2052
+ factory = staticmethod(factory)
2053
+ def get_ns_prefix_(self):
2054
+ return self.ns_prefix_
2055
+ def set_ns_prefix_(self, ns_prefix):
2056
+ self.ns_prefix_ = ns_prefix
2057
+ def get_errorReason(self):
2058
+ return self.errorReason
2059
+ def set_errorReason(self, errorReason):
2060
+ self.errorReason = errorReason
2061
+ def get_errorSrcText(self):
2062
+ return self.errorSrcText
2063
+ def set_errorSrcText(self, errorSrcText):
2064
+ self.errorSrcText = errorSrcText
2065
+ def has__content(self):
2066
+ if (
2067
+ self.errorReason is not None or
2068
+ self.errorSrcText is not None
2069
+ ):
2070
+ return True
2071
+ else:
2072
+ return False
2073
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='runtimeError', pretty_print=True):
2074
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('runtimeError')
2075
+ if imported_ns_def_ is not None:
2076
+ namespacedef_ = imported_ns_def_
2077
+ if pretty_print:
2078
+ eol_ = '\n'
2079
+ else:
2080
+ eol_ = ''
2081
+ if self.original_tagname_ is not None and name_ == 'runtimeError':
2082
+ name_ = self.original_tagname_
2083
+ if UseCapturedNS_ and self.ns_prefix_:
2084
+ namespaceprefix_ = self.ns_prefix_ + ':'
2085
+ showIndent(outfile, level, pretty_print)
2086
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2087
+ already_processed = set()
2088
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='runtimeError')
2089
+ if self.has__content():
2090
+ outfile.write('>%s' % (eol_, ))
2091
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='runtimeError', pretty_print=pretty_print)
2092
+ showIndent(outfile, level, pretty_print)
2093
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2094
+ else:
2095
+ outfile.write('/>%s' % (eol_, ))
2096
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='runtimeError'):
2097
+ pass
2098
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='runtimeError', fromsubclass_=False, pretty_print=True):
2099
+ if pretty_print:
2100
+ eol_ = '\n'
2101
+ else:
2102
+ eol_ = ''
2103
+ if self.errorReason is not None:
2104
+ namespaceprefix_ = self.errorReason_nsprefix_ + ':' if (UseCapturedNS_ and self.errorReason_nsprefix_) else ''
2105
+ showIndent(outfile, level, pretty_print)
2106
+ outfile.write('<%serrorReason>%s</%serrorReason>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.errorReason), input_name='errorReason')), namespaceprefix_ , eol_))
2107
+ if self.errorSrcText is not None:
2108
+ namespaceprefix_ = self.errorSrcText_nsprefix_ + ':' if (UseCapturedNS_ and self.errorSrcText_nsprefix_) else ''
2109
+ showIndent(outfile, level, pretty_print)
2110
+ outfile.write('<%serrorSrcText>%s</%serrorSrcText>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.errorSrcText), input_name='errorSrcText')), namespaceprefix_ , eol_))
2111
+ def build(self, node, gds_collector_=None):
2112
+ self.gds_collector_ = gds_collector_
2113
+ if SaveElementTreeNode:
2114
+ self.gds_elementtree_node_ = node
2115
+ already_processed = set()
2116
+ self.ns_prefix_ = node.prefix
2117
+ self._buildAttributes(node, node.attrib, already_processed)
2118
+ for child in node:
2119
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2120
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2121
+ return self
2122
+ def _buildAttributes(self, node, attrs, already_processed):
2123
+ pass
2124
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2125
+ if nodeName_ == 'errorReason':
2126
+ value_ = child_.text
2127
+ value_ = self.gds_parse_string(value_, node, 'errorReason')
2128
+ value_ = self.gds_validate_string(value_, node, 'errorReason')
2129
+ self.errorReason = value_
2130
+ self.errorReason_nsprefix_ = child_.prefix
2131
+ elif nodeName_ == 'errorSrcText':
2132
+ value_ = child_.text
2133
+ value_ = self.gds_parse_string(value_, node, 'errorSrcText')
2134
+ value_ = self.gds_validate_string(value_, node, 'errorSrcText')
2135
+ self.errorSrcText = value_
2136
+ self.errorSrcText_nsprefix_ = child_.prefix
2137
+ # end class runtimeError
2138
+
2139
+
2140
+ class parseError(GeneratedsSuper):
2141
+ """parseError -- The XML parse error messages returned by ExpressConnect e.g. Element
2142
+ content is invalid according to the XSD/Schema.
2143
+ errorReason -- This element contains a description indicating that the
2144
+ pricing request has failed and what action the customer should take.
2145
+ errorLine -- This element indicates the line number where the error
2146
+ occurred in the request XML.
2147
+ errorLinepos -- This element indicates the position on the line where the
2148
+ error occurred in the request XML
2149
+ errorSrcText -- This element might contain some additional information
2150
+ regarding the source of the error.
2151
+
2152
+ """
2153
+ __hash__ = GeneratedsSuper.__hash__
2154
+ subclass = None
2155
+ superclass = None
2156
+ def __init__(self, errorReason=None, errorLine=None, errorLinepos=None, errorSrcText=None, gds_collector_=None, **kwargs_):
2157
+ self.gds_collector_ = gds_collector_
2158
+ self.gds_elementtree_node_ = None
2159
+ self.original_tagname_ = None
2160
+ self.parent_object_ = kwargs_.get('parent_object_')
2161
+ self.ns_prefix_ = None
2162
+ self.errorReason = errorReason
2163
+ self.errorReason_nsprefix_ = None
2164
+ self.errorLine = errorLine
2165
+ self.errorLine_nsprefix_ = None
2166
+ self.errorLinepos = errorLinepos
2167
+ self.errorLinepos_nsprefix_ = None
2168
+ self.errorSrcText = errorSrcText
2169
+ self.errorSrcText_nsprefix_ = None
2170
+ def factory(*args_, **kwargs_):
2171
+ if CurrentSubclassModule_ is not None:
2172
+ subclass = getSubclassFromModule_(
2173
+ CurrentSubclassModule_, parseError)
2174
+ if subclass is not None:
2175
+ return subclass(*args_, **kwargs_)
2176
+ if parseError.subclass:
2177
+ return parseError.subclass(*args_, **kwargs_)
2178
+ else:
2179
+ return parseError(*args_, **kwargs_)
2180
+ factory = staticmethod(factory)
2181
+ def get_ns_prefix_(self):
2182
+ return self.ns_prefix_
2183
+ def set_ns_prefix_(self, ns_prefix):
2184
+ self.ns_prefix_ = ns_prefix
2185
+ def get_errorReason(self):
2186
+ return self.errorReason
2187
+ def set_errorReason(self, errorReason):
2188
+ self.errorReason = errorReason
2189
+ def get_errorLine(self):
2190
+ return self.errorLine
2191
+ def set_errorLine(self, errorLine):
2192
+ self.errorLine = errorLine
2193
+ def get_errorLinepos(self):
2194
+ return self.errorLinepos
2195
+ def set_errorLinepos(self, errorLinepos):
2196
+ self.errorLinepos = errorLinepos
2197
+ def get_errorSrcText(self):
2198
+ return self.errorSrcText
2199
+ def set_errorSrcText(self, errorSrcText):
2200
+ self.errorSrcText = errorSrcText
2201
+ def has__content(self):
2202
+ if (
2203
+ self.errorReason is not None or
2204
+ self.errorLine is not None or
2205
+ self.errorLinepos is not None or
2206
+ self.errorSrcText is not None
2207
+ ):
2208
+ return True
2209
+ else:
2210
+ return False
2211
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='parseError', pretty_print=True):
2212
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('parseError')
2213
+ if imported_ns_def_ is not None:
2214
+ namespacedef_ = imported_ns_def_
2215
+ if pretty_print:
2216
+ eol_ = '\n'
2217
+ else:
2218
+ eol_ = ''
2219
+ if self.original_tagname_ is not None and name_ == 'parseError':
2220
+ name_ = self.original_tagname_
2221
+ if UseCapturedNS_ and self.ns_prefix_:
2222
+ namespaceprefix_ = self.ns_prefix_ + ':'
2223
+ showIndent(outfile, level, pretty_print)
2224
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2225
+ already_processed = set()
2226
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='parseError')
2227
+ if self.has__content():
2228
+ outfile.write('>%s' % (eol_, ))
2229
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='parseError', pretty_print=pretty_print)
2230
+ showIndent(outfile, level, pretty_print)
2231
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2232
+ else:
2233
+ outfile.write('/>%s' % (eol_, ))
2234
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='parseError'):
2235
+ pass
2236
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='parseError', fromsubclass_=False, pretty_print=True):
2237
+ if pretty_print:
2238
+ eol_ = '\n'
2239
+ else:
2240
+ eol_ = ''
2241
+ if self.errorReason is not None:
2242
+ namespaceprefix_ = self.errorReason_nsprefix_ + ':' if (UseCapturedNS_ and self.errorReason_nsprefix_) else ''
2243
+ showIndent(outfile, level, pretty_print)
2244
+ outfile.write('<%serrorReason>%s</%serrorReason>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.errorReason), input_name='errorReason')), namespaceprefix_ , eol_))
2245
+ if self.errorLine is not None:
2246
+ namespaceprefix_ = self.errorLine_nsprefix_ + ':' if (UseCapturedNS_ and self.errorLine_nsprefix_) else ''
2247
+ showIndent(outfile, level, pretty_print)
2248
+ outfile.write('<%serrorLine>%s</%serrorLine>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.errorLine), input_name='errorLine')), namespaceprefix_ , eol_))
2249
+ if self.errorLinepos is not None:
2250
+ namespaceprefix_ = self.errorLinepos_nsprefix_ + ':' if (UseCapturedNS_ and self.errorLinepos_nsprefix_) else ''
2251
+ showIndent(outfile, level, pretty_print)
2252
+ outfile.write('<%serrorLinepos>%s</%serrorLinepos>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.errorLinepos), input_name='errorLinepos')), namespaceprefix_ , eol_))
2253
+ if self.errorSrcText is not None:
2254
+ namespaceprefix_ = self.errorSrcText_nsprefix_ + ':' if (UseCapturedNS_ and self.errorSrcText_nsprefix_) else ''
2255
+ showIndent(outfile, level, pretty_print)
2256
+ outfile.write('<%serrorSrcText>%s</%serrorSrcText>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.errorSrcText), input_name='errorSrcText')), namespaceprefix_ , eol_))
2257
+ def build(self, node, gds_collector_=None):
2258
+ self.gds_collector_ = gds_collector_
2259
+ if SaveElementTreeNode:
2260
+ self.gds_elementtree_node_ = node
2261
+ already_processed = set()
2262
+ self.ns_prefix_ = node.prefix
2263
+ self._buildAttributes(node, node.attrib, already_processed)
2264
+ for child in node:
2265
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2266
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2267
+ return self
2268
+ def _buildAttributes(self, node, attrs, already_processed):
2269
+ pass
2270
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2271
+ if nodeName_ == 'errorReason':
2272
+ value_ = child_.text
2273
+ value_ = self.gds_parse_string(value_, node, 'errorReason')
2274
+ value_ = self.gds_validate_string(value_, node, 'errorReason')
2275
+ self.errorReason = value_
2276
+ self.errorReason_nsprefix_ = child_.prefix
2277
+ elif nodeName_ == 'errorLine':
2278
+ value_ = child_.text
2279
+ value_ = self.gds_parse_string(value_, node, 'errorLine')
2280
+ value_ = self.gds_validate_string(value_, node, 'errorLine')
2281
+ self.errorLine = value_
2282
+ self.errorLine_nsprefix_ = child_.prefix
2283
+ elif nodeName_ == 'errorLinepos':
2284
+ value_ = child_.text
2285
+ value_ = self.gds_parse_string(value_, node, 'errorLinepos')
2286
+ value_ = self.gds_validate_string(value_, node, 'errorLinepos')
2287
+ self.errorLinepos = value_
2288
+ self.errorLinepos_nsprefix_ = child_.prefix
2289
+ elif nodeName_ == 'errorSrcText':
2290
+ value_ = child_.text
2291
+ value_ = self.gds_parse_string(value_, node, 'errorSrcText')
2292
+ value_ = self.gds_validate_string(value_, node, 'errorSrcText')
2293
+ self.errorSrcText = value_
2294
+ self.errorSrcText_nsprefix_ = child_.prefix
2295
+ # end class parseError
2296
+
2297
+
2298
+ class brokenRule(GeneratedsSuper):
2299
+ """brokenRule -- The brokenRule section is for application errors which the customer
2300
+ can resolve such as invalid postcode, login credentials.
2301
+
2302
+ * rateId -- The rateId is used to associate the error with the
2303
+ corresponding priceCheck.
2304
+ * messageType -- This can be used to determine the severity of the error
2305
+ returned. The three categories are
2306
+
2307
+ I
2308
+
2309
+
2310
+ Information
2311
+
2312
+ W
2313
+
2314
+
2315
+ Warning
2316
+
2317
+ E
2318
+
2319
+ - Error
2320
+
2321
+ """
2322
+ __hash__ = GeneratedsSuper.__hash__
2323
+ subclass = None
2324
+ superclass = None
2325
+ def __init__(self, rateId=None, messageType=None, code=None, description=None, gds_collector_=None, **kwargs_):
2326
+ self.gds_collector_ = gds_collector_
2327
+ self.gds_elementtree_node_ = None
2328
+ self.original_tagname_ = None
2329
+ self.parent_object_ = kwargs_.get('parent_object_')
2330
+ self.ns_prefix_ = None
2331
+ self.rateId = rateId
2332
+ self.rateId_nsprefix_ = None
2333
+ self.messageType = messageType
2334
+ self.messageType_nsprefix_ = None
2335
+ self.code = code
2336
+ self.code_nsprefix_ = None
2337
+ self.description = description
2338
+ self.description_nsprefix_ = None
2339
+ def factory(*args_, **kwargs_):
2340
+ if CurrentSubclassModule_ is not None:
2341
+ subclass = getSubclassFromModule_(
2342
+ CurrentSubclassModule_, brokenRule)
2343
+ if subclass is not None:
2344
+ return subclass(*args_, **kwargs_)
2345
+ if brokenRule.subclass:
2346
+ return brokenRule.subclass(*args_, **kwargs_)
2347
+ else:
2348
+ return brokenRule(*args_, **kwargs_)
2349
+ factory = staticmethod(factory)
2350
+ def get_ns_prefix_(self):
2351
+ return self.ns_prefix_
2352
+ def set_ns_prefix_(self, ns_prefix):
2353
+ self.ns_prefix_ = ns_prefix
2354
+ def get_rateId(self):
2355
+ return self.rateId
2356
+ def set_rateId(self, rateId):
2357
+ self.rateId = rateId
2358
+ def get_messageType(self):
2359
+ return self.messageType
2360
+ def set_messageType(self, messageType):
2361
+ self.messageType = messageType
2362
+ def get_code(self):
2363
+ return self.code
2364
+ def set_code(self, code):
2365
+ self.code = code
2366
+ def get_description(self):
2367
+ return self.description
2368
+ def set_description(self, description):
2369
+ self.description = description
2370
+ def has__content(self):
2371
+ if (
2372
+ self.rateId is not None or
2373
+ self.messageType is not None or
2374
+ self.code is not None or
2375
+ self.description is not None
2376
+ ):
2377
+ return True
2378
+ else:
2379
+ return False
2380
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='brokenRule', pretty_print=True):
2381
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('brokenRule')
2382
+ if imported_ns_def_ is not None:
2383
+ namespacedef_ = imported_ns_def_
2384
+ if pretty_print:
2385
+ eol_ = '\n'
2386
+ else:
2387
+ eol_ = ''
2388
+ if self.original_tagname_ is not None and name_ == 'brokenRule':
2389
+ name_ = self.original_tagname_
2390
+ if UseCapturedNS_ and self.ns_prefix_:
2391
+ namespaceprefix_ = self.ns_prefix_ + ':'
2392
+ showIndent(outfile, level, pretty_print)
2393
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2394
+ already_processed = set()
2395
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='brokenRule')
2396
+ if self.has__content():
2397
+ outfile.write('>%s' % (eol_, ))
2398
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='brokenRule', pretty_print=pretty_print)
2399
+ showIndent(outfile, level, pretty_print)
2400
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2401
+ else:
2402
+ outfile.write('/>%s' % (eol_, ))
2403
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='brokenRule'):
2404
+ pass
2405
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='brokenRule', fromsubclass_=False, pretty_print=True):
2406
+ if pretty_print:
2407
+ eol_ = '\n'
2408
+ else:
2409
+ eol_ = ''
2410
+ if self.rateId is not None:
2411
+ namespaceprefix_ = self.rateId_nsprefix_ + ':' if (UseCapturedNS_ and self.rateId_nsprefix_) else ''
2412
+ showIndent(outfile, level, pretty_print)
2413
+ outfile.write('<%srateId>%s</%srateId>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.rateId), input_name='rateId')), namespaceprefix_ , eol_))
2414
+ if self.messageType is not None:
2415
+ namespaceprefix_ = self.messageType_nsprefix_ + ':' if (UseCapturedNS_ and self.messageType_nsprefix_) else ''
2416
+ showIndent(outfile, level, pretty_print)
2417
+ outfile.write('<%smessageType>%s</%smessageType>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.messageType), input_name='messageType')), namespaceprefix_ , eol_))
2418
+ if self.code is not None:
2419
+ namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
2420
+ showIndent(outfile, level, pretty_print)
2421
+ outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
2422
+ if self.description is not None:
2423
+ namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
2424
+ showIndent(outfile, level, pretty_print)
2425
+ outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
2426
+ def build(self, node, gds_collector_=None):
2427
+ self.gds_collector_ = gds_collector_
2428
+ if SaveElementTreeNode:
2429
+ self.gds_elementtree_node_ = node
2430
+ already_processed = set()
2431
+ self.ns_prefix_ = node.prefix
2432
+ self._buildAttributes(node, node.attrib, already_processed)
2433
+ for child in node:
2434
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2435
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2436
+ return self
2437
+ def _buildAttributes(self, node, attrs, already_processed):
2438
+ pass
2439
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2440
+ if nodeName_ == 'rateId':
2441
+ value_ = child_.text
2442
+ value_ = self.gds_parse_string(value_, node, 'rateId')
2443
+ value_ = self.gds_validate_string(value_, node, 'rateId')
2444
+ self.rateId = value_
2445
+ self.rateId_nsprefix_ = child_.prefix
2446
+ elif nodeName_ == 'messageType':
2447
+ value_ = child_.text
2448
+ value_ = self.gds_parse_string(value_, node, 'messageType')
2449
+ value_ = self.gds_validate_string(value_, node, 'messageType')
2450
+ self.messageType = value_
2451
+ self.messageType_nsprefix_ = child_.prefix
2452
+ elif nodeName_ == 'code':
2453
+ value_ = child_.text
2454
+ value_ = self.gds_parse_string(value_, node, 'code')
2455
+ value_ = self.gds_validate_string(value_, node, 'code')
2456
+ self.code = value_
2457
+ self.code_nsprefix_ = child_.prefix
2458
+ elif nodeName_ == 'description':
2459
+ value_ = child_.text
2460
+ value_ = self.gds_parse_string(value_, node, 'description')
2461
+ value_ = self.gds_validate_string(value_, node, 'description')
2462
+ self.description = value_
2463
+ self.description_nsprefix_ = child_.prefix
2464
+ # end class brokenRule
2465
+
2466
+
2467
+ class product(GeneratedsSuper):
2468
+ """id -- The identifier for the requested product/service e.g. 15N.
2469
+ division -- The identifier for the requested product/service division.
2470
+ This is an optional element and if not specified will default to an
2471
+ appropriate division based on the origin and destination country selected
2472
+ productDesc -- A short description of the product e.g. Express
2473
+ type -- Type of service for product chosen. Values are "D" for a
2474
+ document or "N" for non-documents. This is a mandatory element.
2475
+ options -- A container element for TNT product option codes.
2476
+
2477
+ """
2478
+ __hash__ = GeneratedsSuper.__hash__
2479
+ subclass = None
2480
+ superclass = None
2481
+ def __init__(self, id=None, division=None, productDesc=None, type_=None, options=None, gds_collector_=None, **kwargs_):
2482
+ self.gds_collector_ = gds_collector_
2483
+ self.gds_elementtree_node_ = None
2484
+ self.original_tagname_ = None
2485
+ self.parent_object_ = kwargs_.get('parent_object_')
2486
+ self.ns_prefix_ = None
2487
+ self.id = id
2488
+ self.id_nsprefix_ = None
2489
+ self.division = division
2490
+ self.division_nsprefix_ = None
2491
+ self.productDesc = productDesc
2492
+ self.productDesc_nsprefix_ = None
2493
+ self.type_ = type_
2494
+ self.type__nsprefix_ = None
2495
+ self.options = options
2496
+ self.options_nsprefix_ = None
2497
+ def factory(*args_, **kwargs_):
2498
+ if CurrentSubclassModule_ is not None:
2499
+ subclass = getSubclassFromModule_(
2500
+ CurrentSubclassModule_, product)
2501
+ if subclass is not None:
2502
+ return subclass(*args_, **kwargs_)
2503
+ if product.subclass:
2504
+ return product.subclass(*args_, **kwargs_)
2505
+ else:
2506
+ return product(*args_, **kwargs_)
2507
+ factory = staticmethod(factory)
2508
+ def get_ns_prefix_(self):
2509
+ return self.ns_prefix_
2510
+ def set_ns_prefix_(self, ns_prefix):
2511
+ self.ns_prefix_ = ns_prefix
2512
+ def get_id(self):
2513
+ return self.id
2514
+ def set_id(self, id):
2515
+ self.id = id
2516
+ def get_division(self):
2517
+ return self.division
2518
+ def set_division(self, division):
2519
+ self.division = division
2520
+ def get_productDesc(self):
2521
+ return self.productDesc
2522
+ def set_productDesc(self, productDesc):
2523
+ self.productDesc = productDesc
2524
+ def get_type(self):
2525
+ return self.type_
2526
+ def set_type(self, type_):
2527
+ self.type_ = type_
2528
+ def get_options(self):
2529
+ return self.options
2530
+ def set_options(self, options):
2531
+ self.options = options
2532
+ def has__content(self):
2533
+ if (
2534
+ self.id is not None or
2535
+ self.division is not None or
2536
+ self.productDesc is not None or
2537
+ self.type_ is not None or
2538
+ self.options is not None
2539
+ ):
2540
+ return True
2541
+ else:
2542
+ return False
2543
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='product', pretty_print=True):
2544
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('product')
2545
+ if imported_ns_def_ is not None:
2546
+ namespacedef_ = imported_ns_def_
2547
+ if pretty_print:
2548
+ eol_ = '\n'
2549
+ else:
2550
+ eol_ = ''
2551
+ if self.original_tagname_ is not None and name_ == 'product':
2552
+ name_ = self.original_tagname_
2553
+ if UseCapturedNS_ and self.ns_prefix_:
2554
+ namespaceprefix_ = self.ns_prefix_ + ':'
2555
+ showIndent(outfile, level, pretty_print)
2556
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2557
+ already_processed = set()
2558
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='product')
2559
+ if self.has__content():
2560
+ outfile.write('>%s' % (eol_, ))
2561
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='product', pretty_print=pretty_print)
2562
+ showIndent(outfile, level, pretty_print)
2563
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2564
+ else:
2565
+ outfile.write('/>%s' % (eol_, ))
2566
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='product'):
2567
+ pass
2568
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='product', fromsubclass_=False, pretty_print=True):
2569
+ if pretty_print:
2570
+ eol_ = '\n'
2571
+ else:
2572
+ eol_ = ''
2573
+ if self.id is not None:
2574
+ namespaceprefix_ = self.id_nsprefix_ + ':' if (UseCapturedNS_ and self.id_nsprefix_) else ''
2575
+ showIndent(outfile, level, pretty_print)
2576
+ outfile.write('<%sid>%s</%sid>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.id), input_name='id')), namespaceprefix_ , eol_))
2577
+ if self.division is not None:
2578
+ namespaceprefix_ = self.division_nsprefix_ + ':' if (UseCapturedNS_ and self.division_nsprefix_) else ''
2579
+ showIndent(outfile, level, pretty_print)
2580
+ outfile.write('<%sdivision>%s</%sdivision>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.division), input_name='division')), namespaceprefix_ , eol_))
2581
+ if self.productDesc is not None:
2582
+ namespaceprefix_ = self.productDesc_nsprefix_ + ':' if (UseCapturedNS_ and self.productDesc_nsprefix_) else ''
2583
+ showIndent(outfile, level, pretty_print)
2584
+ outfile.write('<%sproductDesc>%s</%sproductDesc>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.productDesc), input_name='productDesc')), namespaceprefix_ , eol_))
2585
+ if self.type_ is not None:
2586
+ namespaceprefix_ = self.type__nsprefix_ + ':' if (UseCapturedNS_ and self.type__nsprefix_) else ''
2587
+ showIndent(outfile, level, pretty_print)
2588
+ outfile.write('<%stype>%s</%stype>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.type_), input_name='type')), namespaceprefix_ , eol_))
2589
+ if self.options is not None:
2590
+ namespaceprefix_ = self.options_nsprefix_ + ':' if (UseCapturedNS_ and self.options_nsprefix_) else ''
2591
+ self.options.export(outfile, level, namespaceprefix_, namespacedef_='', name_='options', pretty_print=pretty_print)
2592
+ def build(self, node, gds_collector_=None):
2593
+ self.gds_collector_ = gds_collector_
2594
+ if SaveElementTreeNode:
2595
+ self.gds_elementtree_node_ = node
2596
+ already_processed = set()
2597
+ self.ns_prefix_ = node.prefix
2598
+ self._buildAttributes(node, node.attrib, already_processed)
2599
+ for child in node:
2600
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2601
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2602
+ return self
2603
+ def _buildAttributes(self, node, attrs, already_processed):
2604
+ pass
2605
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2606
+ if nodeName_ == 'id':
2607
+ value_ = child_.text
2608
+ value_ = self.gds_parse_string(value_, node, 'id')
2609
+ value_ = self.gds_validate_string(value_, node, 'id')
2610
+ self.id = value_
2611
+ self.id_nsprefix_ = child_.prefix
2612
+ elif nodeName_ == 'division':
2613
+ value_ = child_.text
2614
+ value_ = self.gds_parse_string(value_, node, 'division')
2615
+ value_ = self.gds_validate_string(value_, node, 'division')
2616
+ self.division = value_
2617
+ self.division_nsprefix_ = child_.prefix
2618
+ elif nodeName_ == 'productDesc':
2619
+ value_ = child_.text
2620
+ value_ = self.gds_parse_string(value_, node, 'productDesc')
2621
+ value_ = self.gds_validate_string(value_, node, 'productDesc')
2622
+ self.productDesc = value_
2623
+ self.productDesc_nsprefix_ = child_.prefix
2624
+ elif nodeName_ == 'type':
2625
+ value_ = child_.text
2626
+ value_ = self.gds_parse_string(value_, node, 'type')
2627
+ value_ = self.gds_validate_string(value_, node, 'type')
2628
+ self.type_ = value_
2629
+ self.type_nsprefix_ = child_.prefix
2630
+ elif nodeName_ == 'options':
2631
+ obj_ = options.factory(parent_object_=self)
2632
+ obj_.build(child_, gds_collector_=gds_collector_)
2633
+ self.options = obj_
2634
+ obj_.original_tagname_ = 'options'
2635
+ # end class product
2636
+
2637
+
2638
+ class options(GeneratedsSuper):
2639
+ """option -- A container element for a TNT product option
2640
+
2641
+ """
2642
+ __hash__ = GeneratedsSuper.__hash__
2643
+ subclass = None
2644
+ superclass = None
2645
+ def __init__(self, option=None, gds_collector_=None, **kwargs_):
2646
+ self.gds_collector_ = gds_collector_
2647
+ self.gds_elementtree_node_ = None
2648
+ self.original_tagname_ = None
2649
+ self.parent_object_ = kwargs_.get('parent_object_')
2650
+ self.ns_prefix_ = None
2651
+ if option is None:
2652
+ self.option = []
2653
+ else:
2654
+ self.option = option
2655
+ self.option_nsprefix_ = None
2656
+ def factory(*args_, **kwargs_):
2657
+ if CurrentSubclassModule_ is not None:
2658
+ subclass = getSubclassFromModule_(
2659
+ CurrentSubclassModule_, options)
2660
+ if subclass is not None:
2661
+ return subclass(*args_, **kwargs_)
2662
+ if options.subclass:
2663
+ return options.subclass(*args_, **kwargs_)
2664
+ else:
2665
+ return options(*args_, **kwargs_)
2666
+ factory = staticmethod(factory)
2667
+ def get_ns_prefix_(self):
2668
+ return self.ns_prefix_
2669
+ def set_ns_prefix_(self, ns_prefix):
2670
+ self.ns_prefix_ = ns_prefix
2671
+ def get_option(self):
2672
+ return self.option
2673
+ def set_option(self, option):
2674
+ self.option = option
2675
+ def add_option(self, value):
2676
+ self.option.append(value)
2677
+ def insert_option_at(self, index, value):
2678
+ self.option.insert(index, value)
2679
+ def replace_option_at(self, index, value):
2680
+ self.option[index] = value
2681
+ def has__content(self):
2682
+ if (
2683
+ self.option
2684
+ ):
2685
+ return True
2686
+ else:
2687
+ return False
2688
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='options', pretty_print=True):
2689
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('options')
2690
+ if imported_ns_def_ is not None:
2691
+ namespacedef_ = imported_ns_def_
2692
+ if pretty_print:
2693
+ eol_ = '\n'
2694
+ else:
2695
+ eol_ = ''
2696
+ if self.original_tagname_ is not None and name_ == 'options':
2697
+ name_ = self.original_tagname_
2698
+ if UseCapturedNS_ and self.ns_prefix_:
2699
+ namespaceprefix_ = self.ns_prefix_ + ':'
2700
+ showIndent(outfile, level, pretty_print)
2701
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2702
+ already_processed = set()
2703
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='options')
2704
+ if self.has__content():
2705
+ outfile.write('>%s' % (eol_, ))
2706
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='options', pretty_print=pretty_print)
2707
+ showIndent(outfile, level, pretty_print)
2708
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2709
+ else:
2710
+ outfile.write('/>%s' % (eol_, ))
2711
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='options'):
2712
+ pass
2713
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='options', fromsubclass_=False, pretty_print=True):
2714
+ if pretty_print:
2715
+ eol_ = '\n'
2716
+ else:
2717
+ eol_ = ''
2718
+ for option_ in self.option:
2719
+ namespaceprefix_ = self.option_nsprefix_ + ':' if (UseCapturedNS_ and self.option_nsprefix_) else ''
2720
+ option_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='option', pretty_print=pretty_print)
2721
+ def build(self, node, gds_collector_=None):
2722
+ self.gds_collector_ = gds_collector_
2723
+ if SaveElementTreeNode:
2724
+ self.gds_elementtree_node_ = node
2725
+ already_processed = set()
2726
+ self.ns_prefix_ = node.prefix
2727
+ self._buildAttributes(node, node.attrib, already_processed)
2728
+ for child in node:
2729
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2730
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2731
+ return self
2732
+ def _buildAttributes(self, node, attrs, already_processed):
2733
+ pass
2734
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2735
+ if nodeName_ == 'option':
2736
+ obj_ = option.factory(parent_object_=self)
2737
+ obj_.build(child_, gds_collector_=gds_collector_)
2738
+ self.option.append(obj_)
2739
+ obj_.original_tagname_ = 'option'
2740
+ # end class options
2741
+
2742
+
2743
+ class option(GeneratedsSuper):
2744
+ """optionCode -- The option must be a valid code from the TNT dataset e.g. PR
2745
+ optionDesc -- A short description of the option .e.g priority
2746
+
2747
+ """
2748
+ __hash__ = GeneratedsSuper.__hash__
2749
+ subclass = None
2750
+ superclass = None
2751
+ def __init__(self, optionCode=None, optionDesc=None, gds_collector_=None, **kwargs_):
2752
+ self.gds_collector_ = gds_collector_
2753
+ self.gds_elementtree_node_ = None
2754
+ self.original_tagname_ = None
2755
+ self.parent_object_ = kwargs_.get('parent_object_')
2756
+ self.ns_prefix_ = None
2757
+ self.optionCode = optionCode
2758
+ self.optionCode_nsprefix_ = None
2759
+ self.optionDesc = optionDesc
2760
+ self.optionDesc_nsprefix_ = None
2761
+ def factory(*args_, **kwargs_):
2762
+ if CurrentSubclassModule_ is not None:
2763
+ subclass = getSubclassFromModule_(
2764
+ CurrentSubclassModule_, option)
2765
+ if subclass is not None:
2766
+ return subclass(*args_, **kwargs_)
2767
+ if option.subclass:
2768
+ return option.subclass(*args_, **kwargs_)
2769
+ else:
2770
+ return option(*args_, **kwargs_)
2771
+ factory = staticmethod(factory)
2772
+ def get_ns_prefix_(self):
2773
+ return self.ns_prefix_
2774
+ def set_ns_prefix_(self, ns_prefix):
2775
+ self.ns_prefix_ = ns_prefix
2776
+ def get_optionCode(self):
2777
+ return self.optionCode
2778
+ def set_optionCode(self, optionCode):
2779
+ self.optionCode = optionCode
2780
+ def get_optionDesc(self):
2781
+ return self.optionDesc
2782
+ def set_optionDesc(self, optionDesc):
2783
+ self.optionDesc = optionDesc
2784
+ def has__content(self):
2785
+ if (
2786
+ self.optionCode is not None or
2787
+ self.optionDesc is not None
2788
+ ):
2789
+ return True
2790
+ else:
2791
+ return False
2792
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='option', pretty_print=True):
2793
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('option')
2794
+ if imported_ns_def_ is not None:
2795
+ namespacedef_ = imported_ns_def_
2796
+ if pretty_print:
2797
+ eol_ = '\n'
2798
+ else:
2799
+ eol_ = ''
2800
+ if self.original_tagname_ is not None and name_ == 'option':
2801
+ name_ = self.original_tagname_
2802
+ if UseCapturedNS_ and self.ns_prefix_:
2803
+ namespaceprefix_ = self.ns_prefix_ + ':'
2804
+ showIndent(outfile, level, pretty_print)
2805
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2806
+ already_processed = set()
2807
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='option')
2808
+ if self.has__content():
2809
+ outfile.write('>%s' % (eol_, ))
2810
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='option', pretty_print=pretty_print)
2811
+ showIndent(outfile, level, pretty_print)
2812
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2813
+ else:
2814
+ outfile.write('/>%s' % (eol_, ))
2815
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='option'):
2816
+ pass
2817
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='option', fromsubclass_=False, pretty_print=True):
2818
+ if pretty_print:
2819
+ eol_ = '\n'
2820
+ else:
2821
+ eol_ = ''
2822
+ if self.optionCode is not None:
2823
+ namespaceprefix_ = self.optionCode_nsprefix_ + ':' if (UseCapturedNS_ and self.optionCode_nsprefix_) else ''
2824
+ showIndent(outfile, level, pretty_print)
2825
+ outfile.write('<%soptionCode>%s</%soptionCode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.optionCode), input_name='optionCode')), namespaceprefix_ , eol_))
2826
+ if self.optionDesc is not None:
2827
+ namespaceprefix_ = self.optionDesc_nsprefix_ + ':' if (UseCapturedNS_ and self.optionDesc_nsprefix_) else ''
2828
+ showIndent(outfile, level, pretty_print)
2829
+ outfile.write('<%soptionDesc>%s</%soptionDesc>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.optionDesc), input_name='optionDesc')), namespaceprefix_ , eol_))
2830
+ def build(self, node, gds_collector_=None):
2831
+ self.gds_collector_ = gds_collector_
2832
+ if SaveElementTreeNode:
2833
+ self.gds_elementtree_node_ = node
2834
+ already_processed = set()
2835
+ self.ns_prefix_ = node.prefix
2836
+ self._buildAttributes(node, node.attrib, already_processed)
2837
+ for child in node:
2838
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2839
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2840
+ return self
2841
+ def _buildAttributes(self, node, attrs, already_processed):
2842
+ pass
2843
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2844
+ if nodeName_ == 'optionCode':
2845
+ value_ = child_.text
2846
+ value_ = self.gds_parse_string(value_, node, 'optionCode')
2847
+ value_ = self.gds_validate_string(value_, node, 'optionCode')
2848
+ self.optionCode = value_
2849
+ self.optionCode_nsprefix_ = child_.prefix
2850
+ elif nodeName_ == 'optionDesc':
2851
+ value_ = child_.text
2852
+ value_ = self.gds_parse_string(value_, node, 'optionDesc')
2853
+ value_ = self.gds_validate_string(value_, node, 'optionDesc')
2854
+ self.optionDesc = value_
2855
+ self.optionDesc_nsprefix_ = child_.prefix
2856
+ # end class option
2857
+
2858
+
2859
+ #
2860
+ # End data representation classes.
2861
+ #
2862
+
2863
+
2864
+ GDSClassesMapping = {
2865
+ }
2866
+
2867
+
2868
+ USAGE_TEXT = """
2869
+ Usage: python <Parser>.py [ -s ] <in_xml_file>
2870
+ """
2871
+
2872
+
2873
+ def usage():
2874
+ print(USAGE_TEXT)
2875
+ sys.exit(1)
2876
+
2877
+
2878
+ def get_root_tag(node):
2879
+ tag = Tag_pattern_.match(node.tag).groups()[-1]
2880
+ prefix_tag = TagNamePrefix + tag
2881
+ rootClass = GDSClassesMapping.get(prefix_tag)
2882
+ if rootClass is None:
2883
+ rootClass = globals().get(prefix_tag)
2884
+ return tag, rootClass
2885
+
2886
+
2887
+ def get_required_ns_prefix_defs(rootNode):
2888
+ '''Get all name space prefix definitions required in this XML doc.
2889
+ Return a dictionary of definitions and a char string of definitions.
2890
+ '''
2891
+ nsmap = {
2892
+ prefix: uri
2893
+ for node in rootNode.iter()
2894
+ for (prefix, uri) in node.nsmap.items()
2895
+ if prefix is not None
2896
+ }
2897
+ namespacedefs = ' '.join([
2898
+ 'xmlns:{}="{}"'.format(prefix, uri)
2899
+ for prefix, uri in nsmap.items()
2900
+ ])
2901
+ return nsmap, namespacedefs
2902
+
2903
+
2904
+ def parse(inFileName, silence=False, print_warnings=True):
2905
+ global CapturedNsmap_
2906
+ gds_collector = GdsCollector_()
2907
+ parser = None
2908
+ doc = parsexml_(inFileName, parser)
2909
+ rootNode = doc.getroot()
2910
+ rootTag, rootClass = get_root_tag(rootNode)
2911
+ if rootClass is None:
2912
+ rootTag = 'document'
2913
+ rootClass = document
2914
+ rootObj = rootClass.factory()
2915
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2916
+ CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
2917
+ if not SaveElementTreeNode:
2918
+ doc = None
2919
+ rootNode = None
2920
+ if not silence:
2921
+ sys.stdout.write('<?xml version="1.0" ?>\n')
2922
+ rootObj.export(
2923
+ sys.stdout, 0, name_=rootTag,
2924
+ namespacedef_=namespacedefs,
2925
+ pretty_print=True)
2926
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2927
+ separator = ('-' * 50) + '\n'
2928
+ sys.stderr.write(separator)
2929
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2930
+ len(gds_collector.get_messages()), ))
2931
+ gds_collector.write_messages(sys.stderr)
2932
+ sys.stderr.write(separator)
2933
+ return rootObj
2934
+
2935
+
2936
+ def parseEtree(inFileName, silence=False, print_warnings=True,
2937
+ mapping=None, reverse_mapping=None, nsmap=None):
2938
+ parser = None
2939
+ doc = parsexml_(inFileName, parser)
2940
+ gds_collector = GdsCollector_()
2941
+ rootNode = doc.getroot()
2942
+ rootTag, rootClass = get_root_tag(rootNode)
2943
+ if rootClass is None:
2944
+ rootTag = 'document'
2945
+ rootClass = document
2946
+ rootObj = rootClass.factory()
2947
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2948
+ if mapping is None:
2949
+ mapping = {}
2950
+ if reverse_mapping is None:
2951
+ reverse_mapping = {}
2952
+ rootElement = rootObj.to_etree(
2953
+ None, name_=rootTag, mapping_=mapping,
2954
+ reverse_mapping_=reverse_mapping, nsmap_=nsmap)
2955
+ reverse_node_mapping = rootObj.gds_reverse_node_mapping(mapping)
2956
+ # Enable Python to collect the space used by the DOM.
2957
+ if not SaveElementTreeNode:
2958
+ doc = None
2959
+ rootNode = None
2960
+ if not silence:
2961
+ content = etree_.tostring(
2962
+ rootElement, pretty_print=True,
2963
+ xml_declaration=True, encoding="utf-8")
2964
+ sys.stdout.write(str(content))
2965
+ sys.stdout.write('\n')
2966
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2967
+ separator = ('-' * 50) + '\n'
2968
+ sys.stderr.write(separator)
2969
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2970
+ len(gds_collector.get_messages()), ))
2971
+ gds_collector.write_messages(sys.stderr)
2972
+ sys.stderr.write(separator)
2973
+ return rootObj, rootElement, mapping, reverse_node_mapping
2974
+
2975
+
2976
+ def parseString(inString, silence=False, print_warnings=True):
2977
+ '''Parse a string, create the object tree, and export it.
2978
+
2979
+ Arguments:
2980
+ - inString -- A string. This XML fragment should not start
2981
+ with an XML declaration containing an encoding.
2982
+ - silence -- A boolean. If False, export the object.
2983
+ Returns -- The root object in the tree.
2984
+ '''
2985
+ parser = None
2986
+ rootNode= parsexmlstring_(inString, parser)
2987
+ gds_collector = GdsCollector_()
2988
+ rootTag, rootClass = get_root_tag(rootNode)
2989
+ if rootClass is None:
2990
+ rootTag = 'document'
2991
+ rootClass = document
2992
+ rootObj = rootClass.factory()
2993
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2994
+ if not SaveElementTreeNode:
2995
+ rootNode = None
2996
+ if not silence:
2997
+ sys.stdout.write('<?xml version="1.0" ?>\n')
2998
+ rootObj.export(
2999
+ sys.stdout, 0, name_=rootTag,
3000
+ namespacedef_='')
3001
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3002
+ separator = ('-' * 50) + '\n'
3003
+ sys.stderr.write(separator)
3004
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3005
+ len(gds_collector.get_messages()), ))
3006
+ gds_collector.write_messages(sys.stderr)
3007
+ sys.stderr.write(separator)
3008
+ return rootObj
3009
+
3010
+
3011
+ def parseLiteral(inFileName, silence=False, print_warnings=True):
3012
+ parser = None
3013
+ doc = parsexml_(inFileName, parser)
3014
+ gds_collector = GdsCollector_()
3015
+ rootNode = doc.getroot()
3016
+ rootTag, rootClass = get_root_tag(rootNode)
3017
+ if rootClass is None:
3018
+ rootTag = 'document'
3019
+ rootClass = document
3020
+ rootObj = rootClass.factory()
3021
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3022
+ # Enable Python to collect the space used by the DOM.
3023
+ if not SaveElementTreeNode:
3024
+ doc = None
3025
+ rootNode = None
3026
+ if not silence:
3027
+ sys.stdout.write('#from rating_response import *\n\n')
3028
+ sys.stdout.write('import rating_response as model_\n\n')
3029
+ sys.stdout.write('rootObj = model_.rootClass(\n')
3030
+ rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
3031
+ sys.stdout.write(')\n')
3032
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3033
+ separator = ('-' * 50) + '\n'
3034
+ sys.stderr.write(separator)
3035
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3036
+ len(gds_collector.get_messages()), ))
3037
+ gds_collector.write_messages(sys.stderr)
3038
+ sys.stderr.write(separator)
3039
+ return rootObj
3040
+
3041
+
3042
+ def main():
3043
+ args = sys.argv[1:]
3044
+ if len(args) == 1:
3045
+ parse(args[0])
3046
+ else:
3047
+ usage()
3048
+
3049
+
3050
+ if __name__ == '__main__':
3051
+ #import pdb; pdb.set_trace()
3052
+ main()
3053
+
3054
+ RenameMappings_ = {
3055
+ }
3056
+
3057
+ #
3058
+ # Mapping of namespaces to types defined in them
3059
+ # and the file in which each is defined.
3060
+ # simpleTypes are marked "ST" and complexTypes "CT".
3061
+ NamespaceToDefMappings_ = {}
3062
+
3063
+ __all__ = [
3064
+ "brokenRule",
3065
+ "chargeElement",
3066
+ "chargeElements",
3067
+ "document",
3068
+ "errors",
3069
+ "option",
3070
+ "options",
3071
+ "parseError",
3072
+ "priceResponse",
3073
+ "product",
3074
+ "ratedService",
3075
+ "ratedServices",
3076
+ "runtimeError"
3077
+ ]