karrio-landmark 2025.5__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,2380 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ #
5
+ # Generated Sat Oct 4 04:10:47 2025 by generateDS.py version 2.44.3.
6
+ # Python 3.12.11 (main, Jul 30 2025, 16:35:51) [Clang 17.0.0 (clang-1700.0.13.5)]
7
+ #
8
+ # Command line options:
9
+ # ('--no-namespace-defs', '')
10
+ # ('-o', './karrio/schemas/landmark/ship_response.py')
11
+ #
12
+ # Command line arguments:
13
+ # ./schemas/ship_response.xsd
14
+ #
15
+ # Command line:
16
+ # /Users/danielkobina/Workspace/karrio/karrio/.venv/karrio/bin/generateDS --no-namespace-defs -o "./karrio/schemas/landmark/ship_response.py" ./schemas/ship_response.xsd
17
+ #
18
+ # Current working directory (os.getcwd()):
19
+ # landmark
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('(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|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 ShipResponse(GeneratedsSuper):
1011
+ __hash__ = GeneratedsSuper.__hash__
1012
+ subclass = None
1013
+ superclass = None
1014
+ def __init__(self, Errors=None, Test=None, Result=None, gds_collector_=None, **kwargs_):
1015
+ self.gds_collector_ = gds_collector_
1016
+ self.gds_elementtree_node_ = None
1017
+ self.original_tagname_ = None
1018
+ self.parent_object_ = kwargs_.get('parent_object_')
1019
+ self.ns_prefix_ = None
1020
+ self.Errors = Errors
1021
+ self.Errors_nsprefix_ = None
1022
+ self.Test = Test
1023
+ self.Test_nsprefix_ = None
1024
+ self.Result = Result
1025
+ self.Result_nsprefix_ = None
1026
+ def factory(*args_, **kwargs_):
1027
+ if CurrentSubclassModule_ is not None:
1028
+ subclass = getSubclassFromModule_(
1029
+ CurrentSubclassModule_, ShipResponse)
1030
+ if subclass is not None:
1031
+ return subclass(*args_, **kwargs_)
1032
+ if ShipResponse.subclass:
1033
+ return ShipResponse.subclass(*args_, **kwargs_)
1034
+ else:
1035
+ return ShipResponse(*args_, **kwargs_)
1036
+ factory = staticmethod(factory)
1037
+ def get_ns_prefix_(self):
1038
+ return self.ns_prefix_
1039
+ def set_ns_prefix_(self, ns_prefix):
1040
+ self.ns_prefix_ = ns_prefix
1041
+ def get_Errors(self):
1042
+ return self.Errors
1043
+ def set_Errors(self, Errors):
1044
+ self.Errors = Errors
1045
+ def get_Test(self):
1046
+ return self.Test
1047
+ def set_Test(self, Test):
1048
+ self.Test = Test
1049
+ def get_Result(self):
1050
+ return self.Result
1051
+ def set_Result(self, Result):
1052
+ self.Result = Result
1053
+ def has__content(self):
1054
+ if (
1055
+ self.Errors is not None or
1056
+ self.Test is not None or
1057
+ self.Result is not None
1058
+ ):
1059
+ return True
1060
+ else:
1061
+ return False
1062
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ShipResponse', pretty_print=True):
1063
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ShipResponse')
1064
+ if imported_ns_def_ is not None:
1065
+ namespacedef_ = imported_ns_def_
1066
+ if pretty_print:
1067
+ eol_ = '\n'
1068
+ else:
1069
+ eol_ = ''
1070
+ if self.original_tagname_ is not None and name_ == 'ShipResponse':
1071
+ name_ = self.original_tagname_
1072
+ if UseCapturedNS_ and self.ns_prefix_:
1073
+ namespaceprefix_ = self.ns_prefix_ + ':'
1074
+ showIndent(outfile, level, pretty_print)
1075
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1076
+ already_processed = set()
1077
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ShipResponse')
1078
+ if self.has__content():
1079
+ outfile.write('>%s' % (eol_, ))
1080
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ShipResponse', pretty_print=pretty_print)
1081
+ showIndent(outfile, level, pretty_print)
1082
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1083
+ else:
1084
+ outfile.write('/>%s' % (eol_, ))
1085
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ShipResponse'):
1086
+ pass
1087
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ShipResponse', fromsubclass_=False, pretty_print=True):
1088
+ if pretty_print:
1089
+ eol_ = '\n'
1090
+ else:
1091
+ eol_ = ''
1092
+ if self.Errors is not None:
1093
+ namespaceprefix_ = self.Errors_nsprefix_ + ':' if (UseCapturedNS_ and self.Errors_nsprefix_) else ''
1094
+ self.Errors.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Errors', pretty_print=pretty_print)
1095
+ if self.Test is not None:
1096
+ namespaceprefix_ = self.Test_nsprefix_ + ':' if (UseCapturedNS_ and self.Test_nsprefix_) else ''
1097
+ showIndent(outfile, level, pretty_print)
1098
+ outfile.write('<%sTest>%s</%sTest>%s' % (namespaceprefix_ , self.gds_format_boolean(self.Test, input_name='Test'), namespaceprefix_ , eol_))
1099
+ if self.Result is not None:
1100
+ namespaceprefix_ = self.Result_nsprefix_ + ':' if (UseCapturedNS_ and self.Result_nsprefix_) else ''
1101
+ self.Result.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Result', pretty_print=pretty_print)
1102
+ def build(self, node, gds_collector_=None):
1103
+ self.gds_collector_ = gds_collector_
1104
+ if SaveElementTreeNode:
1105
+ self.gds_elementtree_node_ = node
1106
+ already_processed = set()
1107
+ self.ns_prefix_ = node.prefix
1108
+ self._buildAttributes(node, node.attrib, already_processed)
1109
+ for child in node:
1110
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1111
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1112
+ return self
1113
+ def _buildAttributes(self, node, attrs, already_processed):
1114
+ pass
1115
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1116
+ if nodeName_ == 'Errors':
1117
+ obj_ = ErrorsType.factory(parent_object_=self)
1118
+ obj_.build(child_, gds_collector_=gds_collector_)
1119
+ self.Errors = obj_
1120
+ obj_.original_tagname_ = 'Errors'
1121
+ elif nodeName_ == 'Test':
1122
+ sval_ = child_.text
1123
+ ival_ = self.gds_parse_boolean(sval_, node, 'Test')
1124
+ ival_ = self.gds_validate_boolean(ival_, node, 'Test')
1125
+ self.Test = ival_
1126
+ self.Test_nsprefix_ = child_.prefix
1127
+ elif nodeName_ == 'Result':
1128
+ obj_ = ResultType.factory(parent_object_=self)
1129
+ obj_.build(child_, gds_collector_=gds_collector_)
1130
+ self.Result = obj_
1131
+ obj_.original_tagname_ = 'Result'
1132
+ # end class ShipResponse
1133
+
1134
+
1135
+ class ErrorsType(GeneratedsSuper):
1136
+ __hash__ = GeneratedsSuper.__hash__
1137
+ subclass = None
1138
+ superclass = None
1139
+ def __init__(self, Error=None, gds_collector_=None, **kwargs_):
1140
+ self.gds_collector_ = gds_collector_
1141
+ self.gds_elementtree_node_ = None
1142
+ self.original_tagname_ = None
1143
+ self.parent_object_ = kwargs_.get('parent_object_')
1144
+ self.ns_prefix_ = None
1145
+ if Error is None:
1146
+ self.Error = []
1147
+ else:
1148
+ self.Error = Error
1149
+ self.Error_nsprefix_ = None
1150
+ def factory(*args_, **kwargs_):
1151
+ if CurrentSubclassModule_ is not None:
1152
+ subclass = getSubclassFromModule_(
1153
+ CurrentSubclassModule_, ErrorsType)
1154
+ if subclass is not None:
1155
+ return subclass(*args_, **kwargs_)
1156
+ if ErrorsType.subclass:
1157
+ return ErrorsType.subclass(*args_, **kwargs_)
1158
+ else:
1159
+ return ErrorsType(*args_, **kwargs_)
1160
+ factory = staticmethod(factory)
1161
+ def get_ns_prefix_(self):
1162
+ return self.ns_prefix_
1163
+ def set_ns_prefix_(self, ns_prefix):
1164
+ self.ns_prefix_ = ns_prefix
1165
+ def get_Error(self):
1166
+ return self.Error
1167
+ def set_Error(self, Error):
1168
+ self.Error = Error
1169
+ def add_Error(self, value):
1170
+ self.Error.append(value)
1171
+ def insert_Error_at(self, index, value):
1172
+ self.Error.insert(index, value)
1173
+ def replace_Error_at(self, index, value):
1174
+ self.Error[index] = value
1175
+ def has__content(self):
1176
+ if (
1177
+ self.Error
1178
+ ):
1179
+ return True
1180
+ else:
1181
+ return False
1182
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ErrorsType', pretty_print=True):
1183
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ErrorsType')
1184
+ if imported_ns_def_ is not None:
1185
+ namespacedef_ = imported_ns_def_
1186
+ if pretty_print:
1187
+ eol_ = '\n'
1188
+ else:
1189
+ eol_ = ''
1190
+ if self.original_tagname_ is not None and name_ == 'ErrorsType':
1191
+ name_ = self.original_tagname_
1192
+ if UseCapturedNS_ and self.ns_prefix_:
1193
+ namespaceprefix_ = self.ns_prefix_ + ':'
1194
+ showIndent(outfile, level, pretty_print)
1195
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1196
+ already_processed = set()
1197
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ErrorsType')
1198
+ if self.has__content():
1199
+ outfile.write('>%s' % (eol_, ))
1200
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ErrorsType', pretty_print=pretty_print)
1201
+ showIndent(outfile, level, pretty_print)
1202
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1203
+ else:
1204
+ outfile.write('/>%s' % (eol_, ))
1205
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ErrorsType'):
1206
+ pass
1207
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ErrorsType', fromsubclass_=False, pretty_print=True):
1208
+ if pretty_print:
1209
+ eol_ = '\n'
1210
+ else:
1211
+ eol_ = ''
1212
+ for Error_ in self.Error:
1213
+ namespaceprefix_ = self.Error_nsprefix_ + ':' if (UseCapturedNS_ and self.Error_nsprefix_) else ''
1214
+ Error_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Error', pretty_print=pretty_print)
1215
+ def build(self, node, gds_collector_=None):
1216
+ self.gds_collector_ = gds_collector_
1217
+ if SaveElementTreeNode:
1218
+ self.gds_elementtree_node_ = node
1219
+ already_processed = set()
1220
+ self.ns_prefix_ = node.prefix
1221
+ self._buildAttributes(node, node.attrib, already_processed)
1222
+ for child in node:
1223
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1224
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1225
+ return self
1226
+ def _buildAttributes(self, node, attrs, already_processed):
1227
+ pass
1228
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1229
+ if nodeName_ == 'Error':
1230
+ obj_ = ErrorType.factory(parent_object_=self)
1231
+ obj_.build(child_, gds_collector_=gds_collector_)
1232
+ self.Error.append(obj_)
1233
+ obj_.original_tagname_ = 'Error'
1234
+ # end class ErrorsType
1235
+
1236
+
1237
+ class ErrorType(GeneratedsSuper):
1238
+ __hash__ = GeneratedsSuper.__hash__
1239
+ subclass = None
1240
+ superclass = None
1241
+ def __init__(self, ErrorCode=None, ErrorMessage=None, gds_collector_=None, **kwargs_):
1242
+ self.gds_collector_ = gds_collector_
1243
+ self.gds_elementtree_node_ = None
1244
+ self.original_tagname_ = None
1245
+ self.parent_object_ = kwargs_.get('parent_object_')
1246
+ self.ns_prefix_ = None
1247
+ self.ErrorCode = ErrorCode
1248
+ self.ErrorCode_nsprefix_ = None
1249
+ self.ErrorMessage = ErrorMessage
1250
+ self.ErrorMessage_nsprefix_ = None
1251
+ def factory(*args_, **kwargs_):
1252
+ if CurrentSubclassModule_ is not None:
1253
+ subclass = getSubclassFromModule_(
1254
+ CurrentSubclassModule_, ErrorType)
1255
+ if subclass is not None:
1256
+ return subclass(*args_, **kwargs_)
1257
+ if ErrorType.subclass:
1258
+ return ErrorType.subclass(*args_, **kwargs_)
1259
+ else:
1260
+ return ErrorType(*args_, **kwargs_)
1261
+ factory = staticmethod(factory)
1262
+ def get_ns_prefix_(self):
1263
+ return self.ns_prefix_
1264
+ def set_ns_prefix_(self, ns_prefix):
1265
+ self.ns_prefix_ = ns_prefix
1266
+ def get_ErrorCode(self):
1267
+ return self.ErrorCode
1268
+ def set_ErrorCode(self, ErrorCode):
1269
+ self.ErrorCode = ErrorCode
1270
+ def get_ErrorMessage(self):
1271
+ return self.ErrorMessage
1272
+ def set_ErrorMessage(self, ErrorMessage):
1273
+ self.ErrorMessage = ErrorMessage
1274
+ def has__content(self):
1275
+ if (
1276
+ self.ErrorCode is not None or
1277
+ self.ErrorMessage is not None
1278
+ ):
1279
+ return True
1280
+ else:
1281
+ return False
1282
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ErrorType', pretty_print=True):
1283
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ErrorType')
1284
+ if imported_ns_def_ is not None:
1285
+ namespacedef_ = imported_ns_def_
1286
+ if pretty_print:
1287
+ eol_ = '\n'
1288
+ else:
1289
+ eol_ = ''
1290
+ if self.original_tagname_ is not None and name_ == 'ErrorType':
1291
+ name_ = self.original_tagname_
1292
+ if UseCapturedNS_ and self.ns_prefix_:
1293
+ namespaceprefix_ = self.ns_prefix_ + ':'
1294
+ showIndent(outfile, level, pretty_print)
1295
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1296
+ already_processed = set()
1297
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ErrorType')
1298
+ if self.has__content():
1299
+ outfile.write('>%s' % (eol_, ))
1300
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ErrorType', pretty_print=pretty_print)
1301
+ showIndent(outfile, level, pretty_print)
1302
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1303
+ else:
1304
+ outfile.write('/>%s' % (eol_, ))
1305
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ErrorType'):
1306
+ pass
1307
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ErrorType', fromsubclass_=False, pretty_print=True):
1308
+ if pretty_print:
1309
+ eol_ = '\n'
1310
+ else:
1311
+ eol_ = ''
1312
+ if self.ErrorCode is not None:
1313
+ namespaceprefix_ = self.ErrorCode_nsprefix_ + ':' if (UseCapturedNS_ and self.ErrorCode_nsprefix_) else ''
1314
+ showIndent(outfile, level, pretty_print)
1315
+ outfile.write('<%sErrorCode>%s</%sErrorCode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.ErrorCode), input_name='ErrorCode')), namespaceprefix_ , eol_))
1316
+ if self.ErrorMessage is not None:
1317
+ namespaceprefix_ = self.ErrorMessage_nsprefix_ + ':' if (UseCapturedNS_ and self.ErrorMessage_nsprefix_) else ''
1318
+ showIndent(outfile, level, pretty_print)
1319
+ outfile.write('<%sErrorMessage>%s</%sErrorMessage>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.ErrorMessage), input_name='ErrorMessage')), namespaceprefix_ , eol_))
1320
+ def build(self, node, gds_collector_=None):
1321
+ self.gds_collector_ = gds_collector_
1322
+ if SaveElementTreeNode:
1323
+ self.gds_elementtree_node_ = node
1324
+ already_processed = set()
1325
+ self.ns_prefix_ = node.prefix
1326
+ self._buildAttributes(node, node.attrib, already_processed)
1327
+ for child in node:
1328
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1329
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1330
+ return self
1331
+ def _buildAttributes(self, node, attrs, already_processed):
1332
+ pass
1333
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1334
+ if nodeName_ == 'ErrorCode':
1335
+ value_ = child_.text
1336
+ value_ = self.gds_parse_string(value_, node, 'ErrorCode')
1337
+ value_ = self.gds_validate_string(value_, node, 'ErrorCode')
1338
+ self.ErrorCode = value_
1339
+ self.ErrorCode_nsprefix_ = child_.prefix
1340
+ elif nodeName_ == 'ErrorMessage':
1341
+ value_ = child_.text
1342
+ value_ = self.gds_parse_string(value_, node, 'ErrorMessage')
1343
+ value_ = self.gds_validate_string(value_, node, 'ErrorMessage')
1344
+ self.ErrorMessage = value_
1345
+ self.ErrorMessage_nsprefix_ = child_.prefix
1346
+ # end class ErrorType
1347
+
1348
+
1349
+ class ResultType(GeneratedsSuper):
1350
+ __hash__ = GeneratedsSuper.__hash__
1351
+ subclass = None
1352
+ superclass = None
1353
+ def __init__(self, Success=None, ResultMessage=None, ShippingCarrier=None, AddressCorrections=None, ShipmentLabelLink=None, Packages=None, gds_collector_=None, **kwargs_):
1354
+ self.gds_collector_ = gds_collector_
1355
+ self.gds_elementtree_node_ = None
1356
+ self.original_tagname_ = None
1357
+ self.parent_object_ = kwargs_.get('parent_object_')
1358
+ self.ns_prefix_ = None
1359
+ self.Success = Success
1360
+ self.Success_nsprefix_ = None
1361
+ self.ResultMessage = ResultMessage
1362
+ self.ResultMessage_nsprefix_ = None
1363
+ self.ShippingCarrier = ShippingCarrier
1364
+ self.ShippingCarrier_nsprefix_ = None
1365
+ self.AddressCorrections = AddressCorrections
1366
+ self.AddressCorrections_nsprefix_ = None
1367
+ self.ShipmentLabelLink = ShipmentLabelLink
1368
+ self.ShipmentLabelLink_nsprefix_ = None
1369
+ self.Packages = Packages
1370
+ self.Packages_nsprefix_ = None
1371
+ def factory(*args_, **kwargs_):
1372
+ if CurrentSubclassModule_ is not None:
1373
+ subclass = getSubclassFromModule_(
1374
+ CurrentSubclassModule_, ResultType)
1375
+ if subclass is not None:
1376
+ return subclass(*args_, **kwargs_)
1377
+ if ResultType.subclass:
1378
+ return ResultType.subclass(*args_, **kwargs_)
1379
+ else:
1380
+ return ResultType(*args_, **kwargs_)
1381
+ factory = staticmethod(factory)
1382
+ def get_ns_prefix_(self):
1383
+ return self.ns_prefix_
1384
+ def set_ns_prefix_(self, ns_prefix):
1385
+ self.ns_prefix_ = ns_prefix
1386
+ def get_Success(self):
1387
+ return self.Success
1388
+ def set_Success(self, Success):
1389
+ self.Success = Success
1390
+ def get_ResultMessage(self):
1391
+ return self.ResultMessage
1392
+ def set_ResultMessage(self, ResultMessage):
1393
+ self.ResultMessage = ResultMessage
1394
+ def get_ShippingCarrier(self):
1395
+ return self.ShippingCarrier
1396
+ def set_ShippingCarrier(self, ShippingCarrier):
1397
+ self.ShippingCarrier = ShippingCarrier
1398
+ def get_AddressCorrections(self):
1399
+ return self.AddressCorrections
1400
+ def set_AddressCorrections(self, AddressCorrections):
1401
+ self.AddressCorrections = AddressCorrections
1402
+ def get_ShipmentLabelLink(self):
1403
+ return self.ShipmentLabelLink
1404
+ def set_ShipmentLabelLink(self, ShipmentLabelLink):
1405
+ self.ShipmentLabelLink = ShipmentLabelLink
1406
+ def get_Packages(self):
1407
+ return self.Packages
1408
+ def set_Packages(self, Packages):
1409
+ self.Packages = Packages
1410
+ def has__content(self):
1411
+ if (
1412
+ self.Success is not None or
1413
+ self.ResultMessage is not None or
1414
+ self.ShippingCarrier is not None or
1415
+ self.AddressCorrections is not None or
1416
+ self.ShipmentLabelLink is not None or
1417
+ self.Packages is not None
1418
+ ):
1419
+ return True
1420
+ else:
1421
+ return False
1422
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ResultType', pretty_print=True):
1423
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ResultType')
1424
+ if imported_ns_def_ is not None:
1425
+ namespacedef_ = imported_ns_def_
1426
+ if pretty_print:
1427
+ eol_ = '\n'
1428
+ else:
1429
+ eol_ = ''
1430
+ if self.original_tagname_ is not None and name_ == 'ResultType':
1431
+ name_ = self.original_tagname_
1432
+ if UseCapturedNS_ and self.ns_prefix_:
1433
+ namespaceprefix_ = self.ns_prefix_ + ':'
1434
+ showIndent(outfile, level, pretty_print)
1435
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1436
+ already_processed = set()
1437
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ResultType')
1438
+ if self.has__content():
1439
+ outfile.write('>%s' % (eol_, ))
1440
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ResultType', pretty_print=pretty_print)
1441
+ showIndent(outfile, level, pretty_print)
1442
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1443
+ else:
1444
+ outfile.write('/>%s' % (eol_, ))
1445
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ResultType'):
1446
+ pass
1447
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ResultType', fromsubclass_=False, pretty_print=True):
1448
+ if pretty_print:
1449
+ eol_ = '\n'
1450
+ else:
1451
+ eol_ = ''
1452
+ if self.Success is not None:
1453
+ namespaceprefix_ = self.Success_nsprefix_ + ':' if (UseCapturedNS_ and self.Success_nsprefix_) else ''
1454
+ showIndent(outfile, level, pretty_print)
1455
+ outfile.write('<%sSuccess>%s</%sSuccess>%s' % (namespaceprefix_ , self.gds_format_boolean(self.Success, input_name='Success'), namespaceprefix_ , eol_))
1456
+ if self.ResultMessage is not None:
1457
+ namespaceprefix_ = self.ResultMessage_nsprefix_ + ':' if (UseCapturedNS_ and self.ResultMessage_nsprefix_) else ''
1458
+ showIndent(outfile, level, pretty_print)
1459
+ outfile.write('<%sResultMessage>%s</%sResultMessage>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.ResultMessage), input_name='ResultMessage')), namespaceprefix_ , eol_))
1460
+ if self.ShippingCarrier is not None:
1461
+ namespaceprefix_ = self.ShippingCarrier_nsprefix_ + ':' if (UseCapturedNS_ and self.ShippingCarrier_nsprefix_) else ''
1462
+ showIndent(outfile, level, pretty_print)
1463
+ outfile.write('<%sShippingCarrier>%s</%sShippingCarrier>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.ShippingCarrier), input_name='ShippingCarrier')), namespaceprefix_ , eol_))
1464
+ if self.AddressCorrections is not None:
1465
+ namespaceprefix_ = self.AddressCorrections_nsprefix_ + ':' if (UseCapturedNS_ and self.AddressCorrections_nsprefix_) else ''
1466
+ self.AddressCorrections.export(outfile, level, namespaceprefix_, namespacedef_='', name_='AddressCorrections', pretty_print=pretty_print)
1467
+ if self.ShipmentLabelLink is not None:
1468
+ namespaceprefix_ = self.ShipmentLabelLink_nsprefix_ + ':' if (UseCapturedNS_ and self.ShipmentLabelLink_nsprefix_) else ''
1469
+ showIndent(outfile, level, pretty_print)
1470
+ outfile.write('<%sShipmentLabelLink>%s</%sShipmentLabelLink>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.ShipmentLabelLink), input_name='ShipmentLabelLink')), namespaceprefix_ , eol_))
1471
+ if self.Packages is not None:
1472
+ namespaceprefix_ = self.Packages_nsprefix_ + ':' if (UseCapturedNS_ and self.Packages_nsprefix_) else ''
1473
+ self.Packages.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Packages', pretty_print=pretty_print)
1474
+ def build(self, node, gds_collector_=None):
1475
+ self.gds_collector_ = gds_collector_
1476
+ if SaveElementTreeNode:
1477
+ self.gds_elementtree_node_ = node
1478
+ already_processed = set()
1479
+ self.ns_prefix_ = node.prefix
1480
+ self._buildAttributes(node, node.attrib, already_processed)
1481
+ for child in node:
1482
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1483
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1484
+ return self
1485
+ def _buildAttributes(self, node, attrs, already_processed):
1486
+ pass
1487
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1488
+ if nodeName_ == 'Success':
1489
+ sval_ = child_.text
1490
+ ival_ = self.gds_parse_boolean(sval_, node, 'Success')
1491
+ ival_ = self.gds_validate_boolean(ival_, node, 'Success')
1492
+ self.Success = ival_
1493
+ self.Success_nsprefix_ = child_.prefix
1494
+ elif nodeName_ == 'ResultMessage':
1495
+ value_ = child_.text
1496
+ value_ = self.gds_parse_string(value_, node, 'ResultMessage')
1497
+ value_ = self.gds_validate_string(value_, node, 'ResultMessage')
1498
+ self.ResultMessage = value_
1499
+ self.ResultMessage_nsprefix_ = child_.prefix
1500
+ elif nodeName_ == 'ShippingCarrier':
1501
+ value_ = child_.text
1502
+ value_ = self.gds_parse_string(value_, node, 'ShippingCarrier')
1503
+ value_ = self.gds_validate_string(value_, node, 'ShippingCarrier')
1504
+ self.ShippingCarrier = value_
1505
+ self.ShippingCarrier_nsprefix_ = child_.prefix
1506
+ elif nodeName_ == 'AddressCorrections':
1507
+ obj_ = AddressCorrectionsType.factory(parent_object_=self)
1508
+ obj_.build(child_, gds_collector_=gds_collector_)
1509
+ self.AddressCorrections = obj_
1510
+ obj_.original_tagname_ = 'AddressCorrections'
1511
+ elif nodeName_ == 'ShipmentLabelLink':
1512
+ value_ = child_.text
1513
+ value_ = self.gds_parse_string(value_, node, 'ShipmentLabelLink')
1514
+ value_ = self.gds_validate_string(value_, node, 'ShipmentLabelLink')
1515
+ self.ShipmentLabelLink = value_
1516
+ self.ShipmentLabelLink_nsprefix_ = child_.prefix
1517
+ elif nodeName_ == 'Packages':
1518
+ obj_ = PackagesType.factory(parent_object_=self)
1519
+ obj_.build(child_, gds_collector_=gds_collector_)
1520
+ self.Packages = obj_
1521
+ obj_.original_tagname_ = 'Packages'
1522
+ # end class ResultType
1523
+
1524
+
1525
+ class AddressCorrectionsType(GeneratedsSuper):
1526
+ __hash__ = GeneratedsSuper.__hash__
1527
+ subclass = None
1528
+ superclass = None
1529
+ def __init__(self, Correction=None, gds_collector_=None, **kwargs_):
1530
+ self.gds_collector_ = gds_collector_
1531
+ self.gds_elementtree_node_ = None
1532
+ self.original_tagname_ = None
1533
+ self.parent_object_ = kwargs_.get('parent_object_')
1534
+ self.ns_prefix_ = None
1535
+ if Correction is None:
1536
+ self.Correction = []
1537
+ else:
1538
+ self.Correction = Correction
1539
+ self.Correction_nsprefix_ = None
1540
+ def factory(*args_, **kwargs_):
1541
+ if CurrentSubclassModule_ is not None:
1542
+ subclass = getSubclassFromModule_(
1543
+ CurrentSubclassModule_, AddressCorrectionsType)
1544
+ if subclass is not None:
1545
+ return subclass(*args_, **kwargs_)
1546
+ if AddressCorrectionsType.subclass:
1547
+ return AddressCorrectionsType.subclass(*args_, **kwargs_)
1548
+ else:
1549
+ return AddressCorrectionsType(*args_, **kwargs_)
1550
+ factory = staticmethod(factory)
1551
+ def get_ns_prefix_(self):
1552
+ return self.ns_prefix_
1553
+ def set_ns_prefix_(self, ns_prefix):
1554
+ self.ns_prefix_ = ns_prefix
1555
+ def get_Correction(self):
1556
+ return self.Correction
1557
+ def set_Correction(self, Correction):
1558
+ self.Correction = Correction
1559
+ def add_Correction(self, value):
1560
+ self.Correction.append(value)
1561
+ def insert_Correction_at(self, index, value):
1562
+ self.Correction.insert(index, value)
1563
+ def replace_Correction_at(self, index, value):
1564
+ self.Correction[index] = value
1565
+ def has__content(self):
1566
+ if (
1567
+ self.Correction
1568
+ ):
1569
+ return True
1570
+ else:
1571
+ return False
1572
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AddressCorrectionsType', pretty_print=True):
1573
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('AddressCorrectionsType')
1574
+ if imported_ns_def_ is not None:
1575
+ namespacedef_ = imported_ns_def_
1576
+ if pretty_print:
1577
+ eol_ = '\n'
1578
+ else:
1579
+ eol_ = ''
1580
+ if self.original_tagname_ is not None and name_ == 'AddressCorrectionsType':
1581
+ name_ = self.original_tagname_
1582
+ if UseCapturedNS_ and self.ns_prefix_:
1583
+ namespaceprefix_ = self.ns_prefix_ + ':'
1584
+ showIndent(outfile, level, pretty_print)
1585
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1586
+ already_processed = set()
1587
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='AddressCorrectionsType')
1588
+ if self.has__content():
1589
+ outfile.write('>%s' % (eol_, ))
1590
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='AddressCorrectionsType', pretty_print=pretty_print)
1591
+ showIndent(outfile, level, pretty_print)
1592
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1593
+ else:
1594
+ outfile.write('/>%s' % (eol_, ))
1595
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='AddressCorrectionsType'):
1596
+ pass
1597
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AddressCorrectionsType', fromsubclass_=False, pretty_print=True):
1598
+ if pretty_print:
1599
+ eol_ = '\n'
1600
+ else:
1601
+ eol_ = ''
1602
+ for Correction_ in self.Correction:
1603
+ namespaceprefix_ = self.Correction_nsprefix_ + ':' if (UseCapturedNS_ and self.Correction_nsprefix_) else ''
1604
+ Correction_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Correction', pretty_print=pretty_print)
1605
+ def build(self, node, gds_collector_=None):
1606
+ self.gds_collector_ = gds_collector_
1607
+ if SaveElementTreeNode:
1608
+ self.gds_elementtree_node_ = node
1609
+ already_processed = set()
1610
+ self.ns_prefix_ = node.prefix
1611
+ self._buildAttributes(node, node.attrib, already_processed)
1612
+ for child in node:
1613
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1614
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1615
+ return self
1616
+ def _buildAttributes(self, node, attrs, already_processed):
1617
+ pass
1618
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1619
+ if nodeName_ == 'Correction':
1620
+ obj_ = CorrectionType.factory(parent_object_=self)
1621
+ obj_.build(child_, gds_collector_=gds_collector_)
1622
+ self.Correction.append(obj_)
1623
+ obj_.original_tagname_ = 'Correction'
1624
+ # end class AddressCorrectionsType
1625
+
1626
+
1627
+ class CorrectionType(GeneratedsSuper):
1628
+ __hash__ = GeneratedsSuper.__hash__
1629
+ subclass = None
1630
+ superclass = None
1631
+ def __init__(self, ModifiedField=None, OldValue=None, NewValue=None, gds_collector_=None, **kwargs_):
1632
+ self.gds_collector_ = gds_collector_
1633
+ self.gds_elementtree_node_ = None
1634
+ self.original_tagname_ = None
1635
+ self.parent_object_ = kwargs_.get('parent_object_')
1636
+ self.ns_prefix_ = None
1637
+ self.ModifiedField = ModifiedField
1638
+ self.ModifiedField_nsprefix_ = None
1639
+ self.OldValue = OldValue
1640
+ self.OldValue_nsprefix_ = None
1641
+ self.NewValue = NewValue
1642
+ self.NewValue_nsprefix_ = None
1643
+ def factory(*args_, **kwargs_):
1644
+ if CurrentSubclassModule_ is not None:
1645
+ subclass = getSubclassFromModule_(
1646
+ CurrentSubclassModule_, CorrectionType)
1647
+ if subclass is not None:
1648
+ return subclass(*args_, **kwargs_)
1649
+ if CorrectionType.subclass:
1650
+ return CorrectionType.subclass(*args_, **kwargs_)
1651
+ else:
1652
+ return CorrectionType(*args_, **kwargs_)
1653
+ factory = staticmethod(factory)
1654
+ def get_ns_prefix_(self):
1655
+ return self.ns_prefix_
1656
+ def set_ns_prefix_(self, ns_prefix):
1657
+ self.ns_prefix_ = ns_prefix
1658
+ def get_ModifiedField(self):
1659
+ return self.ModifiedField
1660
+ def set_ModifiedField(self, ModifiedField):
1661
+ self.ModifiedField = ModifiedField
1662
+ def get_OldValue(self):
1663
+ return self.OldValue
1664
+ def set_OldValue(self, OldValue):
1665
+ self.OldValue = OldValue
1666
+ def get_NewValue(self):
1667
+ return self.NewValue
1668
+ def set_NewValue(self, NewValue):
1669
+ self.NewValue = NewValue
1670
+ def has__content(self):
1671
+ if (
1672
+ self.ModifiedField is not None or
1673
+ self.OldValue is not None or
1674
+ self.NewValue is not None
1675
+ ):
1676
+ return True
1677
+ else:
1678
+ return False
1679
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='CorrectionType', pretty_print=True):
1680
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('CorrectionType')
1681
+ if imported_ns_def_ is not None:
1682
+ namespacedef_ = imported_ns_def_
1683
+ if pretty_print:
1684
+ eol_ = '\n'
1685
+ else:
1686
+ eol_ = ''
1687
+ if self.original_tagname_ is not None and name_ == 'CorrectionType':
1688
+ name_ = self.original_tagname_
1689
+ if UseCapturedNS_ and self.ns_prefix_:
1690
+ namespaceprefix_ = self.ns_prefix_ + ':'
1691
+ showIndent(outfile, level, pretty_print)
1692
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1693
+ already_processed = set()
1694
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='CorrectionType')
1695
+ if self.has__content():
1696
+ outfile.write('>%s' % (eol_, ))
1697
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='CorrectionType', pretty_print=pretty_print)
1698
+ showIndent(outfile, level, pretty_print)
1699
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1700
+ else:
1701
+ outfile.write('/>%s' % (eol_, ))
1702
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='CorrectionType'):
1703
+ pass
1704
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='CorrectionType', fromsubclass_=False, pretty_print=True):
1705
+ if pretty_print:
1706
+ eol_ = '\n'
1707
+ else:
1708
+ eol_ = ''
1709
+ if self.ModifiedField is not None:
1710
+ namespaceprefix_ = self.ModifiedField_nsprefix_ + ':' if (UseCapturedNS_ and self.ModifiedField_nsprefix_) else ''
1711
+ showIndent(outfile, level, pretty_print)
1712
+ outfile.write('<%sModifiedField>%s</%sModifiedField>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.ModifiedField), input_name='ModifiedField')), namespaceprefix_ , eol_))
1713
+ if self.OldValue is not None:
1714
+ namespaceprefix_ = self.OldValue_nsprefix_ + ':' if (UseCapturedNS_ and self.OldValue_nsprefix_) else ''
1715
+ showIndent(outfile, level, pretty_print)
1716
+ outfile.write('<%sOldValue>%s</%sOldValue>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.OldValue), input_name='OldValue')), namespaceprefix_ , eol_))
1717
+ if self.NewValue is not None:
1718
+ namespaceprefix_ = self.NewValue_nsprefix_ + ':' if (UseCapturedNS_ and self.NewValue_nsprefix_) else ''
1719
+ showIndent(outfile, level, pretty_print)
1720
+ outfile.write('<%sNewValue>%s</%sNewValue>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.NewValue), input_name='NewValue')), namespaceprefix_ , eol_))
1721
+ def build(self, node, gds_collector_=None):
1722
+ self.gds_collector_ = gds_collector_
1723
+ if SaveElementTreeNode:
1724
+ self.gds_elementtree_node_ = node
1725
+ already_processed = set()
1726
+ self.ns_prefix_ = node.prefix
1727
+ self._buildAttributes(node, node.attrib, already_processed)
1728
+ for child in node:
1729
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1730
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1731
+ return self
1732
+ def _buildAttributes(self, node, attrs, already_processed):
1733
+ pass
1734
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1735
+ if nodeName_ == 'ModifiedField':
1736
+ value_ = child_.text
1737
+ value_ = self.gds_parse_string(value_, node, 'ModifiedField')
1738
+ value_ = self.gds_validate_string(value_, node, 'ModifiedField')
1739
+ self.ModifiedField = value_
1740
+ self.ModifiedField_nsprefix_ = child_.prefix
1741
+ elif nodeName_ == 'OldValue':
1742
+ value_ = child_.text
1743
+ value_ = self.gds_parse_string(value_, node, 'OldValue')
1744
+ value_ = self.gds_validate_string(value_, node, 'OldValue')
1745
+ self.OldValue = value_
1746
+ self.OldValue_nsprefix_ = child_.prefix
1747
+ elif nodeName_ == 'NewValue':
1748
+ value_ = child_.text
1749
+ value_ = self.gds_parse_string(value_, node, 'NewValue')
1750
+ value_ = self.gds_validate_string(value_, node, 'NewValue')
1751
+ self.NewValue = value_
1752
+ self.NewValue_nsprefix_ = child_.prefix
1753
+ # end class CorrectionType
1754
+
1755
+
1756
+ class PackagesType(GeneratedsSuper):
1757
+ __hash__ = GeneratedsSuper.__hash__
1758
+ subclass = None
1759
+ superclass = None
1760
+ def __init__(self, Package=None, gds_collector_=None, **kwargs_):
1761
+ self.gds_collector_ = gds_collector_
1762
+ self.gds_elementtree_node_ = None
1763
+ self.original_tagname_ = None
1764
+ self.parent_object_ = kwargs_.get('parent_object_')
1765
+ self.ns_prefix_ = None
1766
+ if Package is None:
1767
+ self.Package = []
1768
+ else:
1769
+ self.Package = Package
1770
+ self.Package_nsprefix_ = None
1771
+ def factory(*args_, **kwargs_):
1772
+ if CurrentSubclassModule_ is not None:
1773
+ subclass = getSubclassFromModule_(
1774
+ CurrentSubclassModule_, PackagesType)
1775
+ if subclass is not None:
1776
+ return subclass(*args_, **kwargs_)
1777
+ if PackagesType.subclass:
1778
+ return PackagesType.subclass(*args_, **kwargs_)
1779
+ else:
1780
+ return PackagesType(*args_, **kwargs_)
1781
+ factory = staticmethod(factory)
1782
+ def get_ns_prefix_(self):
1783
+ return self.ns_prefix_
1784
+ def set_ns_prefix_(self, ns_prefix):
1785
+ self.ns_prefix_ = ns_prefix
1786
+ def get_Package(self):
1787
+ return self.Package
1788
+ def set_Package(self, Package):
1789
+ self.Package = Package
1790
+ def add_Package(self, value):
1791
+ self.Package.append(value)
1792
+ def insert_Package_at(self, index, value):
1793
+ self.Package.insert(index, value)
1794
+ def replace_Package_at(self, index, value):
1795
+ self.Package[index] = value
1796
+ def has__content(self):
1797
+ if (
1798
+ self.Package
1799
+ ):
1800
+ return True
1801
+ else:
1802
+ return False
1803
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PackagesType', pretty_print=True):
1804
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('PackagesType')
1805
+ if imported_ns_def_ is not None:
1806
+ namespacedef_ = imported_ns_def_
1807
+ if pretty_print:
1808
+ eol_ = '\n'
1809
+ else:
1810
+ eol_ = ''
1811
+ if self.original_tagname_ is not None and name_ == 'PackagesType':
1812
+ name_ = self.original_tagname_
1813
+ if UseCapturedNS_ and self.ns_prefix_:
1814
+ namespaceprefix_ = self.ns_prefix_ + ':'
1815
+ showIndent(outfile, level, pretty_print)
1816
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1817
+ already_processed = set()
1818
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='PackagesType')
1819
+ if self.has__content():
1820
+ outfile.write('>%s' % (eol_, ))
1821
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='PackagesType', pretty_print=pretty_print)
1822
+ showIndent(outfile, level, pretty_print)
1823
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1824
+ else:
1825
+ outfile.write('/>%s' % (eol_, ))
1826
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='PackagesType'):
1827
+ pass
1828
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PackagesType', fromsubclass_=False, pretty_print=True):
1829
+ if pretty_print:
1830
+ eol_ = '\n'
1831
+ else:
1832
+ eol_ = ''
1833
+ for Package_ in self.Package:
1834
+ namespaceprefix_ = self.Package_nsprefix_ + ':' if (UseCapturedNS_ and self.Package_nsprefix_) else ''
1835
+ Package_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Package', pretty_print=pretty_print)
1836
+ def build(self, node, gds_collector_=None):
1837
+ self.gds_collector_ = gds_collector_
1838
+ if SaveElementTreeNode:
1839
+ self.gds_elementtree_node_ = node
1840
+ already_processed = set()
1841
+ self.ns_prefix_ = node.prefix
1842
+ self._buildAttributes(node, node.attrib, already_processed)
1843
+ for child in node:
1844
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1845
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1846
+ return self
1847
+ def _buildAttributes(self, node, attrs, already_processed):
1848
+ pass
1849
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1850
+ if nodeName_ == 'Package':
1851
+ obj_ = PackageType.factory(parent_object_=self)
1852
+ obj_.build(child_, gds_collector_=gds_collector_)
1853
+ self.Package.append(obj_)
1854
+ obj_.original_tagname_ = 'Package'
1855
+ # end class PackagesType
1856
+
1857
+
1858
+ class PackageType(GeneratedsSuper):
1859
+ __hash__ = GeneratedsSuper.__hash__
1860
+ subclass = None
1861
+ superclass = None
1862
+ def __init__(self, LabelLink=None, LabelImages=None, TrackingNumber=None, LandmarkTrackingNumber=None, PackageID=None, BarcodeData=None, PackageReference=None, gds_collector_=None, **kwargs_):
1863
+ self.gds_collector_ = gds_collector_
1864
+ self.gds_elementtree_node_ = None
1865
+ self.original_tagname_ = None
1866
+ self.parent_object_ = kwargs_.get('parent_object_')
1867
+ self.ns_prefix_ = None
1868
+ if LabelLink is None:
1869
+ self.LabelLink = []
1870
+ else:
1871
+ self.LabelLink = LabelLink
1872
+ self.LabelLink_nsprefix_ = None
1873
+ self.LabelImages = LabelImages
1874
+ self.LabelImages_nsprefix_ = None
1875
+ self.TrackingNumber = TrackingNumber
1876
+ self.TrackingNumber_nsprefix_ = None
1877
+ self.LandmarkTrackingNumber = LandmarkTrackingNumber
1878
+ self.LandmarkTrackingNumber_nsprefix_ = None
1879
+ self.PackageID = PackageID
1880
+ self.PackageID_nsprefix_ = None
1881
+ self.BarcodeData = BarcodeData
1882
+ self.BarcodeData_nsprefix_ = None
1883
+ self.PackageReference = PackageReference
1884
+ self.PackageReference_nsprefix_ = None
1885
+ def factory(*args_, **kwargs_):
1886
+ if CurrentSubclassModule_ is not None:
1887
+ subclass = getSubclassFromModule_(
1888
+ CurrentSubclassModule_, PackageType)
1889
+ if subclass is not None:
1890
+ return subclass(*args_, **kwargs_)
1891
+ if PackageType.subclass:
1892
+ return PackageType.subclass(*args_, **kwargs_)
1893
+ else:
1894
+ return PackageType(*args_, **kwargs_)
1895
+ factory = staticmethod(factory)
1896
+ def get_ns_prefix_(self):
1897
+ return self.ns_prefix_
1898
+ def set_ns_prefix_(self, ns_prefix):
1899
+ self.ns_prefix_ = ns_prefix
1900
+ def get_LabelLink(self):
1901
+ return self.LabelLink
1902
+ def set_LabelLink(self, LabelLink):
1903
+ self.LabelLink = LabelLink
1904
+ def add_LabelLink(self, value):
1905
+ self.LabelLink.append(value)
1906
+ def insert_LabelLink_at(self, index, value):
1907
+ self.LabelLink.insert(index, value)
1908
+ def replace_LabelLink_at(self, index, value):
1909
+ self.LabelLink[index] = value
1910
+ def get_LabelImages(self):
1911
+ return self.LabelImages
1912
+ def set_LabelImages(self, LabelImages):
1913
+ self.LabelImages = LabelImages
1914
+ def get_TrackingNumber(self):
1915
+ return self.TrackingNumber
1916
+ def set_TrackingNumber(self, TrackingNumber):
1917
+ self.TrackingNumber = TrackingNumber
1918
+ def get_LandmarkTrackingNumber(self):
1919
+ return self.LandmarkTrackingNumber
1920
+ def set_LandmarkTrackingNumber(self, LandmarkTrackingNumber):
1921
+ self.LandmarkTrackingNumber = LandmarkTrackingNumber
1922
+ def get_PackageID(self):
1923
+ return self.PackageID
1924
+ def set_PackageID(self, PackageID):
1925
+ self.PackageID = PackageID
1926
+ def get_BarcodeData(self):
1927
+ return self.BarcodeData
1928
+ def set_BarcodeData(self, BarcodeData):
1929
+ self.BarcodeData = BarcodeData
1930
+ def get_PackageReference(self):
1931
+ return self.PackageReference
1932
+ def set_PackageReference(self, PackageReference):
1933
+ self.PackageReference = PackageReference
1934
+ def has__content(self):
1935
+ if (
1936
+ self.LabelLink or
1937
+ self.LabelImages is not None or
1938
+ self.TrackingNumber is not None or
1939
+ self.LandmarkTrackingNumber is not None or
1940
+ self.PackageID is not None or
1941
+ self.BarcodeData is not None or
1942
+ self.PackageReference is not None
1943
+ ):
1944
+ return True
1945
+ else:
1946
+ return False
1947
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PackageType', pretty_print=True):
1948
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('PackageType')
1949
+ if imported_ns_def_ is not None:
1950
+ namespacedef_ = imported_ns_def_
1951
+ if pretty_print:
1952
+ eol_ = '\n'
1953
+ else:
1954
+ eol_ = ''
1955
+ if self.original_tagname_ is not None and name_ == 'PackageType':
1956
+ name_ = self.original_tagname_
1957
+ if UseCapturedNS_ and self.ns_prefix_:
1958
+ namespaceprefix_ = self.ns_prefix_ + ':'
1959
+ showIndent(outfile, level, pretty_print)
1960
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1961
+ already_processed = set()
1962
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='PackageType')
1963
+ if self.has__content():
1964
+ outfile.write('>%s' % (eol_, ))
1965
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='PackageType', pretty_print=pretty_print)
1966
+ showIndent(outfile, level, pretty_print)
1967
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1968
+ else:
1969
+ outfile.write('/>%s' % (eol_, ))
1970
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='PackageType'):
1971
+ pass
1972
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PackageType', fromsubclass_=False, pretty_print=True):
1973
+ if pretty_print:
1974
+ eol_ = '\n'
1975
+ else:
1976
+ eol_ = ''
1977
+ for LabelLink_ in self.LabelLink:
1978
+ namespaceprefix_ = self.LabelLink_nsprefix_ + ':' if (UseCapturedNS_ and self.LabelLink_nsprefix_) else ''
1979
+ showIndent(outfile, level, pretty_print)
1980
+ outfile.write('<%sLabelLink>%s</%sLabelLink>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(LabelLink_), input_name='LabelLink')), namespaceprefix_ , eol_))
1981
+ if self.LabelImages is not None:
1982
+ namespaceprefix_ = self.LabelImages_nsprefix_ + ':' if (UseCapturedNS_ and self.LabelImages_nsprefix_) else ''
1983
+ self.LabelImages.export(outfile, level, namespaceprefix_, namespacedef_='', name_='LabelImages', pretty_print=pretty_print)
1984
+ if self.TrackingNumber is not None:
1985
+ namespaceprefix_ = self.TrackingNumber_nsprefix_ + ':' if (UseCapturedNS_ and self.TrackingNumber_nsprefix_) else ''
1986
+ showIndent(outfile, level, pretty_print)
1987
+ outfile.write('<%sTrackingNumber>%s</%sTrackingNumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.TrackingNumber), input_name='TrackingNumber')), namespaceprefix_ , eol_))
1988
+ if self.LandmarkTrackingNumber is not None:
1989
+ namespaceprefix_ = self.LandmarkTrackingNumber_nsprefix_ + ':' if (UseCapturedNS_ and self.LandmarkTrackingNumber_nsprefix_) else ''
1990
+ showIndent(outfile, level, pretty_print)
1991
+ outfile.write('<%sLandmarkTrackingNumber>%s</%sLandmarkTrackingNumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.LandmarkTrackingNumber), input_name='LandmarkTrackingNumber')), namespaceprefix_ , eol_))
1992
+ if self.PackageID is not None:
1993
+ namespaceprefix_ = self.PackageID_nsprefix_ + ':' if (UseCapturedNS_ and self.PackageID_nsprefix_) else ''
1994
+ showIndent(outfile, level, pretty_print)
1995
+ outfile.write('<%sPackageID>%s</%sPackageID>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.PackageID), input_name='PackageID')), namespaceprefix_ , eol_))
1996
+ if self.BarcodeData is not None:
1997
+ namespaceprefix_ = self.BarcodeData_nsprefix_ + ':' if (UseCapturedNS_ and self.BarcodeData_nsprefix_) else ''
1998
+ showIndent(outfile, level, pretty_print)
1999
+ outfile.write('<%sBarcodeData>%s</%sBarcodeData>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.BarcodeData), input_name='BarcodeData')), namespaceprefix_ , eol_))
2000
+ if self.PackageReference is not None:
2001
+ namespaceprefix_ = self.PackageReference_nsprefix_ + ':' if (UseCapturedNS_ and self.PackageReference_nsprefix_) else ''
2002
+ showIndent(outfile, level, pretty_print)
2003
+ outfile.write('<%sPackageReference>%s</%sPackageReference>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.PackageReference), input_name='PackageReference')), namespaceprefix_ , eol_))
2004
+ def build(self, node, gds_collector_=None):
2005
+ self.gds_collector_ = gds_collector_
2006
+ if SaveElementTreeNode:
2007
+ self.gds_elementtree_node_ = node
2008
+ already_processed = set()
2009
+ self.ns_prefix_ = node.prefix
2010
+ self._buildAttributes(node, node.attrib, already_processed)
2011
+ for child in node:
2012
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2013
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2014
+ return self
2015
+ def _buildAttributes(self, node, attrs, already_processed):
2016
+ pass
2017
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2018
+ if nodeName_ == 'LabelLink':
2019
+ value_ = child_.text
2020
+ value_ = self.gds_parse_string(value_, node, 'LabelLink')
2021
+ value_ = self.gds_validate_string(value_, node, 'LabelLink')
2022
+ self.LabelLink.append(value_)
2023
+ self.LabelLink_nsprefix_ = child_.prefix
2024
+ elif nodeName_ == 'LabelImages':
2025
+ obj_ = LabelImagesType.factory(parent_object_=self)
2026
+ obj_.build(child_, gds_collector_=gds_collector_)
2027
+ self.LabelImages = obj_
2028
+ obj_.original_tagname_ = 'LabelImages'
2029
+ elif nodeName_ == 'TrackingNumber':
2030
+ value_ = child_.text
2031
+ value_ = self.gds_parse_string(value_, node, 'TrackingNumber')
2032
+ value_ = self.gds_validate_string(value_, node, 'TrackingNumber')
2033
+ self.TrackingNumber = value_
2034
+ self.TrackingNumber_nsprefix_ = child_.prefix
2035
+ elif nodeName_ == 'LandmarkTrackingNumber':
2036
+ value_ = child_.text
2037
+ value_ = self.gds_parse_string(value_, node, 'LandmarkTrackingNumber')
2038
+ value_ = self.gds_validate_string(value_, node, 'LandmarkTrackingNumber')
2039
+ self.LandmarkTrackingNumber = value_
2040
+ self.LandmarkTrackingNumber_nsprefix_ = child_.prefix
2041
+ elif nodeName_ == 'PackageID':
2042
+ value_ = child_.text
2043
+ value_ = self.gds_parse_string(value_, node, 'PackageID')
2044
+ value_ = self.gds_validate_string(value_, node, 'PackageID')
2045
+ self.PackageID = value_
2046
+ self.PackageID_nsprefix_ = child_.prefix
2047
+ elif nodeName_ == 'BarcodeData':
2048
+ value_ = child_.text
2049
+ value_ = self.gds_parse_string(value_, node, 'BarcodeData')
2050
+ value_ = self.gds_validate_string(value_, node, 'BarcodeData')
2051
+ self.BarcodeData = value_
2052
+ self.BarcodeData_nsprefix_ = child_.prefix
2053
+ elif nodeName_ == 'PackageReference':
2054
+ value_ = child_.text
2055
+ value_ = self.gds_parse_string(value_, node, 'PackageReference')
2056
+ value_ = self.gds_validate_string(value_, node, 'PackageReference')
2057
+ self.PackageReference = value_
2058
+ self.PackageReference_nsprefix_ = child_.prefix
2059
+ # end class PackageType
2060
+
2061
+
2062
+ class LabelImagesType(GeneratedsSuper):
2063
+ __hash__ = GeneratedsSuper.__hash__
2064
+ subclass = None
2065
+ superclass = None
2066
+ def __init__(self, LabelImage=None, gds_collector_=None, **kwargs_):
2067
+ self.gds_collector_ = gds_collector_
2068
+ self.gds_elementtree_node_ = None
2069
+ self.original_tagname_ = None
2070
+ self.parent_object_ = kwargs_.get('parent_object_')
2071
+ self.ns_prefix_ = None
2072
+ if LabelImage is None:
2073
+ self.LabelImage = []
2074
+ else:
2075
+ self.LabelImage = LabelImage
2076
+ self.LabelImage_nsprefix_ = None
2077
+ def factory(*args_, **kwargs_):
2078
+ if CurrentSubclassModule_ is not None:
2079
+ subclass = getSubclassFromModule_(
2080
+ CurrentSubclassModule_, LabelImagesType)
2081
+ if subclass is not None:
2082
+ return subclass(*args_, **kwargs_)
2083
+ if LabelImagesType.subclass:
2084
+ return LabelImagesType.subclass(*args_, **kwargs_)
2085
+ else:
2086
+ return LabelImagesType(*args_, **kwargs_)
2087
+ factory = staticmethod(factory)
2088
+ def get_ns_prefix_(self):
2089
+ return self.ns_prefix_
2090
+ def set_ns_prefix_(self, ns_prefix):
2091
+ self.ns_prefix_ = ns_prefix
2092
+ def get_LabelImage(self):
2093
+ return self.LabelImage
2094
+ def set_LabelImage(self, LabelImage):
2095
+ self.LabelImage = LabelImage
2096
+ def add_LabelImage(self, value):
2097
+ self.LabelImage.append(value)
2098
+ def insert_LabelImage_at(self, index, value):
2099
+ self.LabelImage.insert(index, value)
2100
+ def replace_LabelImage_at(self, index, value):
2101
+ self.LabelImage[index] = value
2102
+ def has__content(self):
2103
+ if (
2104
+ self.LabelImage
2105
+ ):
2106
+ return True
2107
+ else:
2108
+ return False
2109
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='LabelImagesType', pretty_print=True):
2110
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('LabelImagesType')
2111
+ if imported_ns_def_ is not None:
2112
+ namespacedef_ = imported_ns_def_
2113
+ if pretty_print:
2114
+ eol_ = '\n'
2115
+ else:
2116
+ eol_ = ''
2117
+ if self.original_tagname_ is not None and name_ == 'LabelImagesType':
2118
+ name_ = self.original_tagname_
2119
+ if UseCapturedNS_ and self.ns_prefix_:
2120
+ namespaceprefix_ = self.ns_prefix_ + ':'
2121
+ showIndent(outfile, level, pretty_print)
2122
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2123
+ already_processed = set()
2124
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='LabelImagesType')
2125
+ if self.has__content():
2126
+ outfile.write('>%s' % (eol_, ))
2127
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='LabelImagesType', pretty_print=pretty_print)
2128
+ showIndent(outfile, level, pretty_print)
2129
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2130
+ else:
2131
+ outfile.write('/>%s' % (eol_, ))
2132
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='LabelImagesType'):
2133
+ pass
2134
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='LabelImagesType', fromsubclass_=False, pretty_print=True):
2135
+ if pretty_print:
2136
+ eol_ = '\n'
2137
+ else:
2138
+ eol_ = ''
2139
+ for LabelImage_ in self.LabelImage:
2140
+ namespaceprefix_ = self.LabelImage_nsprefix_ + ':' if (UseCapturedNS_ and self.LabelImage_nsprefix_) else ''
2141
+ showIndent(outfile, level, pretty_print)
2142
+ outfile.write('<%sLabelImage>%s</%sLabelImage>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(LabelImage_), input_name='LabelImage')), namespaceprefix_ , eol_))
2143
+ def build(self, node, gds_collector_=None):
2144
+ self.gds_collector_ = gds_collector_
2145
+ if SaveElementTreeNode:
2146
+ self.gds_elementtree_node_ = node
2147
+ already_processed = set()
2148
+ self.ns_prefix_ = node.prefix
2149
+ self._buildAttributes(node, node.attrib, already_processed)
2150
+ for child in node:
2151
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2152
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2153
+ return self
2154
+ def _buildAttributes(self, node, attrs, already_processed):
2155
+ pass
2156
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2157
+ if nodeName_ == 'LabelImage':
2158
+ value_ = child_.text
2159
+ value_ = self.gds_parse_string(value_, node, 'LabelImage')
2160
+ value_ = self.gds_validate_string(value_, node, 'LabelImage')
2161
+ self.LabelImage.append(value_)
2162
+ self.LabelImage_nsprefix_ = child_.prefix
2163
+ # end class LabelImagesType
2164
+
2165
+
2166
+ #
2167
+ # End data representation classes.
2168
+ #
2169
+
2170
+
2171
+ GDSClassesMapping = {
2172
+ }
2173
+
2174
+
2175
+ USAGE_TEXT = """
2176
+ Usage: python <Parser>.py [ -s ] <in_xml_file>
2177
+ """
2178
+
2179
+
2180
+ def usage():
2181
+ print(USAGE_TEXT)
2182
+ sys.exit(1)
2183
+
2184
+
2185
+ def get_root_tag(node):
2186
+ tag = Tag_pattern_.match(node.tag).groups()[-1]
2187
+ prefix_tag = TagNamePrefix + tag
2188
+ rootClass = GDSClassesMapping.get(prefix_tag)
2189
+ if rootClass is None:
2190
+ rootClass = globals().get(prefix_tag)
2191
+ return tag, rootClass
2192
+
2193
+
2194
+ def get_required_ns_prefix_defs(rootNode):
2195
+ '''Get all name space prefix definitions required in this XML doc.
2196
+ Return a dictionary of definitions and a char string of definitions.
2197
+ '''
2198
+ nsmap = {
2199
+ prefix: uri
2200
+ for node in rootNode.iter()
2201
+ for (prefix, uri) in node.nsmap.items()
2202
+ if prefix is not None
2203
+ }
2204
+ namespacedefs = ' '.join([
2205
+ 'xmlns:{}="{}"'.format(prefix, uri)
2206
+ for prefix, uri in nsmap.items()
2207
+ ])
2208
+ return nsmap, namespacedefs
2209
+
2210
+
2211
+ def parse(inFileName, silence=False, print_warnings=True):
2212
+ global CapturedNsmap_
2213
+ gds_collector = GdsCollector_()
2214
+ parser = None
2215
+ doc = parsexml_(inFileName, parser)
2216
+ rootNode = doc.getroot()
2217
+ rootTag, rootClass = get_root_tag(rootNode)
2218
+ if rootClass is None:
2219
+ rootTag = 'ShipResponse'
2220
+ rootClass = ShipResponse
2221
+ rootObj = rootClass.factory()
2222
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2223
+ CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
2224
+ if not SaveElementTreeNode:
2225
+ doc = None
2226
+ rootNode = None
2227
+ if not silence:
2228
+ sys.stdout.write('<?xml version="1.0" ?>\n')
2229
+ rootObj.export(
2230
+ sys.stdout, 0, name_=rootTag,
2231
+ namespacedef_=namespacedefs,
2232
+ pretty_print=True)
2233
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2234
+ separator = ('-' * 50) + '\n'
2235
+ sys.stderr.write(separator)
2236
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2237
+ len(gds_collector.get_messages()), ))
2238
+ gds_collector.write_messages(sys.stderr)
2239
+ sys.stderr.write(separator)
2240
+ return rootObj
2241
+
2242
+
2243
+ def parseEtree(inFileName, silence=False, print_warnings=True,
2244
+ mapping=None, reverse_mapping=None, nsmap=None):
2245
+ parser = None
2246
+ doc = parsexml_(inFileName, parser)
2247
+ gds_collector = GdsCollector_()
2248
+ rootNode = doc.getroot()
2249
+ rootTag, rootClass = get_root_tag(rootNode)
2250
+ if rootClass is None:
2251
+ rootTag = 'ShipResponse'
2252
+ rootClass = ShipResponse
2253
+ rootObj = rootClass.factory()
2254
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2255
+ if mapping is None:
2256
+ mapping = {}
2257
+ if reverse_mapping is None:
2258
+ reverse_mapping = {}
2259
+ rootElement = rootObj.to_etree(
2260
+ None, name_=rootTag, mapping_=mapping,
2261
+ reverse_mapping_=reverse_mapping, nsmap_=nsmap)
2262
+ reverse_node_mapping = rootObj.gds_reverse_node_mapping(mapping)
2263
+ # Enable Python to collect the space used by the DOM.
2264
+ if not SaveElementTreeNode:
2265
+ doc = None
2266
+ rootNode = None
2267
+ if not silence:
2268
+ content = etree_.tostring(
2269
+ rootElement, pretty_print=True,
2270
+ xml_declaration=True, encoding="utf-8")
2271
+ sys.stdout.write(str(content))
2272
+ sys.stdout.write('\n')
2273
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2274
+ separator = ('-' * 50) + '\n'
2275
+ sys.stderr.write(separator)
2276
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2277
+ len(gds_collector.get_messages()), ))
2278
+ gds_collector.write_messages(sys.stderr)
2279
+ sys.stderr.write(separator)
2280
+ return rootObj, rootElement, mapping, reverse_node_mapping
2281
+
2282
+
2283
+ def parseString(inString, silence=False, print_warnings=True):
2284
+ '''Parse a string, create the object tree, and export it.
2285
+
2286
+ Arguments:
2287
+ - inString -- A string. This XML fragment should not start
2288
+ with an XML declaration containing an encoding.
2289
+ - silence -- A boolean. If False, export the object.
2290
+ Returns -- The root object in the tree.
2291
+ '''
2292
+ parser = None
2293
+ rootNode= parsexmlstring_(inString, parser)
2294
+ gds_collector = GdsCollector_()
2295
+ rootTag, rootClass = get_root_tag(rootNode)
2296
+ if rootClass is None:
2297
+ rootTag = 'ShipResponse'
2298
+ rootClass = ShipResponse
2299
+ rootObj = rootClass.factory()
2300
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2301
+ if not SaveElementTreeNode:
2302
+ rootNode = None
2303
+ if not silence:
2304
+ sys.stdout.write('<?xml version="1.0" ?>\n')
2305
+ rootObj.export(
2306
+ sys.stdout, 0, name_=rootTag,
2307
+ namespacedef_='')
2308
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2309
+ separator = ('-' * 50) + '\n'
2310
+ sys.stderr.write(separator)
2311
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2312
+ len(gds_collector.get_messages()), ))
2313
+ gds_collector.write_messages(sys.stderr)
2314
+ sys.stderr.write(separator)
2315
+ return rootObj
2316
+
2317
+
2318
+ def parseLiteral(inFileName, silence=False, print_warnings=True):
2319
+ parser = None
2320
+ doc = parsexml_(inFileName, parser)
2321
+ gds_collector = GdsCollector_()
2322
+ rootNode = doc.getroot()
2323
+ rootTag, rootClass = get_root_tag(rootNode)
2324
+ if rootClass is None:
2325
+ rootTag = 'ShipResponse'
2326
+ rootClass = ShipResponse
2327
+ rootObj = rootClass.factory()
2328
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2329
+ # Enable Python to collect the space used by the DOM.
2330
+ if not SaveElementTreeNode:
2331
+ doc = None
2332
+ rootNode = None
2333
+ if not silence:
2334
+ sys.stdout.write('#from ship_response import *\n\n')
2335
+ sys.stdout.write('import ship_response as model_\n\n')
2336
+ sys.stdout.write('rootObj = model_.rootClass(\n')
2337
+ rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
2338
+ sys.stdout.write(')\n')
2339
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2340
+ separator = ('-' * 50) + '\n'
2341
+ sys.stderr.write(separator)
2342
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2343
+ len(gds_collector.get_messages()), ))
2344
+ gds_collector.write_messages(sys.stderr)
2345
+ sys.stderr.write(separator)
2346
+ return rootObj
2347
+
2348
+
2349
+ def main():
2350
+ args = sys.argv[1:]
2351
+ if len(args) == 1:
2352
+ parse(args[0])
2353
+ else:
2354
+ usage()
2355
+
2356
+
2357
+ if __name__ == '__main__':
2358
+ #import pdb; pdb.set_trace()
2359
+ main()
2360
+
2361
+ RenameMappings_ = {
2362
+ }
2363
+
2364
+ #
2365
+ # Mapping of namespaces to types defined in them
2366
+ # and the file in which each is defined.
2367
+ # simpleTypes are marked "ST" and complexTypes "CT".
2368
+ NamespaceToDefMappings_ = {}
2369
+
2370
+ __all__ = [
2371
+ "AddressCorrectionsType",
2372
+ "CorrectionType",
2373
+ "ErrorType",
2374
+ "ErrorsType",
2375
+ "LabelImagesType",
2376
+ "PackageType",
2377
+ "PackagesType",
2378
+ "ResultType",
2379
+ "ShipResponse"
2380
+ ]