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,2886 @@
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_request.py')
11
+ #
12
+ # Command line arguments:
13
+ # ./schemas/rating_request.xsd
14
+ #
15
+ # Command line:
16
+ # /home/kserver/Workspace/karrio/.venv/karrio/bin/generateDS --no-namespace-defs -o "./karrio/schemas/tnt/rating_request.py" ./schemas/rating_request.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 priceRequest(GeneratedsSuper):
1011
+ """priceRequest -- PriceRequest input XSD. Version 3.0
1012
+ appId -- This is the application ID and should be set to
1013
+
1014
+ PC
1015
+
1016
+ .
1017
+ appVersion -- This denotes the version of ExpressConnect Pricing that
1018
+ will be used. If a value of 3.0 is supplied then the new interface
1019
+ functionality will be evoked If no appVersion is supplied it will be
1020
+ assume that the existing interface is used. Only 3.0 will be considered
1021
+ valid, if any other value is supplied then an error will be returned..
1022
+
1023
+ """
1024
+ __hash__ = GeneratedsSuper.__hash__
1025
+ subclass = None
1026
+ superclass = None
1027
+ def __init__(self, appId=None, appVersion=None, priceCheck=None, gds_collector_=None, **kwargs_):
1028
+ self.gds_collector_ = gds_collector_
1029
+ self.gds_elementtree_node_ = None
1030
+ self.original_tagname_ = None
1031
+ self.parent_object_ = kwargs_.get('parent_object_')
1032
+ self.ns_prefix_ = None
1033
+ self.appId = appId
1034
+ self.appId_nsprefix_ = None
1035
+ self.appVersion = appVersion
1036
+ self.appVersion_nsprefix_ = None
1037
+ if priceCheck is None:
1038
+ self.priceCheck = []
1039
+ else:
1040
+ self.priceCheck = priceCheck
1041
+ self.priceCheck_nsprefix_ = None
1042
+ def factory(*args_, **kwargs_):
1043
+ if CurrentSubclassModule_ is not None:
1044
+ subclass = getSubclassFromModule_(
1045
+ CurrentSubclassModule_, priceRequest)
1046
+ if subclass is not None:
1047
+ return subclass(*args_, **kwargs_)
1048
+ if priceRequest.subclass:
1049
+ return priceRequest.subclass(*args_, **kwargs_)
1050
+ else:
1051
+ return priceRequest(*args_, **kwargs_)
1052
+ factory = staticmethod(factory)
1053
+ def get_ns_prefix_(self):
1054
+ return self.ns_prefix_
1055
+ def set_ns_prefix_(self, ns_prefix):
1056
+ self.ns_prefix_ = ns_prefix
1057
+ def get_appId(self):
1058
+ return self.appId
1059
+ def set_appId(self, appId):
1060
+ self.appId = appId
1061
+ def get_appVersion(self):
1062
+ return self.appVersion
1063
+ def set_appVersion(self, appVersion):
1064
+ self.appVersion = appVersion
1065
+ def get_priceCheck(self):
1066
+ return self.priceCheck
1067
+ def set_priceCheck(self, priceCheck):
1068
+ self.priceCheck = priceCheck
1069
+ def add_priceCheck(self, value):
1070
+ self.priceCheck.append(value)
1071
+ def insert_priceCheck_at(self, index, value):
1072
+ self.priceCheck.insert(index, value)
1073
+ def replace_priceCheck_at(self, index, value):
1074
+ self.priceCheck[index] = value
1075
+ def has__content(self):
1076
+ if (
1077
+ self.appId is not None or
1078
+ self.appVersion is not None or
1079
+ self.priceCheck
1080
+ ):
1081
+ return True
1082
+ else:
1083
+ return False
1084
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='priceRequest', pretty_print=True):
1085
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('priceRequest')
1086
+ if imported_ns_def_ is not None:
1087
+ namespacedef_ = imported_ns_def_
1088
+ if pretty_print:
1089
+ eol_ = '\n'
1090
+ else:
1091
+ eol_ = ''
1092
+ if self.original_tagname_ is not None and name_ == 'priceRequest':
1093
+ name_ = self.original_tagname_
1094
+ if UseCapturedNS_ and self.ns_prefix_:
1095
+ namespaceprefix_ = self.ns_prefix_ + ':'
1096
+ showIndent(outfile, level, pretty_print)
1097
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1098
+ already_processed = set()
1099
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='priceRequest')
1100
+ if self.has__content():
1101
+ outfile.write('>%s' % (eol_, ))
1102
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='priceRequest', pretty_print=pretty_print)
1103
+ showIndent(outfile, level, pretty_print)
1104
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1105
+ else:
1106
+ outfile.write('/>%s' % (eol_, ))
1107
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='priceRequest'):
1108
+ pass
1109
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='priceRequest', fromsubclass_=False, pretty_print=True):
1110
+ if pretty_print:
1111
+ eol_ = '\n'
1112
+ else:
1113
+ eol_ = ''
1114
+ if self.appId is not None:
1115
+ namespaceprefix_ = self.appId_nsprefix_ + ':' if (UseCapturedNS_ and self.appId_nsprefix_) else ''
1116
+ showIndent(outfile, level, pretty_print)
1117
+ outfile.write('<%sappId>%s</%sappId>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.appId), input_name='appId')), namespaceprefix_ , eol_))
1118
+ if self.appVersion is not None:
1119
+ namespaceprefix_ = self.appVersion_nsprefix_ + ':' if (UseCapturedNS_ and self.appVersion_nsprefix_) else ''
1120
+ showIndent(outfile, level, pretty_print)
1121
+ outfile.write('<%sappVersion>%s</%sappVersion>%s' % (namespaceprefix_ , self.gds_format_decimal(self.appVersion, input_name='appVersion'), namespaceprefix_ , eol_))
1122
+ for priceCheck_ in self.priceCheck:
1123
+ namespaceprefix_ = self.priceCheck_nsprefix_ + ':' if (UseCapturedNS_ and self.priceCheck_nsprefix_) else ''
1124
+ priceCheck_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='priceCheck', 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_ == 'appId':
1140
+ value_ = child_.text
1141
+ value_ = self.gds_parse_string(value_, node, 'appId')
1142
+ value_ = self.gds_validate_string(value_, node, 'appId')
1143
+ self.appId = value_
1144
+ self.appId_nsprefix_ = child_.prefix
1145
+ elif nodeName_ == 'appVersion' and child_.text:
1146
+ sval_ = child_.text
1147
+ fval_ = self.gds_parse_decimal(sval_, node, 'appVersion')
1148
+ fval_ = self.gds_validate_decimal(fval_, node, 'appVersion')
1149
+ self.appVersion = fval_
1150
+ self.appVersion_nsprefix_ = child_.prefix
1151
+ elif nodeName_ == 'priceCheck':
1152
+ obj_ = priceCheck.factory(parent_object_=self)
1153
+ obj_.build(child_, gds_collector_=gds_collector_)
1154
+ self.priceCheck.append(obj_)
1155
+ obj_.original_tagname_ = 'priceCheck'
1156
+ # end class priceRequest
1157
+
1158
+
1159
+ class priceCheck(GeneratedsSuper):
1160
+ """priceCheck -- The priceCheck container element represents a single request for a
1161
+ price request. Multiple price requests, each one in a priceCheck element may be
1162
+ submitted. The information within this element will be used to validate the
1163
+ addresses, determine the services, and produce the estimate costs for the shipment.
1164
+ rateId -- It is recommended that the value is unique within the
1165
+ priceRequest to allow easy identification of results to requests.
1166
+ sender -- This element provides the origin address details and must
1167
+ be supplied for each Price request message.
1168
+ delivery -- This container element provides the destination address
1169
+ details and must be supplied for each Price request message.
1170
+ collectionDateTime -- The format of a date time is yyyy-mmddThh:MM:ss
1171
+ product -- This is a container element for Information relating to
1172
+ the TNT product chosen for this priceCheck.
1173
+ account -- This is an optional element but must be supplied to obtain
1174
+ accurate price estimates.
1175
+ insurance -- This container element holds the insurance details needed
1176
+ to retrieve an insurance quote as part of the price response. If an
1177
+ insurance option such as IN is specified than these elements become
1178
+ mandatory.
1179
+ termsOfPayment -- Whether the sender or receiver to paying for the shipment.
1180
+ Values are "S" for a sender or "R" for receiver. Optional element, which
1181
+ default to S if not supplied.
1182
+ currency -- The ISO 4217 Alpha-3 currency codes for the currency of
1183
+ the price request.
1184
+ priceBreakDown -- This is an optional element that determines if a full
1185
+ price breakdown is returned or just the high level rate. The default
1186
+ value is false.
1187
+ consignmentDetails -- Container element to hold the summary consignment details
1188
+ for the pricing request. This element is optional as long as the
1189
+ pieceLine are specified instead
1190
+ pieceLine -- The pieceLine container element is used to describe
1191
+ the individual piece lines which make up the consignment in greater
1192
+ detail. It is an optional element and can occur multiple times. The
1193
+ details specified for the pieceLine must be compatible with those
1194
+ specified in the consignmentDetails. If no pieceLine are specified
1195
+ then a default one will be created.
1196
+
1197
+ """
1198
+ __hash__ = GeneratedsSuper.__hash__
1199
+ subclass = None
1200
+ superclass = None
1201
+ def __init__(self, rateId=None, sender=None, delivery=None, collectionDateTime=None, product=None, account=None, insurance=None, termsOfPayment=None, currency=None, priceBreakDown=False, consignmentDetails=None, pieceLine=None, gds_collector_=None, **kwargs_):
1202
+ self.gds_collector_ = gds_collector_
1203
+ self.gds_elementtree_node_ = None
1204
+ self.original_tagname_ = None
1205
+ self.parent_object_ = kwargs_.get('parent_object_')
1206
+ self.ns_prefix_ = None
1207
+ self.rateId = rateId
1208
+ self.rateId_nsprefix_ = None
1209
+ self.sender = sender
1210
+ self.sender_nsprefix_ = None
1211
+ self.delivery = delivery
1212
+ self.delivery_nsprefix_ = None
1213
+ if isinstance(collectionDateTime, BaseStrType_):
1214
+ initvalue_ = datetime_.datetime.strptime(collectionDateTime, '%Y-%m-%dT%H:%M:%S')
1215
+ else:
1216
+ initvalue_ = collectionDateTime
1217
+ self.collectionDateTime = initvalue_
1218
+ self.collectionDateTime_nsprefix_ = None
1219
+ self.product = product
1220
+ self.product_nsprefix_ = None
1221
+ self.account = account
1222
+ self.account_nsprefix_ = None
1223
+ self.insurance = insurance
1224
+ self.insurance_nsprefix_ = None
1225
+ self.termsOfPayment = termsOfPayment
1226
+ self.termsOfPayment_nsprefix_ = None
1227
+ self.currency = currency
1228
+ self.currency_nsprefix_ = None
1229
+ self.priceBreakDown = priceBreakDown
1230
+ self.priceBreakDown_nsprefix_ = None
1231
+ self.consignmentDetails = consignmentDetails
1232
+ self.consignmentDetails_nsprefix_ = None
1233
+ if pieceLine is None:
1234
+ self.pieceLine = []
1235
+ else:
1236
+ self.pieceLine = pieceLine
1237
+ self.pieceLine_nsprefix_ = None
1238
+ def factory(*args_, **kwargs_):
1239
+ if CurrentSubclassModule_ is not None:
1240
+ subclass = getSubclassFromModule_(
1241
+ CurrentSubclassModule_, priceCheck)
1242
+ if subclass is not None:
1243
+ return subclass(*args_, **kwargs_)
1244
+ if priceCheck.subclass:
1245
+ return priceCheck.subclass(*args_, **kwargs_)
1246
+ else:
1247
+ return priceCheck(*args_, **kwargs_)
1248
+ factory = staticmethod(factory)
1249
+ def get_ns_prefix_(self):
1250
+ return self.ns_prefix_
1251
+ def set_ns_prefix_(self, ns_prefix):
1252
+ self.ns_prefix_ = ns_prefix
1253
+ def get_rateId(self):
1254
+ return self.rateId
1255
+ def set_rateId(self, rateId):
1256
+ self.rateId = rateId
1257
+ def get_sender(self):
1258
+ return self.sender
1259
+ def set_sender(self, sender):
1260
+ self.sender = sender
1261
+ def get_delivery(self):
1262
+ return self.delivery
1263
+ def set_delivery(self, delivery):
1264
+ self.delivery = delivery
1265
+ def get_collectionDateTime(self):
1266
+ return self.collectionDateTime
1267
+ def set_collectionDateTime(self, collectionDateTime):
1268
+ self.collectionDateTime = collectionDateTime
1269
+ def get_product(self):
1270
+ return self.product
1271
+ def set_product(self, product):
1272
+ self.product = product
1273
+ def get_account(self):
1274
+ return self.account
1275
+ def set_account(self, account):
1276
+ self.account = account
1277
+ def get_insurance(self):
1278
+ return self.insurance
1279
+ def set_insurance(self, insurance):
1280
+ self.insurance = insurance
1281
+ def get_termsOfPayment(self):
1282
+ return self.termsOfPayment
1283
+ def set_termsOfPayment(self, termsOfPayment):
1284
+ self.termsOfPayment = termsOfPayment
1285
+ def get_currency(self):
1286
+ return self.currency
1287
+ def set_currency(self, currency):
1288
+ self.currency = currency
1289
+ def get_priceBreakDown(self):
1290
+ return self.priceBreakDown
1291
+ def set_priceBreakDown(self, priceBreakDown):
1292
+ self.priceBreakDown = priceBreakDown
1293
+ def get_consignmentDetails(self):
1294
+ return self.consignmentDetails
1295
+ def set_consignmentDetails(self, consignmentDetails):
1296
+ self.consignmentDetails = consignmentDetails
1297
+ def get_pieceLine(self):
1298
+ return self.pieceLine
1299
+ def set_pieceLine(self, pieceLine):
1300
+ self.pieceLine = pieceLine
1301
+ def add_pieceLine(self, value):
1302
+ self.pieceLine.append(value)
1303
+ def insert_pieceLine_at(self, index, value):
1304
+ self.pieceLine.insert(index, value)
1305
+ def replace_pieceLine_at(self, index, value):
1306
+ self.pieceLine[index] = value
1307
+ def has__content(self):
1308
+ if (
1309
+ self.rateId is not None or
1310
+ self.sender is not None or
1311
+ self.delivery is not None or
1312
+ self.collectionDateTime is not None or
1313
+ self.product is not None or
1314
+ self.account is not None or
1315
+ self.insurance is not None or
1316
+ self.termsOfPayment is not None or
1317
+ self.currency is not None or
1318
+ self.priceBreakDown or
1319
+ self.consignmentDetails is not None or
1320
+ self.pieceLine
1321
+ ):
1322
+ return True
1323
+ else:
1324
+ return False
1325
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='priceCheck', pretty_print=True):
1326
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('priceCheck')
1327
+ if imported_ns_def_ is not None:
1328
+ namespacedef_ = imported_ns_def_
1329
+ if pretty_print:
1330
+ eol_ = '\n'
1331
+ else:
1332
+ eol_ = ''
1333
+ if self.original_tagname_ is not None and name_ == 'priceCheck':
1334
+ name_ = self.original_tagname_
1335
+ if UseCapturedNS_ and self.ns_prefix_:
1336
+ namespaceprefix_ = self.ns_prefix_ + ':'
1337
+ showIndent(outfile, level, pretty_print)
1338
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1339
+ already_processed = set()
1340
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='priceCheck')
1341
+ if self.has__content():
1342
+ outfile.write('>%s' % (eol_, ))
1343
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='priceCheck', pretty_print=pretty_print)
1344
+ showIndent(outfile, level, pretty_print)
1345
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1346
+ else:
1347
+ outfile.write('/>%s' % (eol_, ))
1348
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='priceCheck'):
1349
+ pass
1350
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='priceCheck', fromsubclass_=False, pretty_print=True):
1351
+ if pretty_print:
1352
+ eol_ = '\n'
1353
+ else:
1354
+ eol_ = ''
1355
+ if self.rateId is not None:
1356
+ namespaceprefix_ = self.rateId_nsprefix_ + ':' if (UseCapturedNS_ and self.rateId_nsprefix_) else ''
1357
+ showIndent(outfile, level, pretty_print)
1358
+ outfile.write('<%srateId>%s</%srateId>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.rateId), input_name='rateId')), namespaceprefix_ , eol_))
1359
+ if self.sender is not None:
1360
+ namespaceprefix_ = self.sender_nsprefix_ + ':' if (UseCapturedNS_ and self.sender_nsprefix_) else ''
1361
+ self.sender.export(outfile, level, namespaceprefix_, namespacedef_='', name_='sender', pretty_print=pretty_print)
1362
+ if self.delivery is not None:
1363
+ namespaceprefix_ = self.delivery_nsprefix_ + ':' if (UseCapturedNS_ and self.delivery_nsprefix_) else ''
1364
+ self.delivery.export(outfile, level, namespaceprefix_, namespacedef_='', name_='delivery', pretty_print=pretty_print)
1365
+ if self.collectionDateTime is not None:
1366
+ namespaceprefix_ = self.collectionDateTime_nsprefix_ + ':' if (UseCapturedNS_ and self.collectionDateTime_nsprefix_) else ''
1367
+ showIndent(outfile, level, pretty_print)
1368
+ outfile.write('<%scollectionDateTime>%s</%scollectionDateTime>%s' % (namespaceprefix_ , self.gds_format_datetime(self.collectionDateTime, input_name='collectionDateTime'), namespaceprefix_ , eol_))
1369
+ if self.product is not None:
1370
+ namespaceprefix_ = self.product_nsprefix_ + ':' if (UseCapturedNS_ and self.product_nsprefix_) else ''
1371
+ self.product.export(outfile, level, namespaceprefix_, namespacedef_='', name_='product', pretty_print=pretty_print)
1372
+ if self.account is not None:
1373
+ namespaceprefix_ = self.account_nsprefix_ + ':' if (UseCapturedNS_ and self.account_nsprefix_) else ''
1374
+ self.account.export(outfile, level, namespaceprefix_, namespacedef_='', name_='account', pretty_print=pretty_print)
1375
+ if self.insurance is not None:
1376
+ namespaceprefix_ = self.insurance_nsprefix_ + ':' if (UseCapturedNS_ and self.insurance_nsprefix_) else ''
1377
+ self.insurance.export(outfile, level, namespaceprefix_, namespacedef_='', name_='insurance', pretty_print=pretty_print)
1378
+ if self.termsOfPayment is not None:
1379
+ namespaceprefix_ = self.termsOfPayment_nsprefix_ + ':' if (UseCapturedNS_ and self.termsOfPayment_nsprefix_) else ''
1380
+ showIndent(outfile, level, pretty_print)
1381
+ outfile.write('<%stermsOfPayment>%s</%stermsOfPayment>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.termsOfPayment), input_name='termsOfPayment')), namespaceprefix_ , eol_))
1382
+ if self.currency is not None:
1383
+ namespaceprefix_ = self.currency_nsprefix_ + ':' if (UseCapturedNS_ and self.currency_nsprefix_) else ''
1384
+ showIndent(outfile, level, pretty_print)
1385
+ outfile.write('<%scurrency>%s</%scurrency>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.currency), input_name='currency')), namespaceprefix_ , eol_))
1386
+ if self.priceBreakDown:
1387
+ namespaceprefix_ = self.priceBreakDown_nsprefix_ + ':' if (UseCapturedNS_ and self.priceBreakDown_nsprefix_) else ''
1388
+ showIndent(outfile, level, pretty_print)
1389
+ outfile.write('<%spriceBreakDown>%s</%spriceBreakDown>%s' % (namespaceprefix_ , self.gds_format_boolean(self.priceBreakDown, input_name='priceBreakDown'), namespaceprefix_ , eol_))
1390
+ if self.consignmentDetails is not None:
1391
+ namespaceprefix_ = self.consignmentDetails_nsprefix_ + ':' if (UseCapturedNS_ and self.consignmentDetails_nsprefix_) else ''
1392
+ self.consignmentDetails.export(outfile, level, namespaceprefix_, namespacedef_='', name_='consignmentDetails', pretty_print=pretty_print)
1393
+ for pieceLine_ in self.pieceLine:
1394
+ namespaceprefix_ = self.pieceLine_nsprefix_ + ':' if (UseCapturedNS_ and self.pieceLine_nsprefix_) else ''
1395
+ pieceLine_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='pieceLine', pretty_print=pretty_print)
1396
+ def build(self, node, gds_collector_=None):
1397
+ self.gds_collector_ = gds_collector_
1398
+ if SaveElementTreeNode:
1399
+ self.gds_elementtree_node_ = node
1400
+ already_processed = set()
1401
+ self.ns_prefix_ = node.prefix
1402
+ self._buildAttributes(node, node.attrib, already_processed)
1403
+ for child in node:
1404
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1405
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1406
+ return self
1407
+ def _buildAttributes(self, node, attrs, already_processed):
1408
+ pass
1409
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1410
+ if nodeName_ == 'rateId':
1411
+ value_ = child_.text
1412
+ value_ = self.gds_parse_string(value_, node, 'rateId')
1413
+ value_ = self.gds_validate_string(value_, node, 'rateId')
1414
+ self.rateId = value_
1415
+ self.rateId_nsprefix_ = child_.prefix
1416
+ elif nodeName_ == 'sender':
1417
+ obj_ = address.factory(parent_object_=self)
1418
+ obj_.build(child_, gds_collector_=gds_collector_)
1419
+ self.sender = obj_
1420
+ obj_.original_tagname_ = 'sender'
1421
+ elif nodeName_ == 'delivery':
1422
+ obj_ = address.factory(parent_object_=self)
1423
+ obj_.build(child_, gds_collector_=gds_collector_)
1424
+ self.delivery = obj_
1425
+ obj_.original_tagname_ = 'delivery'
1426
+ elif nodeName_ == 'collectionDateTime':
1427
+ sval_ = child_.text
1428
+ dval_ = self.gds_parse_datetime(sval_)
1429
+ self.collectionDateTime = dval_
1430
+ self.collectionDateTime_nsprefix_ = child_.prefix
1431
+ elif nodeName_ == 'product':
1432
+ obj_ = product.factory(parent_object_=self)
1433
+ obj_.build(child_, gds_collector_=gds_collector_)
1434
+ self.product = obj_
1435
+ obj_.original_tagname_ = 'product'
1436
+ elif nodeName_ == 'account':
1437
+ obj_ = account.factory(parent_object_=self)
1438
+ obj_.build(child_, gds_collector_=gds_collector_)
1439
+ self.account = obj_
1440
+ obj_.original_tagname_ = 'account'
1441
+ elif nodeName_ == 'insurance':
1442
+ obj_ = insurance.factory(parent_object_=self)
1443
+ obj_.build(child_, gds_collector_=gds_collector_)
1444
+ self.insurance = obj_
1445
+ obj_.original_tagname_ = 'insurance'
1446
+ elif nodeName_ == 'termsOfPayment':
1447
+ value_ = child_.text
1448
+ value_ = self.gds_parse_string(value_, node, 'termsOfPayment')
1449
+ value_ = self.gds_validate_string(value_, node, 'termsOfPayment')
1450
+ self.termsOfPayment = value_
1451
+ self.termsOfPayment_nsprefix_ = child_.prefix
1452
+ elif nodeName_ == 'currency':
1453
+ value_ = child_.text
1454
+ value_ = self.gds_parse_string(value_, node, 'currency')
1455
+ value_ = self.gds_validate_string(value_, node, 'currency')
1456
+ self.currency = value_
1457
+ self.currency_nsprefix_ = child_.prefix
1458
+ elif nodeName_ == 'priceBreakDown':
1459
+ sval_ = child_.text
1460
+ ival_ = self.gds_parse_boolean(sval_, node, 'priceBreakDown')
1461
+ ival_ = self.gds_validate_boolean(ival_, node, 'priceBreakDown')
1462
+ self.priceBreakDown = ival_
1463
+ self.priceBreakDown_nsprefix_ = child_.prefix
1464
+ elif nodeName_ == 'consignmentDetails':
1465
+ obj_ = consignmentDetails.factory(parent_object_=self)
1466
+ obj_.build(child_, gds_collector_=gds_collector_)
1467
+ self.consignmentDetails = obj_
1468
+ obj_.original_tagname_ = 'consignmentDetails'
1469
+ elif nodeName_ == 'pieceLine':
1470
+ obj_ = pieceLine.factory(parent_object_=self)
1471
+ obj_.build(child_, gds_collector_=gds_collector_)
1472
+ self.pieceLine.append(obj_)
1473
+ obj_.original_tagname_ = 'pieceLine'
1474
+ # end class priceCheck
1475
+
1476
+
1477
+ class address(GeneratedsSuper):
1478
+ """country -- The ISO 3166-1 Alpha-2 country code for the country of the
1479
+ given address. This is a mandatory element.
1480
+ town -- The town name as recognised by TNT.
1481
+ postcode -- Postcode or zip code
1482
+
1483
+ """
1484
+ __hash__ = GeneratedsSuper.__hash__
1485
+ subclass = None
1486
+ superclass = None
1487
+ def __init__(self, country=None, town=None, postcode=None, gds_collector_=None, **kwargs_):
1488
+ self.gds_collector_ = gds_collector_
1489
+ self.gds_elementtree_node_ = None
1490
+ self.original_tagname_ = None
1491
+ self.parent_object_ = kwargs_.get('parent_object_')
1492
+ self.ns_prefix_ = None
1493
+ self.country = country
1494
+ self.country_nsprefix_ = None
1495
+ self.town = town
1496
+ self.town_nsprefix_ = None
1497
+ self.postcode = postcode
1498
+ self.postcode_nsprefix_ = None
1499
+ def factory(*args_, **kwargs_):
1500
+ if CurrentSubclassModule_ is not None:
1501
+ subclass = getSubclassFromModule_(
1502
+ CurrentSubclassModule_, address)
1503
+ if subclass is not None:
1504
+ return subclass(*args_, **kwargs_)
1505
+ if address.subclass:
1506
+ return address.subclass(*args_, **kwargs_)
1507
+ else:
1508
+ return address(*args_, **kwargs_)
1509
+ factory = staticmethod(factory)
1510
+ def get_ns_prefix_(self):
1511
+ return self.ns_prefix_
1512
+ def set_ns_prefix_(self, ns_prefix):
1513
+ self.ns_prefix_ = ns_prefix
1514
+ def get_country(self):
1515
+ return self.country
1516
+ def set_country(self, country):
1517
+ self.country = country
1518
+ def get_town(self):
1519
+ return self.town
1520
+ def set_town(self, town):
1521
+ self.town = town
1522
+ def get_postcode(self):
1523
+ return self.postcode
1524
+ def set_postcode(self, postcode):
1525
+ self.postcode = postcode
1526
+ def has__content(self):
1527
+ if (
1528
+ self.country is not None or
1529
+ self.town is not None or
1530
+ self.postcode is not None
1531
+ ):
1532
+ return True
1533
+ else:
1534
+ return False
1535
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='address', pretty_print=True):
1536
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('address')
1537
+ if imported_ns_def_ is not None:
1538
+ namespacedef_ = imported_ns_def_
1539
+ if pretty_print:
1540
+ eol_ = '\n'
1541
+ else:
1542
+ eol_ = ''
1543
+ if self.original_tagname_ is not None and name_ == 'address':
1544
+ name_ = self.original_tagname_
1545
+ if UseCapturedNS_ and self.ns_prefix_:
1546
+ namespaceprefix_ = self.ns_prefix_ + ':'
1547
+ showIndent(outfile, level, pretty_print)
1548
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1549
+ already_processed = set()
1550
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='address')
1551
+ if self.has__content():
1552
+ outfile.write('>%s' % (eol_, ))
1553
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='address', pretty_print=pretty_print)
1554
+ showIndent(outfile, level, pretty_print)
1555
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1556
+ else:
1557
+ outfile.write('/>%s' % (eol_, ))
1558
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='address'):
1559
+ pass
1560
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='address', fromsubclass_=False, pretty_print=True):
1561
+ if pretty_print:
1562
+ eol_ = '\n'
1563
+ else:
1564
+ eol_ = ''
1565
+ if self.country is not None:
1566
+ namespaceprefix_ = self.country_nsprefix_ + ':' if (UseCapturedNS_ and self.country_nsprefix_) else ''
1567
+ showIndent(outfile, level, pretty_print)
1568
+ outfile.write('<%scountry>%s</%scountry>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.country), input_name='country')), namespaceprefix_ , eol_))
1569
+ if self.town is not None:
1570
+ namespaceprefix_ = self.town_nsprefix_ + ':' if (UseCapturedNS_ and self.town_nsprefix_) else ''
1571
+ showIndent(outfile, level, pretty_print)
1572
+ outfile.write('<%stown>%s</%stown>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.town), input_name='town')), namespaceprefix_ , eol_))
1573
+ if self.postcode is not None:
1574
+ namespaceprefix_ = self.postcode_nsprefix_ + ':' if (UseCapturedNS_ and self.postcode_nsprefix_) else ''
1575
+ showIndent(outfile, level, pretty_print)
1576
+ outfile.write('<%spostcode>%s</%spostcode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.postcode), input_name='postcode')), namespaceprefix_ , eol_))
1577
+ def build(self, node, gds_collector_=None):
1578
+ self.gds_collector_ = gds_collector_
1579
+ if SaveElementTreeNode:
1580
+ self.gds_elementtree_node_ = node
1581
+ already_processed = set()
1582
+ self.ns_prefix_ = node.prefix
1583
+ self._buildAttributes(node, node.attrib, already_processed)
1584
+ for child in node:
1585
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1586
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1587
+ return self
1588
+ def _buildAttributes(self, node, attrs, already_processed):
1589
+ pass
1590
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1591
+ if nodeName_ == 'country':
1592
+ value_ = child_.text
1593
+ value_ = self.gds_parse_string(value_, node, 'country')
1594
+ value_ = self.gds_validate_string(value_, node, 'country')
1595
+ self.country = value_
1596
+ self.country_nsprefix_ = child_.prefix
1597
+ elif nodeName_ == 'town':
1598
+ value_ = child_.text
1599
+ value_ = self.gds_parse_string(value_, node, 'town')
1600
+ value_ = self.gds_validate_string(value_, node, 'town')
1601
+ self.town = value_
1602
+ self.town_nsprefix_ = child_.prefix
1603
+ elif nodeName_ == 'postcode':
1604
+ value_ = child_.text
1605
+ value_ = self.gds_parse_string(value_, node, 'postcode')
1606
+ value_ = self.gds_validate_string(value_, node, 'postcode')
1607
+ self.postcode = value_
1608
+ self.postcode_nsprefix_ = child_.prefix
1609
+ # end class address
1610
+
1611
+
1612
+ class account(GeneratedsSuper):
1613
+ """accountNumber -- TNT account number, which is the 9 or 10 digit number assigned
1614
+ by the TNT sales person.
1615
+ accountCountry -- ISO 3166-1 Alpha-2 country code for the country in which the
1616
+ TNT account is registered.
1617
+
1618
+ """
1619
+ __hash__ = GeneratedsSuper.__hash__
1620
+ subclass = None
1621
+ superclass = None
1622
+ def __init__(self, accountNumber=None, accountCountry=None, gds_collector_=None, **kwargs_):
1623
+ self.gds_collector_ = gds_collector_
1624
+ self.gds_elementtree_node_ = None
1625
+ self.original_tagname_ = None
1626
+ self.parent_object_ = kwargs_.get('parent_object_')
1627
+ self.ns_prefix_ = None
1628
+ self.accountNumber = accountNumber
1629
+ self.accountNumber_nsprefix_ = None
1630
+ self.accountCountry = accountCountry
1631
+ self.accountCountry_nsprefix_ = None
1632
+ def factory(*args_, **kwargs_):
1633
+ if CurrentSubclassModule_ is not None:
1634
+ subclass = getSubclassFromModule_(
1635
+ CurrentSubclassModule_, account)
1636
+ if subclass is not None:
1637
+ return subclass(*args_, **kwargs_)
1638
+ if account.subclass:
1639
+ return account.subclass(*args_, **kwargs_)
1640
+ else:
1641
+ return account(*args_, **kwargs_)
1642
+ factory = staticmethod(factory)
1643
+ def get_ns_prefix_(self):
1644
+ return self.ns_prefix_
1645
+ def set_ns_prefix_(self, ns_prefix):
1646
+ self.ns_prefix_ = ns_prefix
1647
+ def get_accountNumber(self):
1648
+ return self.accountNumber
1649
+ def set_accountNumber(self, accountNumber):
1650
+ self.accountNumber = accountNumber
1651
+ def get_accountCountry(self):
1652
+ return self.accountCountry
1653
+ def set_accountCountry(self, accountCountry):
1654
+ self.accountCountry = accountCountry
1655
+ def has__content(self):
1656
+ if (
1657
+ self.accountNumber is not None or
1658
+ self.accountCountry is not None
1659
+ ):
1660
+ return True
1661
+ else:
1662
+ return False
1663
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='account', pretty_print=True):
1664
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('account')
1665
+ if imported_ns_def_ is not None:
1666
+ namespacedef_ = imported_ns_def_
1667
+ if pretty_print:
1668
+ eol_ = '\n'
1669
+ else:
1670
+ eol_ = ''
1671
+ if self.original_tagname_ is not None and name_ == 'account':
1672
+ name_ = self.original_tagname_
1673
+ if UseCapturedNS_ and self.ns_prefix_:
1674
+ namespaceprefix_ = self.ns_prefix_ + ':'
1675
+ showIndent(outfile, level, pretty_print)
1676
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1677
+ already_processed = set()
1678
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='account')
1679
+ if self.has__content():
1680
+ outfile.write('>%s' % (eol_, ))
1681
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='account', pretty_print=pretty_print)
1682
+ showIndent(outfile, level, pretty_print)
1683
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1684
+ else:
1685
+ outfile.write('/>%s' % (eol_, ))
1686
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='account'):
1687
+ pass
1688
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='account', fromsubclass_=False, pretty_print=True):
1689
+ if pretty_print:
1690
+ eol_ = '\n'
1691
+ else:
1692
+ eol_ = ''
1693
+ if self.accountNumber is not None:
1694
+ namespaceprefix_ = self.accountNumber_nsprefix_ + ':' if (UseCapturedNS_ and self.accountNumber_nsprefix_) else ''
1695
+ showIndent(outfile, level, pretty_print)
1696
+ outfile.write('<%saccountNumber>%s</%saccountNumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.accountNumber), input_name='accountNumber')), namespaceprefix_ , eol_))
1697
+ if self.accountCountry is not None:
1698
+ namespaceprefix_ = self.accountCountry_nsprefix_ + ':' if (UseCapturedNS_ and self.accountCountry_nsprefix_) else ''
1699
+ showIndent(outfile, level, pretty_print)
1700
+ outfile.write('<%saccountCountry>%s</%saccountCountry>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.accountCountry), input_name='accountCountry')), namespaceprefix_ , eol_))
1701
+ def build(self, node, gds_collector_=None):
1702
+ self.gds_collector_ = gds_collector_
1703
+ if SaveElementTreeNode:
1704
+ self.gds_elementtree_node_ = node
1705
+ already_processed = set()
1706
+ self.ns_prefix_ = node.prefix
1707
+ self._buildAttributes(node, node.attrib, already_processed)
1708
+ for child in node:
1709
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1710
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1711
+ return self
1712
+ def _buildAttributes(self, node, attrs, already_processed):
1713
+ pass
1714
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1715
+ if nodeName_ == 'accountNumber':
1716
+ value_ = child_.text
1717
+ value_ = self.gds_parse_string(value_, node, 'accountNumber')
1718
+ value_ = self.gds_validate_string(value_, node, 'accountNumber')
1719
+ self.accountNumber = value_
1720
+ self.accountNumber_nsprefix_ = child_.prefix
1721
+ elif nodeName_ == 'accountCountry':
1722
+ value_ = child_.text
1723
+ value_ = self.gds_parse_string(value_, node, 'accountCountry')
1724
+ value_ = self.gds_validate_string(value_, node, 'accountCountry')
1725
+ self.accountCountry = value_
1726
+ self.accountCountry_nsprefix_ = child_.prefix
1727
+ # end class account
1728
+
1729
+
1730
+ class insurance(GeneratedsSuper):
1731
+ """insuranceValue -- The value of the insurance required to cover the goodsValue
1732
+ specified in the request. This is limited to a maximum of 110% of the
1733
+ goodsValue
1734
+ goodsValue -- The value of the goods in the currency specified in the
1735
+ request
1736
+
1737
+ """
1738
+ __hash__ = GeneratedsSuper.__hash__
1739
+ subclass = None
1740
+ superclass = None
1741
+ def __init__(self, insuranceValue=None, goodsValue=None, gds_collector_=None, **kwargs_):
1742
+ self.gds_collector_ = gds_collector_
1743
+ self.gds_elementtree_node_ = None
1744
+ self.original_tagname_ = None
1745
+ self.parent_object_ = kwargs_.get('parent_object_')
1746
+ self.ns_prefix_ = None
1747
+ self.insuranceValue = insuranceValue
1748
+ self.insuranceValue_nsprefix_ = None
1749
+ self.goodsValue = goodsValue
1750
+ self.goodsValue_nsprefix_ = None
1751
+ def factory(*args_, **kwargs_):
1752
+ if CurrentSubclassModule_ is not None:
1753
+ subclass = getSubclassFromModule_(
1754
+ CurrentSubclassModule_, insurance)
1755
+ if subclass is not None:
1756
+ return subclass(*args_, **kwargs_)
1757
+ if insurance.subclass:
1758
+ return insurance.subclass(*args_, **kwargs_)
1759
+ else:
1760
+ return insurance(*args_, **kwargs_)
1761
+ factory = staticmethod(factory)
1762
+ def get_ns_prefix_(self):
1763
+ return self.ns_prefix_
1764
+ def set_ns_prefix_(self, ns_prefix):
1765
+ self.ns_prefix_ = ns_prefix
1766
+ def get_insuranceValue(self):
1767
+ return self.insuranceValue
1768
+ def set_insuranceValue(self, insuranceValue):
1769
+ self.insuranceValue = insuranceValue
1770
+ def get_goodsValue(self):
1771
+ return self.goodsValue
1772
+ def set_goodsValue(self, goodsValue):
1773
+ self.goodsValue = goodsValue
1774
+ def has__content(self):
1775
+ if (
1776
+ self.insuranceValue is not None or
1777
+ self.goodsValue is not None
1778
+ ):
1779
+ return True
1780
+ else:
1781
+ return False
1782
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='insurance', pretty_print=True):
1783
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('insurance')
1784
+ if imported_ns_def_ is not None:
1785
+ namespacedef_ = imported_ns_def_
1786
+ if pretty_print:
1787
+ eol_ = '\n'
1788
+ else:
1789
+ eol_ = ''
1790
+ if self.original_tagname_ is not None and name_ == 'insurance':
1791
+ name_ = self.original_tagname_
1792
+ if UseCapturedNS_ and self.ns_prefix_:
1793
+ namespaceprefix_ = self.ns_prefix_ + ':'
1794
+ showIndent(outfile, level, pretty_print)
1795
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1796
+ already_processed = set()
1797
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='insurance')
1798
+ if self.has__content():
1799
+ outfile.write('>%s' % (eol_, ))
1800
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='insurance', pretty_print=pretty_print)
1801
+ showIndent(outfile, level, pretty_print)
1802
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1803
+ else:
1804
+ outfile.write('/>%s' % (eol_, ))
1805
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='insurance'):
1806
+ pass
1807
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='insurance', fromsubclass_=False, pretty_print=True):
1808
+ if pretty_print:
1809
+ eol_ = '\n'
1810
+ else:
1811
+ eol_ = ''
1812
+ if self.insuranceValue is not None:
1813
+ namespaceprefix_ = self.insuranceValue_nsprefix_ + ':' if (UseCapturedNS_ and self.insuranceValue_nsprefix_) else ''
1814
+ showIndent(outfile, level, pretty_print)
1815
+ outfile.write('<%sinsuranceValue>%s</%sinsuranceValue>%s' % (namespaceprefix_ , self.gds_format_decimal(self.insuranceValue, input_name='insuranceValue'), namespaceprefix_ , eol_))
1816
+ if self.goodsValue is not None:
1817
+ namespaceprefix_ = self.goodsValue_nsprefix_ + ':' if (UseCapturedNS_ and self.goodsValue_nsprefix_) else ''
1818
+ showIndent(outfile, level, pretty_print)
1819
+ outfile.write('<%sgoodsValue>%s</%sgoodsValue>%s' % (namespaceprefix_ , self.gds_format_decimal(self.goodsValue, input_name='goodsValue'), namespaceprefix_ , eol_))
1820
+ def build(self, node, gds_collector_=None):
1821
+ self.gds_collector_ = gds_collector_
1822
+ if SaveElementTreeNode:
1823
+ self.gds_elementtree_node_ = node
1824
+ already_processed = set()
1825
+ self.ns_prefix_ = node.prefix
1826
+ self._buildAttributes(node, node.attrib, already_processed)
1827
+ for child in node:
1828
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1829
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1830
+ return self
1831
+ def _buildAttributes(self, node, attrs, already_processed):
1832
+ pass
1833
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1834
+ if nodeName_ == 'insuranceValue' and child_.text:
1835
+ sval_ = child_.text
1836
+ fval_ = self.gds_parse_decimal(sval_, node, 'insuranceValue')
1837
+ fval_ = self.gds_validate_decimal(fval_, node, 'insuranceValue')
1838
+ self.insuranceValue = fval_
1839
+ self.insuranceValue_nsprefix_ = child_.prefix
1840
+ elif nodeName_ == 'goodsValue' and child_.text:
1841
+ sval_ = child_.text
1842
+ fval_ = self.gds_parse_decimal(sval_, node, 'goodsValue')
1843
+ fval_ = self.gds_validate_decimal(fval_, node, 'goodsValue')
1844
+ self.goodsValue = fval_
1845
+ self.goodsValue_nsprefix_ = child_.prefix
1846
+ # end class insurance
1847
+
1848
+
1849
+ class consignmentDetails(GeneratedsSuper):
1850
+ """totalWeight -- The total weight of the shipment, Mandatory element, must be
1851
+ supplied in Kilograms.
1852
+ totalVolume -- The total volume of the shipment, Mandatory element if non
1853
+ document, must be supplied in cubic metres.
1854
+ totalNumberOfPieces -- The total number of pieces this priceCheck contains. In cases
1855
+ where only some of the pieces are being submitted, this value should contain
1856
+ the total number of pieces in the consignment, not the total number of
1857
+ pieces in the request.
1858
+
1859
+ """
1860
+ __hash__ = GeneratedsSuper.__hash__
1861
+ subclass = None
1862
+ superclass = None
1863
+ def __init__(self, totalWeight=None, totalVolume=None, totalNumberOfPieces=None, gds_collector_=None, **kwargs_):
1864
+ self.gds_collector_ = gds_collector_
1865
+ self.gds_elementtree_node_ = None
1866
+ self.original_tagname_ = None
1867
+ self.parent_object_ = kwargs_.get('parent_object_')
1868
+ self.ns_prefix_ = None
1869
+ self.totalWeight = totalWeight
1870
+ self.totalWeight_nsprefix_ = None
1871
+ self.totalVolume = totalVolume
1872
+ self.totalVolume_nsprefix_ = None
1873
+ self.totalNumberOfPieces = totalNumberOfPieces
1874
+ self.totalNumberOfPieces_nsprefix_ = None
1875
+ def factory(*args_, **kwargs_):
1876
+ if CurrentSubclassModule_ is not None:
1877
+ subclass = getSubclassFromModule_(
1878
+ CurrentSubclassModule_, consignmentDetails)
1879
+ if subclass is not None:
1880
+ return subclass(*args_, **kwargs_)
1881
+ if consignmentDetails.subclass:
1882
+ return consignmentDetails.subclass(*args_, **kwargs_)
1883
+ else:
1884
+ return consignmentDetails(*args_, **kwargs_)
1885
+ factory = staticmethod(factory)
1886
+ def get_ns_prefix_(self):
1887
+ return self.ns_prefix_
1888
+ def set_ns_prefix_(self, ns_prefix):
1889
+ self.ns_prefix_ = ns_prefix
1890
+ def get_totalWeight(self):
1891
+ return self.totalWeight
1892
+ def set_totalWeight(self, totalWeight):
1893
+ self.totalWeight = totalWeight
1894
+ def get_totalVolume(self):
1895
+ return self.totalVolume
1896
+ def set_totalVolume(self, totalVolume):
1897
+ self.totalVolume = totalVolume
1898
+ def get_totalNumberOfPieces(self):
1899
+ return self.totalNumberOfPieces
1900
+ def set_totalNumberOfPieces(self, totalNumberOfPieces):
1901
+ self.totalNumberOfPieces = totalNumberOfPieces
1902
+ def has__content(self):
1903
+ if (
1904
+ self.totalWeight is not None or
1905
+ self.totalVolume is not None or
1906
+ self.totalNumberOfPieces is not None
1907
+ ):
1908
+ return True
1909
+ else:
1910
+ return False
1911
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='consignmentDetails', pretty_print=True):
1912
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('consignmentDetails')
1913
+ if imported_ns_def_ is not None:
1914
+ namespacedef_ = imported_ns_def_
1915
+ if pretty_print:
1916
+ eol_ = '\n'
1917
+ else:
1918
+ eol_ = ''
1919
+ if self.original_tagname_ is not None and name_ == 'consignmentDetails':
1920
+ name_ = self.original_tagname_
1921
+ if UseCapturedNS_ and self.ns_prefix_:
1922
+ namespaceprefix_ = self.ns_prefix_ + ':'
1923
+ showIndent(outfile, level, pretty_print)
1924
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1925
+ already_processed = set()
1926
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='consignmentDetails')
1927
+ if self.has__content():
1928
+ outfile.write('>%s' % (eol_, ))
1929
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='consignmentDetails', pretty_print=pretty_print)
1930
+ showIndent(outfile, level, pretty_print)
1931
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1932
+ else:
1933
+ outfile.write('/>%s' % (eol_, ))
1934
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='consignmentDetails'):
1935
+ pass
1936
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='consignmentDetails', fromsubclass_=False, pretty_print=True):
1937
+ if pretty_print:
1938
+ eol_ = '\n'
1939
+ else:
1940
+ eol_ = ''
1941
+ if self.totalWeight is not None:
1942
+ namespaceprefix_ = self.totalWeight_nsprefix_ + ':' if (UseCapturedNS_ and self.totalWeight_nsprefix_) else ''
1943
+ showIndent(outfile, level, pretty_print)
1944
+ outfile.write('<%stotalWeight>%s</%stotalWeight>%s' % (namespaceprefix_ , self.gds_format_decimal(self.totalWeight, input_name='totalWeight'), namespaceprefix_ , eol_))
1945
+ if self.totalVolume is not None:
1946
+ namespaceprefix_ = self.totalVolume_nsprefix_ + ':' if (UseCapturedNS_ and self.totalVolume_nsprefix_) else ''
1947
+ showIndent(outfile, level, pretty_print)
1948
+ outfile.write('<%stotalVolume>%s</%stotalVolume>%s' % (namespaceprefix_ , self.gds_format_decimal(self.totalVolume, input_name='totalVolume'), namespaceprefix_ , eol_))
1949
+ if self.totalNumberOfPieces is not None:
1950
+ namespaceprefix_ = self.totalNumberOfPieces_nsprefix_ + ':' if (UseCapturedNS_ and self.totalNumberOfPieces_nsprefix_) else ''
1951
+ showIndent(outfile, level, pretty_print)
1952
+ outfile.write('<%stotalNumberOfPieces>%s</%stotalNumberOfPieces>%s' % (namespaceprefix_ , self.gds_format_integer(self.totalNumberOfPieces, input_name='totalNumberOfPieces'), namespaceprefix_ , eol_))
1953
+ def build(self, node, gds_collector_=None):
1954
+ self.gds_collector_ = gds_collector_
1955
+ if SaveElementTreeNode:
1956
+ self.gds_elementtree_node_ = node
1957
+ already_processed = set()
1958
+ self.ns_prefix_ = node.prefix
1959
+ self._buildAttributes(node, node.attrib, already_processed)
1960
+ for child in node:
1961
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1962
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1963
+ return self
1964
+ def _buildAttributes(self, node, attrs, already_processed):
1965
+ pass
1966
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1967
+ if nodeName_ == 'totalWeight' and child_.text:
1968
+ sval_ = child_.text
1969
+ fval_ = self.gds_parse_decimal(sval_, node, 'totalWeight')
1970
+ fval_ = self.gds_validate_decimal(fval_, node, 'totalWeight')
1971
+ self.totalWeight = fval_
1972
+ self.totalWeight_nsprefix_ = child_.prefix
1973
+ elif nodeName_ == 'totalVolume' and child_.text:
1974
+ sval_ = child_.text
1975
+ fval_ = self.gds_parse_decimal(sval_, node, 'totalVolume')
1976
+ fval_ = self.gds_validate_decimal(fval_, node, 'totalVolume')
1977
+ self.totalVolume = fval_
1978
+ self.totalVolume_nsprefix_ = child_.prefix
1979
+ elif nodeName_ == 'totalNumberOfPieces' and child_.text:
1980
+ sval_ = child_.text
1981
+ ival_ = self.gds_parse_integer(sval_, node, 'totalNumberOfPieces')
1982
+ ival_ = self.gds_validate_integer(ival_, node, 'totalNumberOfPieces')
1983
+ self.totalNumberOfPieces = ival_
1984
+ self.totalNumberOfPieces_nsprefix_ = child_.prefix
1985
+ # end class consignmentDetails
1986
+
1987
+
1988
+ class pieceLine(GeneratedsSuper):
1989
+ """numberOfPieces -- Number of pieces within this piece line.
1990
+ pieceMeasurements -- Container Element to hold the individual pieceLine
1991
+ measurements.
1992
+ pallet -- Whether the packages have been placed onto a pallet. The
1993
+ default value is false
1994
+
1995
+ """
1996
+ __hash__ = GeneratedsSuper.__hash__
1997
+ subclass = None
1998
+ superclass = None
1999
+ def __init__(self, numberOfPieces=None, pieceMeasurements=None, pallet=False, gds_collector_=None, **kwargs_):
2000
+ self.gds_collector_ = gds_collector_
2001
+ self.gds_elementtree_node_ = None
2002
+ self.original_tagname_ = None
2003
+ self.parent_object_ = kwargs_.get('parent_object_')
2004
+ self.ns_prefix_ = None
2005
+ self.numberOfPieces = numberOfPieces
2006
+ self.numberOfPieces_nsprefix_ = None
2007
+ self.pieceMeasurements = pieceMeasurements
2008
+ self.pieceMeasurements_nsprefix_ = None
2009
+ self.pallet = pallet
2010
+ self.pallet_nsprefix_ = None
2011
+ def factory(*args_, **kwargs_):
2012
+ if CurrentSubclassModule_ is not None:
2013
+ subclass = getSubclassFromModule_(
2014
+ CurrentSubclassModule_, pieceLine)
2015
+ if subclass is not None:
2016
+ return subclass(*args_, **kwargs_)
2017
+ if pieceLine.subclass:
2018
+ return pieceLine.subclass(*args_, **kwargs_)
2019
+ else:
2020
+ return pieceLine(*args_, **kwargs_)
2021
+ factory = staticmethod(factory)
2022
+ def get_ns_prefix_(self):
2023
+ return self.ns_prefix_
2024
+ def set_ns_prefix_(self, ns_prefix):
2025
+ self.ns_prefix_ = ns_prefix
2026
+ def get_numberOfPieces(self):
2027
+ return self.numberOfPieces
2028
+ def set_numberOfPieces(self, numberOfPieces):
2029
+ self.numberOfPieces = numberOfPieces
2030
+ def get_pieceMeasurements(self):
2031
+ return self.pieceMeasurements
2032
+ def set_pieceMeasurements(self, pieceMeasurements):
2033
+ self.pieceMeasurements = pieceMeasurements
2034
+ def get_pallet(self):
2035
+ return self.pallet
2036
+ def set_pallet(self, pallet):
2037
+ self.pallet = pallet
2038
+ def has__content(self):
2039
+ if (
2040
+ self.numberOfPieces is not None or
2041
+ self.pieceMeasurements is not None or
2042
+ self.pallet
2043
+ ):
2044
+ return True
2045
+ else:
2046
+ return False
2047
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='pieceLine', pretty_print=True):
2048
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('pieceLine')
2049
+ if imported_ns_def_ is not None:
2050
+ namespacedef_ = imported_ns_def_
2051
+ if pretty_print:
2052
+ eol_ = '\n'
2053
+ else:
2054
+ eol_ = ''
2055
+ if self.original_tagname_ is not None and name_ == 'pieceLine':
2056
+ name_ = self.original_tagname_
2057
+ if UseCapturedNS_ and self.ns_prefix_:
2058
+ namespaceprefix_ = self.ns_prefix_ + ':'
2059
+ showIndent(outfile, level, pretty_print)
2060
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2061
+ already_processed = set()
2062
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='pieceLine')
2063
+ if self.has__content():
2064
+ outfile.write('>%s' % (eol_, ))
2065
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='pieceLine', pretty_print=pretty_print)
2066
+ showIndent(outfile, level, pretty_print)
2067
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2068
+ else:
2069
+ outfile.write('/>%s' % (eol_, ))
2070
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='pieceLine'):
2071
+ pass
2072
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='pieceLine', fromsubclass_=False, pretty_print=True):
2073
+ if pretty_print:
2074
+ eol_ = '\n'
2075
+ else:
2076
+ eol_ = ''
2077
+ if self.numberOfPieces is not None:
2078
+ namespaceprefix_ = self.numberOfPieces_nsprefix_ + ':' if (UseCapturedNS_ and self.numberOfPieces_nsprefix_) else ''
2079
+ showIndent(outfile, level, pretty_print)
2080
+ outfile.write('<%snumberOfPieces>%s</%snumberOfPieces>%s' % (namespaceprefix_ , self.gds_format_integer(self.numberOfPieces, input_name='numberOfPieces'), namespaceprefix_ , eol_))
2081
+ if self.pieceMeasurements is not None:
2082
+ namespaceprefix_ = self.pieceMeasurements_nsprefix_ + ':' if (UseCapturedNS_ and self.pieceMeasurements_nsprefix_) else ''
2083
+ self.pieceMeasurements.export(outfile, level, namespaceprefix_, namespacedef_='', name_='pieceMeasurements', pretty_print=pretty_print)
2084
+ if self.pallet is not None:
2085
+ namespaceprefix_ = self.pallet_nsprefix_ + ':' if (UseCapturedNS_ and self.pallet_nsprefix_) else ''
2086
+ showIndent(outfile, level, pretty_print)
2087
+ outfile.write('<%spallet>%s</%spallet>%s' % (namespaceprefix_ , self.gds_format_boolean(self.pallet, input_name='pallet'), namespaceprefix_ , eol_))
2088
+ if self.pallet is None:
2089
+ namespaceprefix_ = self.pallet_nsprefix_ + ':' if (UseCapturedNS_ and self.pallet_nsprefix_) else ''
2090
+ showIndent(outfile, level, pretty_print)
2091
+ outfile.write('<%spallet>false</%spallet/>%s' % (namespaceprefix_,namespace_prefix, eol_))
2092
+ def build(self, node, gds_collector_=None):
2093
+ self.gds_collector_ = gds_collector_
2094
+ if SaveElementTreeNode:
2095
+ self.gds_elementtree_node_ = node
2096
+ already_processed = set()
2097
+ self.ns_prefix_ = node.prefix
2098
+ self._buildAttributes(node, node.attrib, already_processed)
2099
+ for child in node:
2100
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2101
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2102
+ return self
2103
+ def _buildAttributes(self, node, attrs, already_processed):
2104
+ pass
2105
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2106
+ if nodeName_ == 'numberOfPieces' and child_.text:
2107
+ sval_ = child_.text
2108
+ ival_ = self.gds_parse_integer(sval_, node, 'numberOfPieces')
2109
+ ival_ = self.gds_validate_integer(ival_, node, 'numberOfPieces')
2110
+ self.numberOfPieces = ival_
2111
+ self.numberOfPieces_nsprefix_ = child_.prefix
2112
+ elif nodeName_ == 'pieceMeasurements':
2113
+ obj_ = pieceMeasurements.factory(parent_object_=self)
2114
+ obj_.build(child_, gds_collector_=gds_collector_)
2115
+ self.pieceMeasurements = obj_
2116
+ obj_.original_tagname_ = 'pieceMeasurements'
2117
+ elif nodeName_ == 'pallet':
2118
+ sval_ = child_.text
2119
+ ival_ = self.gds_parse_boolean(sval_, node, 'pallet')
2120
+ ival_ = self.gds_validate_boolean(ival_, node, 'pallet')
2121
+ self.pallet = ival_
2122
+ self.pallet_nsprefix_ = child_.prefix
2123
+ # end class pieceLine
2124
+
2125
+
2126
+ class pieceMeasurements(GeneratedsSuper):
2127
+ """length -- The length in metres.
2128
+ width -- The width in metres.
2129
+ height -- The height in metres.
2130
+ weight -- The weight of an individual piece in Kilograms
2131
+
2132
+ """
2133
+ __hash__ = GeneratedsSuper.__hash__
2134
+ subclass = None
2135
+ superclass = None
2136
+ def __init__(self, length=None, width=None, height=None, weight=None, gds_collector_=None, **kwargs_):
2137
+ self.gds_collector_ = gds_collector_
2138
+ self.gds_elementtree_node_ = None
2139
+ self.original_tagname_ = None
2140
+ self.parent_object_ = kwargs_.get('parent_object_')
2141
+ self.ns_prefix_ = None
2142
+ self.length = length
2143
+ self.length_nsprefix_ = None
2144
+ self.width = width
2145
+ self.width_nsprefix_ = None
2146
+ self.height = height
2147
+ self.height_nsprefix_ = None
2148
+ self.weight = weight
2149
+ self.weight_nsprefix_ = None
2150
+ def factory(*args_, **kwargs_):
2151
+ if CurrentSubclassModule_ is not None:
2152
+ subclass = getSubclassFromModule_(
2153
+ CurrentSubclassModule_, pieceMeasurements)
2154
+ if subclass is not None:
2155
+ return subclass(*args_, **kwargs_)
2156
+ if pieceMeasurements.subclass:
2157
+ return pieceMeasurements.subclass(*args_, **kwargs_)
2158
+ else:
2159
+ return pieceMeasurements(*args_, **kwargs_)
2160
+ factory = staticmethod(factory)
2161
+ def get_ns_prefix_(self):
2162
+ return self.ns_prefix_
2163
+ def set_ns_prefix_(self, ns_prefix):
2164
+ self.ns_prefix_ = ns_prefix
2165
+ def get_length(self):
2166
+ return self.length
2167
+ def set_length(self, length):
2168
+ self.length = length
2169
+ def get_width(self):
2170
+ return self.width
2171
+ def set_width(self, width):
2172
+ self.width = width
2173
+ def get_height(self):
2174
+ return self.height
2175
+ def set_height(self, height):
2176
+ self.height = height
2177
+ def get_weight(self):
2178
+ return self.weight
2179
+ def set_weight(self, weight):
2180
+ self.weight = weight
2181
+ def has__content(self):
2182
+ if (
2183
+ self.length is not None or
2184
+ self.width is not None or
2185
+ self.height is not None or
2186
+ self.weight is not None
2187
+ ):
2188
+ return True
2189
+ else:
2190
+ return False
2191
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='pieceMeasurements', pretty_print=True):
2192
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('pieceMeasurements')
2193
+ if imported_ns_def_ is not None:
2194
+ namespacedef_ = imported_ns_def_
2195
+ if pretty_print:
2196
+ eol_ = '\n'
2197
+ else:
2198
+ eol_ = ''
2199
+ if self.original_tagname_ is not None and name_ == 'pieceMeasurements':
2200
+ name_ = self.original_tagname_
2201
+ if UseCapturedNS_ and self.ns_prefix_:
2202
+ namespaceprefix_ = self.ns_prefix_ + ':'
2203
+ showIndent(outfile, level, pretty_print)
2204
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2205
+ already_processed = set()
2206
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='pieceMeasurements')
2207
+ if self.has__content():
2208
+ outfile.write('>%s' % (eol_, ))
2209
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='pieceMeasurements', pretty_print=pretty_print)
2210
+ showIndent(outfile, level, pretty_print)
2211
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2212
+ else:
2213
+ outfile.write('/>%s' % (eol_, ))
2214
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='pieceMeasurements'):
2215
+ pass
2216
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='pieceMeasurements', fromsubclass_=False, pretty_print=True):
2217
+ if pretty_print:
2218
+ eol_ = '\n'
2219
+ else:
2220
+ eol_ = ''
2221
+ if self.length is not None:
2222
+ namespaceprefix_ = self.length_nsprefix_ + ':' if (UseCapturedNS_ and self.length_nsprefix_) else ''
2223
+ showIndent(outfile, level, pretty_print)
2224
+ outfile.write('<%slength>%s</%slength>%s' % (namespaceprefix_ , self.gds_format_decimal(self.length, input_name='length'), namespaceprefix_ , eol_))
2225
+ if self.width is not None:
2226
+ namespaceprefix_ = self.width_nsprefix_ + ':' if (UseCapturedNS_ and self.width_nsprefix_) else ''
2227
+ showIndent(outfile, level, pretty_print)
2228
+ outfile.write('<%swidth>%s</%swidth>%s' % (namespaceprefix_ , self.gds_format_decimal(self.width, input_name='width'), namespaceprefix_ , eol_))
2229
+ if self.height is not None:
2230
+ namespaceprefix_ = self.height_nsprefix_ + ':' if (UseCapturedNS_ and self.height_nsprefix_) else ''
2231
+ showIndent(outfile, level, pretty_print)
2232
+ outfile.write('<%sheight>%s</%sheight>%s' % (namespaceprefix_ , self.gds_format_decimal(self.height, input_name='height'), namespaceprefix_ , eol_))
2233
+ if self.weight is not None:
2234
+ namespaceprefix_ = self.weight_nsprefix_ + ':' if (UseCapturedNS_ and self.weight_nsprefix_) else ''
2235
+ showIndent(outfile, level, pretty_print)
2236
+ outfile.write('<%sweight>%s</%sweight>%s' % (namespaceprefix_ , self.gds_format_decimal(self.weight, input_name='weight'), namespaceprefix_ , eol_))
2237
+ def build(self, node, gds_collector_=None):
2238
+ self.gds_collector_ = gds_collector_
2239
+ if SaveElementTreeNode:
2240
+ self.gds_elementtree_node_ = node
2241
+ already_processed = set()
2242
+ self.ns_prefix_ = node.prefix
2243
+ self._buildAttributes(node, node.attrib, already_processed)
2244
+ for child in node:
2245
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2246
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2247
+ return self
2248
+ def _buildAttributes(self, node, attrs, already_processed):
2249
+ pass
2250
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2251
+ if nodeName_ == 'length' and child_.text:
2252
+ sval_ = child_.text
2253
+ fval_ = self.gds_parse_decimal(sval_, node, 'length')
2254
+ fval_ = self.gds_validate_decimal(fval_, node, 'length')
2255
+ self.length = fval_
2256
+ self.length_nsprefix_ = child_.prefix
2257
+ elif nodeName_ == 'width' and child_.text:
2258
+ sval_ = child_.text
2259
+ fval_ = self.gds_parse_decimal(sval_, node, 'width')
2260
+ fval_ = self.gds_validate_decimal(fval_, node, 'width')
2261
+ self.width = fval_
2262
+ self.width_nsprefix_ = child_.prefix
2263
+ elif nodeName_ == 'height' and child_.text:
2264
+ sval_ = child_.text
2265
+ fval_ = self.gds_parse_decimal(sval_, node, 'height')
2266
+ fval_ = self.gds_validate_decimal(fval_, node, 'height')
2267
+ self.height = fval_
2268
+ self.height_nsprefix_ = child_.prefix
2269
+ elif nodeName_ == 'weight' and child_.text:
2270
+ sval_ = child_.text
2271
+ fval_ = self.gds_parse_decimal(sval_, node, 'weight')
2272
+ fval_ = self.gds_validate_decimal(fval_, node, 'weight')
2273
+ self.weight = fval_
2274
+ self.weight_nsprefix_ = child_.prefix
2275
+ # end class pieceMeasurements
2276
+
2277
+
2278
+ class product(GeneratedsSuper):
2279
+ """id -- The identifier for the requested product/service e.g. 15N.
2280
+ division -- The identifier for the requested product/service division.
2281
+ This is an optional element and if not specified will default to an
2282
+ appropriate division based on the origin and destination country selected
2283
+ productDesc -- A short description of the product e.g. Express
2284
+ type -- Type of service for product chosen. Values are "D" for a
2285
+ document or "N" for non-documents. This is a mandatory element.
2286
+ options -- A container element for TNT product option codes.
2287
+
2288
+ """
2289
+ __hash__ = GeneratedsSuper.__hash__
2290
+ subclass = None
2291
+ superclass = None
2292
+ def __init__(self, id=None, division=None, productDesc=None, type_=None, options=None, gds_collector_=None, **kwargs_):
2293
+ self.gds_collector_ = gds_collector_
2294
+ self.gds_elementtree_node_ = None
2295
+ self.original_tagname_ = None
2296
+ self.parent_object_ = kwargs_.get('parent_object_')
2297
+ self.ns_prefix_ = None
2298
+ self.id = id
2299
+ self.id_nsprefix_ = None
2300
+ self.division = division
2301
+ self.division_nsprefix_ = None
2302
+ self.productDesc = productDesc
2303
+ self.productDesc_nsprefix_ = None
2304
+ self.type_ = type_
2305
+ self.type__nsprefix_ = None
2306
+ self.options = options
2307
+ self.options_nsprefix_ = None
2308
+ def factory(*args_, **kwargs_):
2309
+ if CurrentSubclassModule_ is not None:
2310
+ subclass = getSubclassFromModule_(
2311
+ CurrentSubclassModule_, product)
2312
+ if subclass is not None:
2313
+ return subclass(*args_, **kwargs_)
2314
+ if product.subclass:
2315
+ return product.subclass(*args_, **kwargs_)
2316
+ else:
2317
+ return product(*args_, **kwargs_)
2318
+ factory = staticmethod(factory)
2319
+ def get_ns_prefix_(self):
2320
+ return self.ns_prefix_
2321
+ def set_ns_prefix_(self, ns_prefix):
2322
+ self.ns_prefix_ = ns_prefix
2323
+ def get_id(self):
2324
+ return self.id
2325
+ def set_id(self, id):
2326
+ self.id = id
2327
+ def get_division(self):
2328
+ return self.division
2329
+ def set_division(self, division):
2330
+ self.division = division
2331
+ def get_productDesc(self):
2332
+ return self.productDesc
2333
+ def set_productDesc(self, productDesc):
2334
+ self.productDesc = productDesc
2335
+ def get_type(self):
2336
+ return self.type_
2337
+ def set_type(self, type_):
2338
+ self.type_ = type_
2339
+ def get_options(self):
2340
+ return self.options
2341
+ def set_options(self, options):
2342
+ self.options = options
2343
+ def has__content(self):
2344
+ if (
2345
+ self.id is not None or
2346
+ self.division is not None or
2347
+ self.productDesc is not None or
2348
+ self.type_ is not None or
2349
+ self.options is not None
2350
+ ):
2351
+ return True
2352
+ else:
2353
+ return False
2354
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='product', pretty_print=True):
2355
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('product')
2356
+ if imported_ns_def_ is not None:
2357
+ namespacedef_ = imported_ns_def_
2358
+ if pretty_print:
2359
+ eol_ = '\n'
2360
+ else:
2361
+ eol_ = ''
2362
+ if self.original_tagname_ is not None and name_ == 'product':
2363
+ name_ = self.original_tagname_
2364
+ if UseCapturedNS_ and self.ns_prefix_:
2365
+ namespaceprefix_ = self.ns_prefix_ + ':'
2366
+ showIndent(outfile, level, pretty_print)
2367
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2368
+ already_processed = set()
2369
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='product')
2370
+ if self.has__content():
2371
+ outfile.write('>%s' % (eol_, ))
2372
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='product', pretty_print=pretty_print)
2373
+ showIndent(outfile, level, pretty_print)
2374
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2375
+ else:
2376
+ outfile.write('/>%s' % (eol_, ))
2377
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='product'):
2378
+ pass
2379
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='product', fromsubclass_=False, pretty_print=True):
2380
+ if pretty_print:
2381
+ eol_ = '\n'
2382
+ else:
2383
+ eol_ = ''
2384
+ if self.id is not None:
2385
+ namespaceprefix_ = self.id_nsprefix_ + ':' if (UseCapturedNS_ and self.id_nsprefix_) else ''
2386
+ showIndent(outfile, level, pretty_print)
2387
+ outfile.write('<%sid>%s</%sid>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.id), input_name='id')), namespaceprefix_ , eol_))
2388
+ if self.division is not None:
2389
+ namespaceprefix_ = self.division_nsprefix_ + ':' if (UseCapturedNS_ and self.division_nsprefix_) else ''
2390
+ showIndent(outfile, level, pretty_print)
2391
+ outfile.write('<%sdivision>%s</%sdivision>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.division), input_name='division')), namespaceprefix_ , eol_))
2392
+ if self.productDesc is not None:
2393
+ namespaceprefix_ = self.productDesc_nsprefix_ + ':' if (UseCapturedNS_ and self.productDesc_nsprefix_) else ''
2394
+ showIndent(outfile, level, pretty_print)
2395
+ outfile.write('<%sproductDesc>%s</%sproductDesc>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.productDesc), input_name='productDesc')), namespaceprefix_ , eol_))
2396
+ if self.type_ is not None:
2397
+ namespaceprefix_ = self.type__nsprefix_ + ':' if (UseCapturedNS_ and self.type__nsprefix_) else ''
2398
+ showIndent(outfile, level, pretty_print)
2399
+ outfile.write('<%stype>%s</%stype>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.type_), input_name='type')), namespaceprefix_ , eol_))
2400
+ if self.options is not None:
2401
+ namespaceprefix_ = self.options_nsprefix_ + ':' if (UseCapturedNS_ and self.options_nsprefix_) else ''
2402
+ self.options.export(outfile, level, namespaceprefix_, namespacedef_='', name_='options', pretty_print=pretty_print)
2403
+ def build(self, node, gds_collector_=None):
2404
+ self.gds_collector_ = gds_collector_
2405
+ if SaveElementTreeNode:
2406
+ self.gds_elementtree_node_ = node
2407
+ already_processed = set()
2408
+ self.ns_prefix_ = node.prefix
2409
+ self._buildAttributes(node, node.attrib, already_processed)
2410
+ for child in node:
2411
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2412
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2413
+ return self
2414
+ def _buildAttributes(self, node, attrs, already_processed):
2415
+ pass
2416
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2417
+ if nodeName_ == 'id':
2418
+ value_ = child_.text
2419
+ value_ = self.gds_parse_string(value_, node, 'id')
2420
+ value_ = self.gds_validate_string(value_, node, 'id')
2421
+ self.id = value_
2422
+ self.id_nsprefix_ = child_.prefix
2423
+ elif nodeName_ == 'division':
2424
+ value_ = child_.text
2425
+ value_ = self.gds_parse_string(value_, node, 'division')
2426
+ value_ = self.gds_validate_string(value_, node, 'division')
2427
+ self.division = value_
2428
+ self.division_nsprefix_ = child_.prefix
2429
+ elif nodeName_ == 'productDesc':
2430
+ value_ = child_.text
2431
+ value_ = self.gds_parse_string(value_, node, 'productDesc')
2432
+ value_ = self.gds_validate_string(value_, node, 'productDesc')
2433
+ self.productDesc = value_
2434
+ self.productDesc_nsprefix_ = child_.prefix
2435
+ elif nodeName_ == 'type':
2436
+ value_ = child_.text
2437
+ value_ = self.gds_parse_string(value_, node, 'type')
2438
+ value_ = self.gds_validate_string(value_, node, 'type')
2439
+ self.type_ = value_
2440
+ self.type_nsprefix_ = child_.prefix
2441
+ elif nodeName_ == 'options':
2442
+ obj_ = options.factory(parent_object_=self)
2443
+ obj_.build(child_, gds_collector_=gds_collector_)
2444
+ self.options = obj_
2445
+ obj_.original_tagname_ = 'options'
2446
+ # end class product
2447
+
2448
+
2449
+ class options(GeneratedsSuper):
2450
+ """option -- A container element for a TNT product option
2451
+
2452
+ """
2453
+ __hash__ = GeneratedsSuper.__hash__
2454
+ subclass = None
2455
+ superclass = None
2456
+ def __init__(self, option=None, gds_collector_=None, **kwargs_):
2457
+ self.gds_collector_ = gds_collector_
2458
+ self.gds_elementtree_node_ = None
2459
+ self.original_tagname_ = None
2460
+ self.parent_object_ = kwargs_.get('parent_object_')
2461
+ self.ns_prefix_ = None
2462
+ if option is None:
2463
+ self.option = []
2464
+ else:
2465
+ self.option = option
2466
+ self.option_nsprefix_ = None
2467
+ def factory(*args_, **kwargs_):
2468
+ if CurrentSubclassModule_ is not None:
2469
+ subclass = getSubclassFromModule_(
2470
+ CurrentSubclassModule_, options)
2471
+ if subclass is not None:
2472
+ return subclass(*args_, **kwargs_)
2473
+ if options.subclass:
2474
+ return options.subclass(*args_, **kwargs_)
2475
+ else:
2476
+ return options(*args_, **kwargs_)
2477
+ factory = staticmethod(factory)
2478
+ def get_ns_prefix_(self):
2479
+ return self.ns_prefix_
2480
+ def set_ns_prefix_(self, ns_prefix):
2481
+ self.ns_prefix_ = ns_prefix
2482
+ def get_option(self):
2483
+ return self.option
2484
+ def set_option(self, option):
2485
+ self.option = option
2486
+ def add_option(self, value):
2487
+ self.option.append(value)
2488
+ def insert_option_at(self, index, value):
2489
+ self.option.insert(index, value)
2490
+ def replace_option_at(self, index, value):
2491
+ self.option[index] = value
2492
+ def has__content(self):
2493
+ if (
2494
+ self.option
2495
+ ):
2496
+ return True
2497
+ else:
2498
+ return False
2499
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='options', pretty_print=True):
2500
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('options')
2501
+ if imported_ns_def_ is not None:
2502
+ namespacedef_ = imported_ns_def_
2503
+ if pretty_print:
2504
+ eol_ = '\n'
2505
+ else:
2506
+ eol_ = ''
2507
+ if self.original_tagname_ is not None and name_ == 'options':
2508
+ name_ = self.original_tagname_
2509
+ if UseCapturedNS_ and self.ns_prefix_:
2510
+ namespaceprefix_ = self.ns_prefix_ + ':'
2511
+ showIndent(outfile, level, pretty_print)
2512
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2513
+ already_processed = set()
2514
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='options')
2515
+ if self.has__content():
2516
+ outfile.write('>%s' % (eol_, ))
2517
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='options', pretty_print=pretty_print)
2518
+ showIndent(outfile, level, pretty_print)
2519
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2520
+ else:
2521
+ outfile.write('/>%s' % (eol_, ))
2522
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='options'):
2523
+ pass
2524
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='options', fromsubclass_=False, pretty_print=True):
2525
+ if pretty_print:
2526
+ eol_ = '\n'
2527
+ else:
2528
+ eol_ = ''
2529
+ for option_ in self.option:
2530
+ namespaceprefix_ = self.option_nsprefix_ + ':' if (UseCapturedNS_ and self.option_nsprefix_) else ''
2531
+ option_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='option', pretty_print=pretty_print)
2532
+ def build(self, node, gds_collector_=None):
2533
+ self.gds_collector_ = gds_collector_
2534
+ if SaveElementTreeNode:
2535
+ self.gds_elementtree_node_ = node
2536
+ already_processed = set()
2537
+ self.ns_prefix_ = node.prefix
2538
+ self._buildAttributes(node, node.attrib, already_processed)
2539
+ for child in node:
2540
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2541
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2542
+ return self
2543
+ def _buildAttributes(self, node, attrs, already_processed):
2544
+ pass
2545
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2546
+ if nodeName_ == 'option':
2547
+ obj_ = option.factory(parent_object_=self)
2548
+ obj_.build(child_, gds_collector_=gds_collector_)
2549
+ self.option.append(obj_)
2550
+ obj_.original_tagname_ = 'option'
2551
+ # end class options
2552
+
2553
+
2554
+ class option(GeneratedsSuper):
2555
+ """optionCode -- The option must be a valid code from the TNT dataset e.g. PR
2556
+ optionDesc -- A short description of the option .e.g priority
2557
+
2558
+ """
2559
+ __hash__ = GeneratedsSuper.__hash__
2560
+ subclass = None
2561
+ superclass = None
2562
+ def __init__(self, optionCode=None, optionDesc=None, gds_collector_=None, **kwargs_):
2563
+ self.gds_collector_ = gds_collector_
2564
+ self.gds_elementtree_node_ = None
2565
+ self.original_tagname_ = None
2566
+ self.parent_object_ = kwargs_.get('parent_object_')
2567
+ self.ns_prefix_ = None
2568
+ self.optionCode = optionCode
2569
+ self.optionCode_nsprefix_ = None
2570
+ self.optionDesc = optionDesc
2571
+ self.optionDesc_nsprefix_ = None
2572
+ def factory(*args_, **kwargs_):
2573
+ if CurrentSubclassModule_ is not None:
2574
+ subclass = getSubclassFromModule_(
2575
+ CurrentSubclassModule_, option)
2576
+ if subclass is not None:
2577
+ return subclass(*args_, **kwargs_)
2578
+ if option.subclass:
2579
+ return option.subclass(*args_, **kwargs_)
2580
+ else:
2581
+ return option(*args_, **kwargs_)
2582
+ factory = staticmethod(factory)
2583
+ def get_ns_prefix_(self):
2584
+ return self.ns_prefix_
2585
+ def set_ns_prefix_(self, ns_prefix):
2586
+ self.ns_prefix_ = ns_prefix
2587
+ def get_optionCode(self):
2588
+ return self.optionCode
2589
+ def set_optionCode(self, optionCode):
2590
+ self.optionCode = optionCode
2591
+ def get_optionDesc(self):
2592
+ return self.optionDesc
2593
+ def set_optionDesc(self, optionDesc):
2594
+ self.optionDesc = optionDesc
2595
+ def has__content(self):
2596
+ if (
2597
+ self.optionCode is not None or
2598
+ self.optionDesc is not None
2599
+ ):
2600
+ return True
2601
+ else:
2602
+ return False
2603
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='option', pretty_print=True):
2604
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('option')
2605
+ if imported_ns_def_ is not None:
2606
+ namespacedef_ = imported_ns_def_
2607
+ if pretty_print:
2608
+ eol_ = '\n'
2609
+ else:
2610
+ eol_ = ''
2611
+ if self.original_tagname_ is not None and name_ == 'option':
2612
+ name_ = self.original_tagname_
2613
+ if UseCapturedNS_ and self.ns_prefix_:
2614
+ namespaceprefix_ = self.ns_prefix_ + ':'
2615
+ showIndent(outfile, level, pretty_print)
2616
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2617
+ already_processed = set()
2618
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='option')
2619
+ if self.has__content():
2620
+ outfile.write('>%s' % (eol_, ))
2621
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='option', pretty_print=pretty_print)
2622
+ showIndent(outfile, level, pretty_print)
2623
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2624
+ else:
2625
+ outfile.write('/>%s' % (eol_, ))
2626
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='option'):
2627
+ pass
2628
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='option', fromsubclass_=False, pretty_print=True):
2629
+ if pretty_print:
2630
+ eol_ = '\n'
2631
+ else:
2632
+ eol_ = ''
2633
+ if self.optionCode is not None:
2634
+ namespaceprefix_ = self.optionCode_nsprefix_ + ':' if (UseCapturedNS_ and self.optionCode_nsprefix_) else ''
2635
+ showIndent(outfile, level, pretty_print)
2636
+ outfile.write('<%soptionCode>%s</%soptionCode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.optionCode), input_name='optionCode')), namespaceprefix_ , eol_))
2637
+ if self.optionDesc is not None:
2638
+ namespaceprefix_ = self.optionDesc_nsprefix_ + ':' if (UseCapturedNS_ and self.optionDesc_nsprefix_) else ''
2639
+ showIndent(outfile, level, pretty_print)
2640
+ outfile.write('<%soptionDesc>%s</%soptionDesc>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.optionDesc), input_name='optionDesc')), namespaceprefix_ , eol_))
2641
+ def build(self, node, gds_collector_=None):
2642
+ self.gds_collector_ = gds_collector_
2643
+ if SaveElementTreeNode:
2644
+ self.gds_elementtree_node_ = node
2645
+ already_processed = set()
2646
+ self.ns_prefix_ = node.prefix
2647
+ self._buildAttributes(node, node.attrib, already_processed)
2648
+ for child in node:
2649
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2650
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2651
+ return self
2652
+ def _buildAttributes(self, node, attrs, already_processed):
2653
+ pass
2654
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2655
+ if nodeName_ == 'optionCode':
2656
+ value_ = child_.text
2657
+ value_ = self.gds_parse_string(value_, node, 'optionCode')
2658
+ value_ = self.gds_validate_string(value_, node, 'optionCode')
2659
+ self.optionCode = value_
2660
+ self.optionCode_nsprefix_ = child_.prefix
2661
+ elif nodeName_ == 'optionDesc':
2662
+ value_ = child_.text
2663
+ value_ = self.gds_parse_string(value_, node, 'optionDesc')
2664
+ value_ = self.gds_validate_string(value_, node, 'optionDesc')
2665
+ self.optionDesc = value_
2666
+ self.optionDesc_nsprefix_ = child_.prefix
2667
+ # end class option
2668
+
2669
+
2670
+ #
2671
+ # End data representation classes.
2672
+ #
2673
+
2674
+
2675
+ GDSClassesMapping = {
2676
+ }
2677
+
2678
+
2679
+ USAGE_TEXT = """
2680
+ Usage: python <Parser>.py [ -s ] <in_xml_file>
2681
+ """
2682
+
2683
+
2684
+ def usage():
2685
+ print(USAGE_TEXT)
2686
+ sys.exit(1)
2687
+
2688
+
2689
+ def get_root_tag(node):
2690
+ tag = Tag_pattern_.match(node.tag).groups()[-1]
2691
+ prefix_tag = TagNamePrefix + tag
2692
+ rootClass = GDSClassesMapping.get(prefix_tag)
2693
+ if rootClass is None:
2694
+ rootClass = globals().get(prefix_tag)
2695
+ return tag, rootClass
2696
+
2697
+
2698
+ def get_required_ns_prefix_defs(rootNode):
2699
+ '''Get all name space prefix definitions required in this XML doc.
2700
+ Return a dictionary of definitions and a char string of definitions.
2701
+ '''
2702
+ nsmap = {
2703
+ prefix: uri
2704
+ for node in rootNode.iter()
2705
+ for (prefix, uri) in node.nsmap.items()
2706
+ if prefix is not None
2707
+ }
2708
+ namespacedefs = ' '.join([
2709
+ 'xmlns:{}="{}"'.format(prefix, uri)
2710
+ for prefix, uri in nsmap.items()
2711
+ ])
2712
+ return nsmap, namespacedefs
2713
+
2714
+
2715
+ def parse(inFileName, silence=False, print_warnings=True):
2716
+ global CapturedNsmap_
2717
+ gds_collector = GdsCollector_()
2718
+ parser = None
2719
+ doc = parsexml_(inFileName, parser)
2720
+ rootNode = doc.getroot()
2721
+ rootTag, rootClass = get_root_tag(rootNode)
2722
+ if rootClass is None:
2723
+ rootTag = 'priceRequest'
2724
+ rootClass = priceRequest
2725
+ rootObj = rootClass.factory()
2726
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2727
+ CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
2728
+ if not SaveElementTreeNode:
2729
+ doc = None
2730
+ rootNode = None
2731
+ if not silence:
2732
+ sys.stdout.write('<?xml version="1.0" ?>\n')
2733
+ rootObj.export(
2734
+ sys.stdout, 0, name_=rootTag,
2735
+ namespacedef_=namespacedefs,
2736
+ pretty_print=True)
2737
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2738
+ separator = ('-' * 50) + '\n'
2739
+ sys.stderr.write(separator)
2740
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2741
+ len(gds_collector.get_messages()), ))
2742
+ gds_collector.write_messages(sys.stderr)
2743
+ sys.stderr.write(separator)
2744
+ return rootObj
2745
+
2746
+
2747
+ def parseEtree(inFileName, silence=False, print_warnings=True,
2748
+ mapping=None, reverse_mapping=None, nsmap=None):
2749
+ parser = None
2750
+ doc = parsexml_(inFileName, parser)
2751
+ gds_collector = GdsCollector_()
2752
+ rootNode = doc.getroot()
2753
+ rootTag, rootClass = get_root_tag(rootNode)
2754
+ if rootClass is None:
2755
+ rootTag = 'priceRequest'
2756
+ rootClass = priceRequest
2757
+ rootObj = rootClass.factory()
2758
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2759
+ if mapping is None:
2760
+ mapping = {}
2761
+ if reverse_mapping is None:
2762
+ reverse_mapping = {}
2763
+ rootElement = rootObj.to_etree(
2764
+ None, name_=rootTag, mapping_=mapping,
2765
+ reverse_mapping_=reverse_mapping, nsmap_=nsmap)
2766
+ reverse_node_mapping = rootObj.gds_reverse_node_mapping(mapping)
2767
+ # Enable Python to collect the space used by the DOM.
2768
+ if not SaveElementTreeNode:
2769
+ doc = None
2770
+ rootNode = None
2771
+ if not silence:
2772
+ content = etree_.tostring(
2773
+ rootElement, pretty_print=True,
2774
+ xml_declaration=True, encoding="utf-8")
2775
+ sys.stdout.write(str(content))
2776
+ sys.stdout.write('\n')
2777
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2778
+ separator = ('-' * 50) + '\n'
2779
+ sys.stderr.write(separator)
2780
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2781
+ len(gds_collector.get_messages()), ))
2782
+ gds_collector.write_messages(sys.stderr)
2783
+ sys.stderr.write(separator)
2784
+ return rootObj, rootElement, mapping, reverse_node_mapping
2785
+
2786
+
2787
+ def parseString(inString, silence=False, print_warnings=True):
2788
+ '''Parse a string, create the object tree, and export it.
2789
+
2790
+ Arguments:
2791
+ - inString -- A string. This XML fragment should not start
2792
+ with an XML declaration containing an encoding.
2793
+ - silence -- A boolean. If False, export the object.
2794
+ Returns -- The root object in the tree.
2795
+ '''
2796
+ parser = None
2797
+ rootNode= parsexmlstring_(inString, parser)
2798
+ gds_collector = GdsCollector_()
2799
+ rootTag, rootClass = get_root_tag(rootNode)
2800
+ if rootClass is None:
2801
+ rootTag = 'priceRequest'
2802
+ rootClass = priceRequest
2803
+ rootObj = rootClass.factory()
2804
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2805
+ if not SaveElementTreeNode:
2806
+ rootNode = None
2807
+ if not silence:
2808
+ sys.stdout.write('<?xml version="1.0" ?>\n')
2809
+ rootObj.export(
2810
+ sys.stdout, 0, name_=rootTag,
2811
+ namespacedef_='')
2812
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2813
+ separator = ('-' * 50) + '\n'
2814
+ sys.stderr.write(separator)
2815
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2816
+ len(gds_collector.get_messages()), ))
2817
+ gds_collector.write_messages(sys.stderr)
2818
+ sys.stderr.write(separator)
2819
+ return rootObj
2820
+
2821
+
2822
+ def parseLiteral(inFileName, silence=False, print_warnings=True):
2823
+ parser = None
2824
+ doc = parsexml_(inFileName, parser)
2825
+ gds_collector = GdsCollector_()
2826
+ rootNode = doc.getroot()
2827
+ rootTag, rootClass = get_root_tag(rootNode)
2828
+ if rootClass is None:
2829
+ rootTag = 'priceRequest'
2830
+ rootClass = priceRequest
2831
+ rootObj = rootClass.factory()
2832
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2833
+ # Enable Python to collect the space used by the DOM.
2834
+ if not SaveElementTreeNode:
2835
+ doc = None
2836
+ rootNode = None
2837
+ if not silence:
2838
+ sys.stdout.write('#from rating_request import *\n\n')
2839
+ sys.stdout.write('import rating_request as model_\n\n')
2840
+ sys.stdout.write('rootObj = model_.rootClass(\n')
2841
+ rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
2842
+ sys.stdout.write(')\n')
2843
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2844
+ separator = ('-' * 50) + '\n'
2845
+ sys.stderr.write(separator)
2846
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2847
+ len(gds_collector.get_messages()), ))
2848
+ gds_collector.write_messages(sys.stderr)
2849
+ sys.stderr.write(separator)
2850
+ return rootObj
2851
+
2852
+
2853
+ def main():
2854
+ args = sys.argv[1:]
2855
+ if len(args) == 1:
2856
+ parse(args[0])
2857
+ else:
2858
+ usage()
2859
+
2860
+
2861
+ if __name__ == '__main__':
2862
+ #import pdb; pdb.set_trace()
2863
+ main()
2864
+
2865
+ RenameMappings_ = {
2866
+ }
2867
+
2868
+ #
2869
+ # Mapping of namespaces to types defined in them
2870
+ # and the file in which each is defined.
2871
+ # simpleTypes are marked "ST" and complexTypes "CT".
2872
+ NamespaceToDefMappings_ = {}
2873
+
2874
+ __all__ = [
2875
+ "account",
2876
+ "address",
2877
+ "consignmentDetails",
2878
+ "insurance",
2879
+ "option",
2880
+ "options",
2881
+ "pieceLine",
2882
+ "pieceMeasurements",
2883
+ "priceCheck",
2884
+ "priceRequest",
2885
+ "product"
2886
+ ]