karrio-freightcom 2025.5.6__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,4236 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ #
5
+ # Generated Fri Oct 21 12:33:20 2022 by generateDS.py version 2.41.1.
6
+ # Python 3.10.8 (v3.10.8:aaaf517424, Oct 11 2022, 10:14:40) [Clang 13.0.0 (clang-1300.0.29.30)]
7
+ #
8
+ # Command line options:
9
+ # ('--no-namespace-defs', '')
10
+ # ('-o', './karrio.schemas.freightcom/shipping_reply.py')
11
+ #
12
+ # Command line arguments:
13
+ # ./vendor/schemas/shipping_reply.xsd
14
+ #
15
+ # Command line:
16
+ # /Users/danielk/Documents/karrio/karrio/.venv/karrio/bin/generateDS --no-namespace-defs -o "./karrio.schemas.freightcom/shipping_reply.py" ./vendor/schemas/shipping_reply.xsd
17
+ #
18
+ # Current working directory (os.getcwd()):
19
+ # freightcom
20
+ #
21
+
22
+ import sys
23
+
24
+ try:
25
+ ModulenotfoundExp_ = ModuleNotFoundError
26
+ except NameError:
27
+ ModulenotfoundExp_ = ImportError
28
+ from six.moves import zip_longest
29
+ import os
30
+ import re as re_
31
+ import base64
32
+ import datetime as datetime_
33
+ import decimal as decimal_
34
+ from lxml import etree as etree_
35
+
36
+
37
+ Validate_simpletypes_ = True
38
+ SaveElementTreeNode = True
39
+ TagNamePrefix = ""
40
+ if sys.version_info.major == 2:
41
+ BaseStrType_ = basestring
42
+ else:
43
+ BaseStrType_ = str
44
+
45
+
46
+ def parsexml_(infile, parser=None, **kwargs):
47
+ if parser is None:
48
+ # Use the lxml ElementTree compatible parser so that, e.g.,
49
+ # we ignore comments.
50
+ try:
51
+ parser = etree_.ETCompatXMLParser()
52
+ except AttributeError:
53
+ # fallback to xml.etree
54
+ parser = etree_.XMLParser()
55
+ try:
56
+ if isinstance(infile, os.PathLike):
57
+ infile = os.path.join(infile)
58
+ except AttributeError:
59
+ pass
60
+ doc = etree_.parse(infile, parser=parser, **kwargs)
61
+ return doc
62
+
63
+
64
+ def parsexmlstring_(instring, parser=None, **kwargs):
65
+ if parser is None:
66
+ # Use the lxml ElementTree compatible parser so that, e.g.,
67
+ # we ignore comments.
68
+ try:
69
+ parser = etree_.ETCompatXMLParser()
70
+ except AttributeError:
71
+ # fallback to xml.etree
72
+ parser = etree_.XMLParser()
73
+ element = etree_.fromstring(instring, parser=parser, **kwargs)
74
+ return element
75
+
76
+
77
+ #
78
+ # Namespace prefix definition table (and other attributes, too)
79
+ #
80
+ # The module generatedsnamespaces, if it is importable, must contain
81
+ # a dictionary named GeneratedsNamespaceDefs. This Python dictionary
82
+ # should map element type names (strings) to XML schema namespace prefix
83
+ # definitions. The export method for any class for which there is
84
+ # a namespace prefix definition, will export that definition in the
85
+ # XML representation of that element. See the export method of
86
+ # any generated element type class for an example of the use of this
87
+ # table.
88
+ # A sample table is:
89
+ #
90
+ # # File: generatedsnamespaces.py
91
+ #
92
+ # GenerateDSNamespaceDefs = {
93
+ # "ElementtypeA": "http://www.xxx.com/namespaceA",
94
+ # "ElementtypeB": "http://www.xxx.com/namespaceB",
95
+ # }
96
+ #
97
+ # Additionally, the generatedsnamespaces module can contain a python
98
+ # dictionary named GenerateDSNamespaceTypePrefixes that associates element
99
+ # types with the namespace prefixes that are to be added to the
100
+ # "xsi:type" attribute value. See the _exportAttributes method of
101
+ # any generated element type and the generation of "xsi:type" for an
102
+ # example of the use of this table.
103
+ # An example table:
104
+ #
105
+ # # File: generatedsnamespaces.py
106
+ #
107
+ # GenerateDSNamespaceTypePrefixes = {
108
+ # "ElementtypeC": "aaa:",
109
+ # "ElementtypeD": "bbb:",
110
+ # }
111
+ #
112
+
113
+ try:
114
+ from generatedsnamespaces import GenerateDSNamespaceDefs as GenerateDSNamespaceDefs_
115
+ except ModulenotfoundExp_:
116
+ GenerateDSNamespaceDefs_ = {}
117
+ try:
118
+ from generatedsnamespaces import (
119
+ GenerateDSNamespaceTypePrefixes as GenerateDSNamespaceTypePrefixes_,
120
+ )
121
+ except ModulenotfoundExp_:
122
+ GenerateDSNamespaceTypePrefixes_ = {}
123
+
124
+ #
125
+ # You can replace the following class definition by defining an
126
+ # importable module named "generatedscollector" containing a class
127
+ # named "GdsCollector". See the default class definition below for
128
+ # clues about the possible content of that class.
129
+ #
130
+ try:
131
+ from generatedscollector import GdsCollector as GdsCollector_
132
+ except ModulenotfoundExp_:
133
+
134
+ class GdsCollector_(object):
135
+ def __init__(self, messages=None):
136
+ if messages is None:
137
+ self.messages = []
138
+ else:
139
+ self.messages = messages
140
+
141
+ def add_message(self, msg):
142
+ self.messages.append(msg)
143
+
144
+ def get_messages(self):
145
+ return self.messages
146
+
147
+ def clear_messages(self):
148
+ self.messages = []
149
+
150
+ def print_messages(self):
151
+ for msg in self.messages:
152
+ print("Warning: {}".format(msg))
153
+
154
+ def write_messages(self, outstream):
155
+ for msg in self.messages:
156
+ outstream.write("Warning: {}\n".format(msg))
157
+
158
+
159
+ #
160
+ # The super-class for enum types
161
+ #
162
+
163
+ try:
164
+ from enum import Enum
165
+ except ModulenotfoundExp_:
166
+ Enum = object
167
+
168
+ #
169
+ # The root super-class for element type classes
170
+ #
171
+ # Calls to the methods in these classes are generated by generateDS.py.
172
+ # You can replace these methods by re-implementing the following class
173
+ # in a module named generatedssuper.py.
174
+
175
+ try:
176
+ from generatedssuper import GeneratedsSuper
177
+ except ModulenotfoundExp_ as exp:
178
+ try:
179
+ from generatedssupersuper import GeneratedsSuperSuper
180
+ except ModulenotfoundExp_ as exp:
181
+
182
+ class GeneratedsSuperSuper(object):
183
+ pass
184
+
185
+ class GeneratedsSuper(GeneratedsSuperSuper):
186
+ __hash__ = object.__hash__
187
+ tzoff_pattern = re_.compile(r"(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$")
188
+
189
+ class _FixedOffsetTZ(datetime_.tzinfo):
190
+ def __init__(self, offset, name):
191
+ self.__offset = datetime_.timedelta(minutes=offset)
192
+ self.__name = name
193
+
194
+ def utcoffset(self, dt):
195
+ return self.__offset
196
+
197
+ def tzname(self, dt):
198
+ return self.__name
199
+
200
+ def dst(self, dt):
201
+ return None
202
+
203
+ def __str__(self):
204
+ settings = {
205
+ "str_pretty_print": True,
206
+ "str_indent_level": 0,
207
+ "str_namespaceprefix": "",
208
+ "str_name": self.__class__.__name__,
209
+ "str_namespacedefs": "",
210
+ }
211
+ for n in settings:
212
+ if hasattr(self, n):
213
+ settings[n] = getattr(self, n)
214
+ if sys.version_info.major == 2:
215
+ from StringIO import StringIO
216
+ else:
217
+ from io import StringIO
218
+ output = StringIO()
219
+ self.export(
220
+ output,
221
+ settings["str_indent_level"],
222
+ pretty_print=settings["str_pretty_print"],
223
+ namespaceprefix_=settings["str_namespaceprefix"],
224
+ name_=settings["str_name"],
225
+ namespacedef_=settings["str_namespacedefs"],
226
+ )
227
+ strval = output.getvalue()
228
+ output.close()
229
+ return strval
230
+
231
+ def gds_format_string(self, input_data, input_name=""):
232
+ return input_data
233
+
234
+ def gds_parse_string(self, input_data, node=None, input_name=""):
235
+ return input_data
236
+
237
+ def gds_validate_string(self, input_data, node=None, input_name=""):
238
+ if not input_data:
239
+ return ""
240
+ else:
241
+ return input_data
242
+
243
+ def gds_format_base64(self, input_data, input_name=""):
244
+ return base64.b64encode(input_data).decode("ascii")
245
+
246
+ def gds_validate_base64(self, input_data, node=None, input_name=""):
247
+ return input_data
248
+
249
+ def gds_format_integer(self, input_data, input_name=""):
250
+ return "%d" % int(input_data)
251
+
252
+ def gds_parse_integer(self, input_data, node=None, input_name=""):
253
+ try:
254
+ ival = int(input_data)
255
+ except (TypeError, ValueError) as exp:
256
+ raise_parse_error(node, "Requires integer value: %s" % exp)
257
+ return ival
258
+
259
+ def gds_validate_integer(self, input_data, node=None, input_name=""):
260
+ try:
261
+ value = int(input_data)
262
+ except (TypeError, ValueError):
263
+ raise_parse_error(node, "Requires integer value")
264
+ return value
265
+
266
+ def gds_format_integer_list(self, input_data, input_name=""):
267
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
268
+ input_data = [str(s) for s in input_data]
269
+ return "%s" % " ".join(input_data)
270
+
271
+ def gds_validate_integer_list(self, input_data, node=None, input_name=""):
272
+ values = input_data.split()
273
+ for value in values:
274
+ try:
275
+ int(value)
276
+ except (TypeError, ValueError):
277
+ raise_parse_error(node, "Requires sequence of integer values")
278
+ return values
279
+
280
+ def gds_format_float(self, input_data, input_name=""):
281
+ return ("%.15f" % float(input_data)).rstrip("0")
282
+
283
+ def gds_parse_float(self, input_data, node=None, input_name=""):
284
+ try:
285
+ fval_ = float(input_data)
286
+ except (TypeError, ValueError) as exp:
287
+ raise_parse_error(node, "Requires float or double value: %s" % exp)
288
+ return fval_
289
+
290
+ def gds_validate_float(self, input_data, node=None, input_name=""):
291
+ try:
292
+ value = float(input_data)
293
+ except (TypeError, ValueError):
294
+ raise_parse_error(node, "Requires float value")
295
+ return value
296
+
297
+ def gds_format_float_list(self, input_data, input_name=""):
298
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
299
+ input_data = [str(s) for s in input_data]
300
+ return "%s" % " ".join(input_data)
301
+
302
+ def gds_validate_float_list(self, input_data, node=None, input_name=""):
303
+ values = input_data.split()
304
+ for value in values:
305
+ try:
306
+ float(value)
307
+ except (TypeError, ValueError):
308
+ raise_parse_error(node, "Requires sequence of float values")
309
+ return values
310
+
311
+ def gds_format_decimal(self, input_data, input_name=""):
312
+ return_value = "%s" % input_data
313
+ if "." in return_value:
314
+ return_value = return_value.rstrip("0")
315
+ if return_value.endswith("."):
316
+ return_value = return_value.rstrip(".")
317
+ return return_value
318
+
319
+ def gds_parse_decimal(self, input_data, node=None, input_name=""):
320
+ try:
321
+ decimal_value = decimal_.Decimal(input_data)
322
+ except (TypeError, ValueError):
323
+ raise_parse_error(node, "Requires decimal value")
324
+ return decimal_value
325
+
326
+ def gds_validate_decimal(self, input_data, node=None, input_name=""):
327
+ try:
328
+ value = decimal_.Decimal(input_data)
329
+ except (TypeError, ValueError):
330
+ raise_parse_error(node, "Requires decimal value")
331
+ return value
332
+
333
+ def gds_format_decimal_list(self, input_data, input_name=""):
334
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
335
+ input_data = [str(s) for s in input_data]
336
+ return " ".join([self.gds_format_decimal(item) for item in input_data])
337
+
338
+ def gds_validate_decimal_list(self, input_data, node=None, input_name=""):
339
+ values = input_data.split()
340
+ for value in values:
341
+ try:
342
+ decimal_.Decimal(value)
343
+ except (TypeError, ValueError):
344
+ raise_parse_error(node, "Requires sequence of decimal values")
345
+ return values
346
+
347
+ def gds_format_double(self, input_data, input_name=""):
348
+ return "%s" % input_data
349
+
350
+ def gds_parse_double(self, input_data, node=None, input_name=""):
351
+ try:
352
+ fval_ = float(input_data)
353
+ except (TypeError, ValueError) as exp:
354
+ raise_parse_error(node, "Requires double or float value: %s" % exp)
355
+ return fval_
356
+
357
+ def gds_validate_double(self, input_data, node=None, input_name=""):
358
+ try:
359
+ value = float(input_data)
360
+ except (TypeError, ValueError):
361
+ raise_parse_error(node, "Requires double or float value")
362
+ return value
363
+
364
+ def gds_format_double_list(self, input_data, input_name=""):
365
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
366
+ input_data = [str(s) for s in input_data]
367
+ return "%s" % " ".join(input_data)
368
+
369
+ def gds_validate_double_list(self, input_data, node=None, input_name=""):
370
+ values = input_data.split()
371
+ for value in values:
372
+ try:
373
+ float(value)
374
+ except (TypeError, ValueError):
375
+ raise_parse_error(
376
+ node, "Requires sequence of double or float values"
377
+ )
378
+ return values
379
+
380
+ def gds_format_boolean(self, input_data, input_name=""):
381
+ return ("%s" % input_data).lower()
382
+
383
+ def gds_parse_boolean(self, input_data, node=None, input_name=""):
384
+ input_data = input_data.strip()
385
+ if input_data in ("true", "1"):
386
+ bval = True
387
+ elif input_data in ("false", "0"):
388
+ bval = False
389
+ else:
390
+ raise_parse_error(node, "Requires boolean value")
391
+ return bval
392
+
393
+ def gds_validate_boolean(self, input_data, node=None, input_name=""):
394
+ if input_data not in (
395
+ True,
396
+ 1,
397
+ False,
398
+ 0,
399
+ ):
400
+ raise_parse_error(
401
+ node, "Requires boolean value " "(one of True, 1, False, 0)"
402
+ )
403
+ return input_data
404
+
405
+ def gds_format_boolean_list(self, input_data, input_name=""):
406
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
407
+ input_data = [str(s) for s in input_data]
408
+ return "%s" % " ".join(input_data)
409
+
410
+ def gds_validate_boolean_list(self, input_data, node=None, input_name=""):
411
+ values = input_data.split()
412
+ for value in values:
413
+ value = self.gds_parse_boolean(value, node, input_name)
414
+ if value not in (
415
+ True,
416
+ 1,
417
+ False,
418
+ 0,
419
+ ):
420
+ raise_parse_error(
421
+ node,
422
+ "Requires sequence of boolean values "
423
+ "(one of True, 1, False, 0)",
424
+ )
425
+ return values
426
+
427
+ def gds_validate_datetime(self, input_data, node=None, input_name=""):
428
+ return input_data
429
+
430
+ def gds_format_datetime(self, input_data, input_name=""):
431
+ if input_data.microsecond == 0:
432
+ _svalue = "%04d-%02d-%02dT%02d:%02d:%02d" % (
433
+ input_data.year,
434
+ input_data.month,
435
+ input_data.day,
436
+ input_data.hour,
437
+ input_data.minute,
438
+ input_data.second,
439
+ )
440
+ else:
441
+ _svalue = "%04d-%02d-%02dT%02d:%02d:%02d.%s" % (
442
+ input_data.year,
443
+ input_data.month,
444
+ input_data.day,
445
+ input_data.hour,
446
+ input_data.minute,
447
+ input_data.second,
448
+ ("%f" % (float(input_data.microsecond) / 1000000))[2:],
449
+ )
450
+ if input_data.tzinfo is not None:
451
+ tzoff = input_data.tzinfo.utcoffset(input_data)
452
+ if tzoff is not None:
453
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
454
+ if total_seconds == 0:
455
+ _svalue += "Z"
456
+ else:
457
+ if total_seconds < 0:
458
+ _svalue += "-"
459
+ total_seconds *= -1
460
+ else:
461
+ _svalue += "+"
462
+ hours = total_seconds // 3600
463
+ minutes = (total_seconds - (hours * 3600)) // 60
464
+ _svalue += "{0:02d}:{1:02d}".format(hours, minutes)
465
+ return _svalue
466
+
467
+ @classmethod
468
+ def gds_parse_datetime(cls, input_data):
469
+ tz = None
470
+ if input_data[-1] == "Z":
471
+ tz = GeneratedsSuper._FixedOffsetTZ(0, "UTC")
472
+ input_data = input_data[:-1]
473
+ else:
474
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
475
+ if results is not None:
476
+ tzoff_parts = results.group(2).split(":")
477
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
478
+ if results.group(1) == "-":
479
+ tzoff *= -1
480
+ tz = GeneratedsSuper._FixedOffsetTZ(tzoff, results.group(0))
481
+ input_data = input_data[:-6]
482
+ time_parts = input_data.split(".")
483
+ if len(time_parts) > 1:
484
+ micro_seconds = int(float("0." + time_parts[1]) * 1000000)
485
+ input_data = "%s.%s" % (
486
+ time_parts[0],
487
+ "{}".format(micro_seconds).rjust(6, "0"),
488
+ )
489
+ dt = datetime_.datetime.strptime(input_data, "%Y-%m-%dT%H:%M:%S.%f")
490
+ else:
491
+ dt = datetime_.datetime.strptime(input_data, "%Y-%m-%dT%H:%M:%S")
492
+ dt = dt.replace(tzinfo=tz)
493
+ return dt
494
+
495
+ def gds_validate_date(self, input_data, node=None, input_name=""):
496
+ return input_data
497
+
498
+ def gds_format_date(self, input_data, input_name=""):
499
+ _svalue = "%04d-%02d-%02d" % (
500
+ input_data.year,
501
+ input_data.month,
502
+ input_data.day,
503
+ )
504
+ try:
505
+ if input_data.tzinfo is not None:
506
+ tzoff = input_data.tzinfo.utcoffset(input_data)
507
+ if tzoff is not None:
508
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
509
+ if total_seconds == 0:
510
+ _svalue += "Z"
511
+ else:
512
+ if total_seconds < 0:
513
+ _svalue += "-"
514
+ total_seconds *= -1
515
+ else:
516
+ _svalue += "+"
517
+ hours = total_seconds // 3600
518
+ minutes = (total_seconds - (hours * 3600)) // 60
519
+ _svalue += "{0:02d}:{1:02d}".format(hours, minutes)
520
+ except AttributeError:
521
+ pass
522
+ return _svalue
523
+
524
+ @classmethod
525
+ def gds_parse_date(cls, input_data):
526
+ tz = None
527
+ if input_data[-1] == "Z":
528
+ tz = GeneratedsSuper._FixedOffsetTZ(0, "UTC")
529
+ input_data = input_data[:-1]
530
+ else:
531
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
532
+ if results is not None:
533
+ tzoff_parts = results.group(2).split(":")
534
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
535
+ if results.group(1) == "-":
536
+ tzoff *= -1
537
+ tz = GeneratedsSuper._FixedOffsetTZ(tzoff, results.group(0))
538
+ input_data = input_data[:-6]
539
+ dt = datetime_.datetime.strptime(input_data, "%Y-%m-%d")
540
+ dt = dt.replace(tzinfo=tz)
541
+ return dt.date()
542
+
543
+ def gds_validate_time(self, input_data, node=None, input_name=""):
544
+ return input_data
545
+
546
+ def gds_format_time(self, input_data, input_name=""):
547
+ if input_data.microsecond == 0:
548
+ _svalue = "%02d:%02d:%02d" % (
549
+ input_data.hour,
550
+ input_data.minute,
551
+ input_data.second,
552
+ )
553
+ else:
554
+ _svalue = "%02d:%02d:%02d.%s" % (
555
+ input_data.hour,
556
+ input_data.minute,
557
+ input_data.second,
558
+ ("%f" % (float(input_data.microsecond) / 1000000))[2:],
559
+ )
560
+ if input_data.tzinfo is not None:
561
+ tzoff = input_data.tzinfo.utcoffset(input_data)
562
+ if tzoff is not None:
563
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
564
+ if total_seconds == 0:
565
+ _svalue += "Z"
566
+ else:
567
+ if total_seconds < 0:
568
+ _svalue += "-"
569
+ total_seconds *= -1
570
+ else:
571
+ _svalue += "+"
572
+ hours = total_seconds // 3600
573
+ minutes = (total_seconds - (hours * 3600)) // 60
574
+ _svalue += "{0:02d}:{1:02d}".format(hours, minutes)
575
+ return _svalue
576
+
577
+ def gds_validate_simple_patterns(self, patterns, target):
578
+ # pat is a list of lists of strings/patterns.
579
+ # The target value must match at least one of the patterns
580
+ # in order for the test to succeed.
581
+ found1 = True
582
+ target = str(target)
583
+ for patterns1 in patterns:
584
+ found2 = False
585
+ for patterns2 in patterns1:
586
+ mo = re_.search(patterns2, target)
587
+ if mo is not None and len(mo.group(0)) == len(target):
588
+ found2 = True
589
+ break
590
+ if not found2:
591
+ found1 = False
592
+ break
593
+ return found1
594
+
595
+ @classmethod
596
+ def gds_parse_time(cls, input_data):
597
+ tz = None
598
+ if input_data[-1] == "Z":
599
+ tz = GeneratedsSuper._FixedOffsetTZ(0, "UTC")
600
+ input_data = input_data[:-1]
601
+ else:
602
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
603
+ if results is not None:
604
+ tzoff_parts = results.group(2).split(":")
605
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
606
+ if results.group(1) == "-":
607
+ tzoff *= -1
608
+ tz = GeneratedsSuper._FixedOffsetTZ(tzoff, results.group(0))
609
+ input_data = input_data[:-6]
610
+ if len(input_data.split(".")) > 1:
611
+ dt = datetime_.datetime.strptime(input_data, "%H:%M:%S.%f")
612
+ else:
613
+ dt = datetime_.datetime.strptime(input_data, "%H:%M:%S")
614
+ dt = dt.replace(tzinfo=tz)
615
+ return dt.time()
616
+
617
+ def gds_check_cardinality_(
618
+ self, value, input_name, min_occurs=0, max_occurs=1, required=None
619
+ ):
620
+ if value is None:
621
+ length = 0
622
+ elif isinstance(value, list):
623
+ length = len(value)
624
+ else:
625
+ length = 1
626
+ if required is not None:
627
+ if required and length < 1:
628
+ self.gds_collector_.add_message(
629
+ "Required value {}{} is missing".format(
630
+ input_name, self.gds_get_node_lineno_()
631
+ )
632
+ )
633
+ if length < min_occurs:
634
+ self.gds_collector_.add_message(
635
+ "Number of values for {}{} is below "
636
+ "the minimum allowed, "
637
+ "expected at least {}, found {}".format(
638
+ input_name, self.gds_get_node_lineno_(), min_occurs, length
639
+ )
640
+ )
641
+ elif length > max_occurs:
642
+ self.gds_collector_.add_message(
643
+ "Number of values for {}{} is above "
644
+ "the maximum allowed, "
645
+ "expected at most {}, found {}".format(
646
+ input_name, self.gds_get_node_lineno_(), max_occurs, length
647
+ )
648
+ )
649
+
650
+ def gds_validate_builtin_ST_(
651
+ self,
652
+ validator,
653
+ value,
654
+ input_name,
655
+ min_occurs=None,
656
+ max_occurs=None,
657
+ required=None,
658
+ ):
659
+ if value is not None:
660
+ try:
661
+ validator(value, input_name=input_name)
662
+ except GDSParseError as parse_error:
663
+ self.gds_collector_.add_message(str(parse_error))
664
+
665
+ def gds_validate_defined_ST_(
666
+ self,
667
+ validator,
668
+ value,
669
+ input_name,
670
+ min_occurs=None,
671
+ max_occurs=None,
672
+ required=None,
673
+ ):
674
+ if value is not None:
675
+ try:
676
+ validator(value)
677
+ except GDSParseError as parse_error:
678
+ self.gds_collector_.add_message(str(parse_error))
679
+
680
+ def gds_str_lower(self, instring):
681
+ return instring.lower()
682
+
683
+ def get_path_(self, node):
684
+ path_list = []
685
+ self.get_path_list_(node, path_list)
686
+ path_list.reverse()
687
+ path = "/".join(path_list)
688
+ return path
689
+
690
+ Tag_strip_pattern_ = re_.compile(r"\{.*\}")
691
+
692
+ def get_path_list_(self, node, path_list):
693
+ if node is None:
694
+ return
695
+ tag = GeneratedsSuper.Tag_strip_pattern_.sub("", node.tag)
696
+ if tag:
697
+ path_list.append(tag)
698
+ self.get_path_list_(node.getparent(), path_list)
699
+
700
+ def get_class_obj_(self, node, default_class=None):
701
+ class_obj1 = default_class
702
+ if "xsi" in node.nsmap:
703
+ classname = node.get("{%s}type" % node.nsmap["xsi"])
704
+ if classname is not None:
705
+ names = classname.split(":")
706
+ if len(names) == 2:
707
+ classname = names[1]
708
+ class_obj2 = globals().get(classname)
709
+ if class_obj2 is not None:
710
+ class_obj1 = class_obj2
711
+ return class_obj1
712
+
713
+ def gds_build_any(self, node, type_name=None):
714
+ # provide default value in case option --disable-xml is used.
715
+ content = ""
716
+ content = etree_.tostring(node, encoding="unicode")
717
+ return content
718
+
719
+ @classmethod
720
+ def gds_reverse_node_mapping(cls, mapping):
721
+ return dict(((v, k) for k, v in mapping.items()))
722
+
723
+ @staticmethod
724
+ def gds_encode(instring):
725
+ if sys.version_info.major == 2:
726
+ if ExternalEncoding:
727
+ encoding = ExternalEncoding
728
+ else:
729
+ encoding = "utf-8"
730
+ return instring.encode(encoding)
731
+ else:
732
+ return instring
733
+
734
+ @staticmethod
735
+ def convert_unicode(instring):
736
+ if isinstance(instring, str):
737
+ result = quote_xml(instring)
738
+ elif sys.version_info.major == 2 and isinstance(instring, unicode):
739
+ result = quote_xml(instring).encode("utf8")
740
+ else:
741
+ result = GeneratedsSuper.gds_encode(str(instring))
742
+ return result
743
+
744
+ def __eq__(self, other):
745
+ def excl_select_objs_(obj):
746
+ return obj[0] != "parent_object_" and obj[0] != "gds_collector_"
747
+
748
+ if type(self) != type(other):
749
+ return False
750
+ return all(
751
+ x == y
752
+ for x, y in zip_longest(
753
+ filter(excl_select_objs_, self.__dict__.items()),
754
+ filter(excl_select_objs_, other.__dict__.items()),
755
+ )
756
+ )
757
+
758
+ def __ne__(self, other):
759
+ return not self.__eq__(other)
760
+
761
+ # Django ETL transform hooks.
762
+ def gds_djo_etl_transform(self):
763
+ pass
764
+
765
+ def gds_djo_etl_transform_db_obj(self, dbobj):
766
+ pass
767
+
768
+ # SQLAlchemy ETL transform hooks.
769
+ def gds_sqa_etl_transform(self):
770
+ return 0, None
771
+
772
+ def gds_sqa_etl_transform_db_obj(self, dbobj):
773
+ pass
774
+
775
+ def gds_get_node_lineno_(self):
776
+ if (
777
+ hasattr(self, "gds_elementtree_node_")
778
+ and self.gds_elementtree_node_ is not None
779
+ ):
780
+ return " near line {}".format(self.gds_elementtree_node_.sourceline)
781
+ else:
782
+ return ""
783
+
784
+ def getSubclassFromModule_(module, class_):
785
+ """Get the subclass of a class from a specific module."""
786
+ name = class_.__name__ + "Sub"
787
+ if hasattr(module, name):
788
+ return getattr(module, name)
789
+ else:
790
+ return None
791
+
792
+
793
+ #
794
+ # If you have installed IPython you can uncomment and use the following.
795
+ # IPython is available from http://ipython.scipy.org/.
796
+ #
797
+
798
+ ## from IPython.Shell import IPShellEmbed
799
+ ## args = ''
800
+ ## ipshell = IPShellEmbed(args,
801
+ ## banner = 'Dropping into IPython',
802
+ ## exit_msg = 'Leaving Interpreter, back to program.')
803
+
804
+ # Then use the following line where and when you want to drop into the
805
+ # IPython shell:
806
+ # ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
807
+
808
+ #
809
+ # Globals
810
+ #
811
+
812
+ ExternalEncoding = ""
813
+ # Set this to false in order to deactivate during export, the use of
814
+ # name space prefixes captured from the input document.
815
+ UseCapturedNS_ = True
816
+ CapturedNsmap_ = {}
817
+ Tag_pattern_ = re_.compile(r"({.*})?(.*)")
818
+ String_cleanup_pat_ = re_.compile(r"[\n\r\s]+")
819
+ Namespace_extract_pat_ = re_.compile(r"{(.*)}(.*)")
820
+ CDATA_pattern_ = re_.compile(r"<!\[CDATA\[.*?\]\]>", re_.DOTALL)
821
+
822
+ # Change this to redirect the generated superclass module to use a
823
+ # specific subclass module.
824
+ CurrentSubclassModule_ = None
825
+
826
+ #
827
+ # Support/utility functions.
828
+ #
829
+
830
+
831
+ def showIndent(outfile, level, pretty_print=True):
832
+ if pretty_print:
833
+ for idx in range(level):
834
+ outfile.write(" ")
835
+
836
+
837
+ def quote_xml(inStr):
838
+ "Escape markup chars, but do not modify CDATA sections."
839
+ if not inStr:
840
+ return ""
841
+ s1 = isinstance(inStr, BaseStrType_) and inStr or "%s" % inStr
842
+ s2 = ""
843
+ pos = 0
844
+ matchobjects = CDATA_pattern_.finditer(s1)
845
+ for mo in matchobjects:
846
+ s3 = s1[pos : mo.start()]
847
+ s2 += quote_xml_aux(s3)
848
+ s2 += s1[mo.start() : mo.end()]
849
+ pos = mo.end()
850
+ s3 = s1[pos:]
851
+ s2 += quote_xml_aux(s3)
852
+ return s2
853
+
854
+
855
+ def quote_xml_aux(inStr):
856
+ s1 = inStr.replace("&", "&amp;")
857
+ s1 = s1.replace("<", "&lt;")
858
+ s1 = s1.replace(">", "&gt;")
859
+ return s1
860
+
861
+
862
+ def quote_attrib(inStr):
863
+ s1 = isinstance(inStr, BaseStrType_) and inStr or "%s" % inStr
864
+ s1 = s1.replace("&", "&amp;")
865
+ s1 = s1.replace("<", "&lt;")
866
+ s1 = s1.replace(">", "&gt;")
867
+ s1 = s1.replace("\n", "&#10;")
868
+ if '"' in s1:
869
+ if "'" in s1:
870
+ s1 = '"%s"' % s1.replace('"', "&quot;")
871
+ else:
872
+ s1 = "'%s'" % s1
873
+ else:
874
+ s1 = '"%s"' % s1
875
+ return s1
876
+
877
+
878
+ def quote_python(inStr):
879
+ s1 = inStr
880
+ if s1.find("'") == -1:
881
+ if s1.find("\n") == -1:
882
+ return "'%s'" % s1
883
+ else:
884
+ return "'''%s'''" % s1
885
+ else:
886
+ if s1.find('"') != -1:
887
+ s1 = s1.replace('"', '\\"')
888
+ if s1.find("\n") == -1:
889
+ return '"%s"' % s1
890
+ else:
891
+ return '"""%s"""' % s1
892
+
893
+
894
+ def get_all_text_(node):
895
+ if node.text is not None:
896
+ text = node.text
897
+ else:
898
+ text = ""
899
+ for child in node:
900
+ if child.tail is not None:
901
+ text += child.tail
902
+ return text
903
+
904
+
905
+ def find_attr_value_(attr_name, node):
906
+ attrs = node.attrib
907
+ attr_parts = attr_name.split(":")
908
+ value = None
909
+ if len(attr_parts) == 1:
910
+ value = attrs.get(attr_name)
911
+ elif len(attr_parts) == 2:
912
+ prefix, name = attr_parts
913
+ if prefix == "xml":
914
+ namespace = "http://www.w3.org/XML/1998/namespace"
915
+ else:
916
+ namespace = node.nsmap.get(prefix)
917
+ if namespace is not None:
918
+ value = attrs.get(
919
+ "{%s}%s"
920
+ % (
921
+ namespace,
922
+ name,
923
+ )
924
+ )
925
+ return value
926
+
927
+
928
+ def encode_str_2_3(instr):
929
+ return instr
930
+
931
+
932
+ class GDSParseError(Exception):
933
+ pass
934
+
935
+
936
+ def raise_parse_error(node, msg):
937
+ if node is not None:
938
+ msg = "%s (element %s/line %d)" % (
939
+ msg,
940
+ node.tag,
941
+ node.sourceline,
942
+ )
943
+ raise GDSParseError(msg)
944
+
945
+
946
+ class MixedContainer:
947
+ # Constants for category:
948
+ CategoryNone = 0
949
+ CategoryText = 1
950
+ CategorySimple = 2
951
+ CategoryComplex = 3
952
+ # Constants for content_type:
953
+ TypeNone = 0
954
+ TypeText = 1
955
+ TypeString = 2
956
+ TypeInteger = 3
957
+ TypeFloat = 4
958
+ TypeDecimal = 5
959
+ TypeDouble = 6
960
+ TypeBoolean = 7
961
+ TypeBase64 = 8
962
+
963
+ def __init__(self, category, content_type, name, value):
964
+ self.category = category
965
+ self.content_type = content_type
966
+ self.name = name
967
+ self.value = value
968
+
969
+ def getCategory(self):
970
+ return self.category
971
+
972
+ def getContenttype(self, content_type):
973
+ return self.content_type
974
+
975
+ def getValue(self):
976
+ return self.value
977
+
978
+ def getName(self):
979
+ return self.name
980
+
981
+ def export(self, outfile, level, name, namespace, pretty_print=True):
982
+ if self.category == MixedContainer.CategoryText:
983
+ # Prevent exporting empty content as empty lines.
984
+ if self.value.strip():
985
+ outfile.write(self.value)
986
+ elif self.category == MixedContainer.CategorySimple:
987
+ self.exportSimple(outfile, level, name)
988
+ else: # category == MixedContainer.CategoryComplex
989
+ self.value.export(
990
+ outfile, level, namespace, name_=name, pretty_print=pretty_print
991
+ )
992
+
993
+ def exportSimple(self, outfile, level, name):
994
+ if self.content_type == MixedContainer.TypeString:
995
+ outfile.write("<%s>%s</%s>" % (self.name, self.value, self.name))
996
+ elif (
997
+ self.content_type == MixedContainer.TypeInteger
998
+ or self.content_type == MixedContainer.TypeBoolean
999
+ ):
1000
+ outfile.write("<%s>%d</%s>" % (self.name, self.value, self.name))
1001
+ elif (
1002
+ self.content_type == MixedContainer.TypeFloat
1003
+ or self.content_type == MixedContainer.TypeDecimal
1004
+ ):
1005
+ outfile.write("<%s>%f</%s>" % (self.name, self.value, self.name))
1006
+ elif self.content_type == MixedContainer.TypeDouble:
1007
+ outfile.write("<%s>%g</%s>" % (self.name, self.value, self.name))
1008
+ elif self.content_type == MixedContainer.TypeBase64:
1009
+ outfile.write(
1010
+ "<%s>%s</%s>" % (self.name, base64.b64encode(self.value), self.name)
1011
+ )
1012
+
1013
+ def to_etree(self, element, mapping_=None, reverse_mapping_=None, nsmap_=None):
1014
+ if self.category == MixedContainer.CategoryText:
1015
+ # Prevent exporting empty content as empty lines.
1016
+ if self.value.strip():
1017
+ if len(element) > 0:
1018
+ if element[-1].tail is None:
1019
+ element[-1].tail = self.value
1020
+ else:
1021
+ element[-1].tail += self.value
1022
+ else:
1023
+ if element.text is None:
1024
+ element.text = self.value
1025
+ else:
1026
+ element.text += self.value
1027
+ elif self.category == MixedContainer.CategorySimple:
1028
+ subelement = etree_.SubElement(element, "%s" % self.name)
1029
+ subelement.text = self.to_etree_simple()
1030
+ else: # category == MixedContainer.CategoryComplex
1031
+ self.value.to_etree(element)
1032
+
1033
+ def to_etree_simple(self, mapping_=None, reverse_mapping_=None, nsmap_=None):
1034
+ if self.content_type == MixedContainer.TypeString:
1035
+ text = self.value
1036
+ elif (
1037
+ self.content_type == MixedContainer.TypeInteger
1038
+ or self.content_type == MixedContainer.TypeBoolean
1039
+ ):
1040
+ text = "%d" % self.value
1041
+ elif (
1042
+ self.content_type == MixedContainer.TypeFloat
1043
+ or self.content_type == MixedContainer.TypeDecimal
1044
+ ):
1045
+ text = "%f" % self.value
1046
+ elif self.content_type == MixedContainer.TypeDouble:
1047
+ text = "%g" % self.value
1048
+ elif self.content_type == MixedContainer.TypeBase64:
1049
+ text = "%s" % base64.b64encode(self.value)
1050
+ return text
1051
+
1052
+ def exportLiteral(self, outfile, level, name):
1053
+ if self.category == MixedContainer.CategoryText:
1054
+ showIndent(outfile, level)
1055
+ outfile.write(
1056
+ 'model_.MixedContainer(%d, %d, "%s", "%s"),\n'
1057
+ % (self.category, self.content_type, self.name, self.value)
1058
+ )
1059
+ elif self.category == MixedContainer.CategorySimple:
1060
+ showIndent(outfile, level)
1061
+ outfile.write(
1062
+ 'model_.MixedContainer(%d, %d, "%s", "%s"),\n'
1063
+ % (self.category, self.content_type, self.name, self.value)
1064
+ )
1065
+ else: # category == MixedContainer.CategoryComplex
1066
+ showIndent(outfile, level)
1067
+ outfile.write(
1068
+ 'model_.MixedContainer(%d, %d, "%s",\n'
1069
+ % (
1070
+ self.category,
1071
+ self.content_type,
1072
+ self.name,
1073
+ )
1074
+ )
1075
+ self.value.exportLiteral(outfile, level + 1)
1076
+ showIndent(outfile, level)
1077
+ outfile.write(")\n")
1078
+
1079
+
1080
+ class MemberSpec_(object):
1081
+ def __init__(
1082
+ self,
1083
+ name="",
1084
+ data_type="",
1085
+ container=0,
1086
+ optional=0,
1087
+ child_attrs=None,
1088
+ choice=None,
1089
+ ):
1090
+ self.name = name
1091
+ self.data_type = data_type
1092
+ self.container = container
1093
+ self.child_attrs = child_attrs
1094
+ self.choice = choice
1095
+ self.optional = optional
1096
+
1097
+ def set_name(self, name):
1098
+ self.name = name
1099
+
1100
+ def get_name(self):
1101
+ return self.name
1102
+
1103
+ def set_data_type(self, data_type):
1104
+ self.data_type = data_type
1105
+
1106
+ def get_data_type_chain(self):
1107
+ return self.data_type
1108
+
1109
+ def get_data_type(self):
1110
+ if isinstance(self.data_type, list):
1111
+ if len(self.data_type) > 0:
1112
+ return self.data_type[-1]
1113
+ else:
1114
+ return "xs:string"
1115
+ else:
1116
+ return self.data_type
1117
+
1118
+ def set_container(self, container):
1119
+ self.container = container
1120
+
1121
+ def get_container(self):
1122
+ return self.container
1123
+
1124
+ def set_child_attrs(self, child_attrs):
1125
+ self.child_attrs = child_attrs
1126
+
1127
+ def get_child_attrs(self):
1128
+ return self.child_attrs
1129
+
1130
+ def set_choice(self, choice):
1131
+ self.choice = choice
1132
+
1133
+ def get_choice(self):
1134
+ return self.choice
1135
+
1136
+ def set_optional(self, optional):
1137
+ self.optional = optional
1138
+
1139
+ def get_optional(self):
1140
+ return self.optional
1141
+
1142
+
1143
+ def _cast(typ, value):
1144
+ if typ is None or value is None:
1145
+ return value
1146
+ return typ(value)
1147
+
1148
+
1149
+ #
1150
+ # Data representation classes.
1151
+ #
1152
+
1153
+
1154
+ class Freightcom(GeneratedsSuper):
1155
+ __hash__ = GeneratedsSuper.__hash__
1156
+ subclass = None
1157
+ superclass = None
1158
+
1159
+ def __init__(
1160
+ self, version=None, ShippingReply=None, gds_collector_=None, **kwargs_
1161
+ ):
1162
+ self.gds_collector_ = gds_collector_
1163
+ self.gds_elementtree_node_ = None
1164
+ self.original_tagname_ = None
1165
+ self.parent_object_ = kwargs_.get("parent_object_")
1166
+ self.ns_prefix_ = None
1167
+ self.version = _cast(None, version)
1168
+ self.version_nsprefix_ = None
1169
+ self.ShippingReply = ShippingReply
1170
+ self.ShippingReply_nsprefix_ = None
1171
+
1172
+ def factory(*args_, **kwargs_):
1173
+ if CurrentSubclassModule_ is not None:
1174
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, Freightcom)
1175
+ if subclass is not None:
1176
+ return subclass(*args_, **kwargs_)
1177
+ if Freightcom.subclass:
1178
+ return Freightcom.subclass(*args_, **kwargs_)
1179
+ else:
1180
+ return Freightcom(*args_, **kwargs_)
1181
+
1182
+ factory = staticmethod(factory)
1183
+
1184
+ def get_ns_prefix_(self):
1185
+ return self.ns_prefix_
1186
+
1187
+ def set_ns_prefix_(self, ns_prefix):
1188
+ self.ns_prefix_ = ns_prefix
1189
+
1190
+ def get_ShippingReply(self):
1191
+ return self.ShippingReply
1192
+
1193
+ def set_ShippingReply(self, ShippingReply):
1194
+ self.ShippingReply = ShippingReply
1195
+
1196
+ def get_version(self):
1197
+ return self.version
1198
+
1199
+ def set_version(self, version):
1200
+ self.version = version
1201
+
1202
+ def _hasContent(self):
1203
+ if self.ShippingReply is not None:
1204
+ return True
1205
+ else:
1206
+ return False
1207
+
1208
+ def export(
1209
+ self,
1210
+ outfile,
1211
+ level,
1212
+ namespaceprefix_="",
1213
+ namespacedef_="",
1214
+ name_="Freightcom",
1215
+ pretty_print=True,
1216
+ ):
1217
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("Freightcom")
1218
+ if imported_ns_def_ is not None:
1219
+ namespacedef_ = imported_ns_def_
1220
+ if pretty_print:
1221
+ eol_ = "\n"
1222
+ else:
1223
+ eol_ = ""
1224
+ if self.original_tagname_ is not None and name_ == "Freightcom":
1225
+ name_ = self.original_tagname_
1226
+ if UseCapturedNS_ and self.ns_prefix_:
1227
+ namespaceprefix_ = self.ns_prefix_ + ":"
1228
+ showIndent(outfile, level, pretty_print)
1229
+ outfile.write(
1230
+ "<%s%s%s"
1231
+ % (
1232
+ namespaceprefix_,
1233
+ name_,
1234
+ namespacedef_ and " " + namespacedef_ or "",
1235
+ )
1236
+ )
1237
+ already_processed = set()
1238
+ self._exportAttributes(
1239
+ outfile, level, already_processed, namespaceprefix_, name_="Freightcom"
1240
+ )
1241
+ if self._hasContent():
1242
+ outfile.write(">%s" % (eol_,))
1243
+ self._exportChildren(
1244
+ outfile,
1245
+ level + 1,
1246
+ namespaceprefix_,
1247
+ namespacedef_,
1248
+ name_="Freightcom",
1249
+ pretty_print=pretty_print,
1250
+ )
1251
+ showIndent(outfile, level, pretty_print)
1252
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
1253
+ else:
1254
+ outfile.write("/>%s" % (eol_,))
1255
+
1256
+ def _exportAttributes(
1257
+ self, outfile, level, already_processed, namespaceprefix_="", name_="Freightcom"
1258
+ ):
1259
+ if self.version is not None and "version" not in already_processed:
1260
+ already_processed.add("version")
1261
+ outfile.write(
1262
+ " version=%s"
1263
+ % (
1264
+ self.gds_encode(
1265
+ self.gds_format_string(
1266
+ quote_attrib(self.version), input_name="version"
1267
+ )
1268
+ ),
1269
+ )
1270
+ )
1271
+
1272
+ def _exportChildren(
1273
+ self,
1274
+ outfile,
1275
+ level,
1276
+ namespaceprefix_="",
1277
+ namespacedef_="",
1278
+ name_="Freightcom",
1279
+ fromsubclass_=False,
1280
+ pretty_print=True,
1281
+ ):
1282
+ if pretty_print:
1283
+ eol_ = "\n"
1284
+ else:
1285
+ eol_ = ""
1286
+ if self.ShippingReply is not None:
1287
+ namespaceprefix_ = (
1288
+ self.ShippingReply_nsprefix_ + ":"
1289
+ if (UseCapturedNS_ and self.ShippingReply_nsprefix_)
1290
+ else ""
1291
+ )
1292
+ self.ShippingReply.export(
1293
+ outfile,
1294
+ level,
1295
+ namespaceprefix_,
1296
+ namespacedef_="",
1297
+ name_="ShippingReply",
1298
+ pretty_print=pretty_print,
1299
+ )
1300
+
1301
+ def build(self, node, gds_collector_=None):
1302
+ self.gds_collector_ = gds_collector_
1303
+ if SaveElementTreeNode:
1304
+ self.gds_elementtree_node_ = node
1305
+ already_processed = set()
1306
+ self.ns_prefix_ = node.prefix
1307
+ self._buildAttributes(node, node.attrib, already_processed)
1308
+ for child in node:
1309
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1310
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1311
+ return self
1312
+
1313
+ def _buildAttributes(self, node, attrs, already_processed):
1314
+ value = find_attr_value_("version", node)
1315
+ if value is not None and "version" not in already_processed:
1316
+ already_processed.add("version")
1317
+ self.version = value
1318
+
1319
+ def _buildChildren(
1320
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
1321
+ ):
1322
+ if nodeName_ == "ShippingReply":
1323
+ obj_ = ShippingReplyType.factory(parent_object_=self)
1324
+ obj_.build(child_, gds_collector_=gds_collector_)
1325
+ self.ShippingReply = obj_
1326
+ obj_.original_tagname_ = "ShippingReply"
1327
+
1328
+
1329
+ # end class Freightcom
1330
+
1331
+
1332
+ class ShippingReplyType(GeneratedsSuper):
1333
+ __hash__ = GeneratedsSuper.__hash__
1334
+ subclass = None
1335
+ superclass = None
1336
+
1337
+ def __init__(
1338
+ self,
1339
+ Order=None,
1340
+ Carrier=None,
1341
+ Reference=None,
1342
+ Package=None,
1343
+ Pickup=None,
1344
+ TrackingURL=None,
1345
+ Labels=None,
1346
+ CustomsInvoice=None,
1347
+ LabelData=None,
1348
+ Quote=None,
1349
+ BillingAddress=None,
1350
+ gds_collector_=None,
1351
+ **kwargs_
1352
+ ):
1353
+ self.gds_collector_ = gds_collector_
1354
+ self.gds_elementtree_node_ = None
1355
+ self.original_tagname_ = None
1356
+ self.parent_object_ = kwargs_.get("parent_object_")
1357
+ self.ns_prefix_ = None
1358
+ self.Order = Order
1359
+ self.Order_nsprefix_ = None
1360
+ self.Carrier = Carrier
1361
+ self.Carrier_nsprefix_ = None
1362
+ self.Reference = Reference
1363
+ self.Reference_nsprefix_ = None
1364
+ if Package is None:
1365
+ self.Package = []
1366
+ else:
1367
+ self.Package = Package
1368
+ self.Package_nsprefix_ = None
1369
+ self.Pickup = Pickup
1370
+ self.Pickup_nsprefix_ = None
1371
+ self.TrackingURL = TrackingURL
1372
+ self.TrackingURL_nsprefix_ = None
1373
+ self.Labels = Labels
1374
+ self.Labels_nsprefix_ = None
1375
+ self.CustomsInvoice = CustomsInvoice
1376
+ self.CustomsInvoice_nsprefix_ = None
1377
+ self.LabelData = LabelData
1378
+ self.LabelData_nsprefix_ = None
1379
+ self.Quote = Quote
1380
+ self.Quote_nsprefix_ = None
1381
+ self.BillingAddress = BillingAddress
1382
+ self.BillingAddress_nsprefix_ = None
1383
+
1384
+ def factory(*args_, **kwargs_):
1385
+ if CurrentSubclassModule_ is not None:
1386
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, ShippingReplyType)
1387
+ if subclass is not None:
1388
+ return subclass(*args_, **kwargs_)
1389
+ if ShippingReplyType.subclass:
1390
+ return ShippingReplyType.subclass(*args_, **kwargs_)
1391
+ else:
1392
+ return ShippingReplyType(*args_, **kwargs_)
1393
+
1394
+ factory = staticmethod(factory)
1395
+
1396
+ def get_ns_prefix_(self):
1397
+ return self.ns_prefix_
1398
+
1399
+ def set_ns_prefix_(self, ns_prefix):
1400
+ self.ns_prefix_ = ns_prefix
1401
+
1402
+ def get_Order(self):
1403
+ return self.Order
1404
+
1405
+ def set_Order(self, Order):
1406
+ self.Order = Order
1407
+
1408
+ def get_Carrier(self):
1409
+ return self.Carrier
1410
+
1411
+ def set_Carrier(self, Carrier):
1412
+ self.Carrier = Carrier
1413
+
1414
+ def get_Reference(self):
1415
+ return self.Reference
1416
+
1417
+ def set_Reference(self, Reference):
1418
+ self.Reference = Reference
1419
+
1420
+ def get_Package(self):
1421
+ return self.Package
1422
+
1423
+ def set_Package(self, Package):
1424
+ self.Package = Package
1425
+
1426
+ def add_Package(self, value):
1427
+ self.Package.append(value)
1428
+
1429
+ def insert_Package_at(self, index, value):
1430
+ self.Package.insert(index, value)
1431
+
1432
+ def replace_Package_at(self, index, value):
1433
+ self.Package[index] = value
1434
+
1435
+ def get_Pickup(self):
1436
+ return self.Pickup
1437
+
1438
+ def set_Pickup(self, Pickup):
1439
+ self.Pickup = Pickup
1440
+
1441
+ def get_TrackingURL(self):
1442
+ return self.TrackingURL
1443
+
1444
+ def set_TrackingURL(self, TrackingURL):
1445
+ self.TrackingURL = TrackingURL
1446
+
1447
+ def get_Labels(self):
1448
+ return self.Labels
1449
+
1450
+ def set_Labels(self, Labels):
1451
+ self.Labels = Labels
1452
+
1453
+ def get_CustomsInvoice(self):
1454
+ return self.CustomsInvoice
1455
+
1456
+ def set_CustomsInvoice(self, CustomsInvoice):
1457
+ self.CustomsInvoice = CustomsInvoice
1458
+
1459
+ def get_LabelData(self):
1460
+ return self.LabelData
1461
+
1462
+ def set_LabelData(self, LabelData):
1463
+ self.LabelData = LabelData
1464
+
1465
+ def get_Quote(self):
1466
+ return self.Quote
1467
+
1468
+ def set_Quote(self, Quote):
1469
+ self.Quote = Quote
1470
+
1471
+ def get_BillingAddress(self):
1472
+ return self.BillingAddress
1473
+
1474
+ def set_BillingAddress(self, BillingAddress):
1475
+ self.BillingAddress = BillingAddress
1476
+
1477
+ def _hasContent(self):
1478
+ if (
1479
+ self.Order is not None
1480
+ or self.Carrier is not None
1481
+ or self.Reference is not None
1482
+ or self.Package
1483
+ or self.Pickup is not None
1484
+ or self.TrackingURL is not None
1485
+ or self.Labels is not None
1486
+ or self.CustomsInvoice is not None
1487
+ or self.LabelData is not None
1488
+ or self.Quote is not None
1489
+ or self.BillingAddress is not None
1490
+ ):
1491
+ return True
1492
+ else:
1493
+ return False
1494
+
1495
+ def export(
1496
+ self,
1497
+ outfile,
1498
+ level,
1499
+ namespaceprefix_="",
1500
+ namespacedef_="",
1501
+ name_="ShippingReplyType",
1502
+ pretty_print=True,
1503
+ ):
1504
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("ShippingReplyType")
1505
+ if imported_ns_def_ is not None:
1506
+ namespacedef_ = imported_ns_def_
1507
+ if pretty_print:
1508
+ eol_ = "\n"
1509
+ else:
1510
+ eol_ = ""
1511
+ if self.original_tagname_ is not None and name_ == "ShippingReplyType":
1512
+ name_ = self.original_tagname_
1513
+ if UseCapturedNS_ and self.ns_prefix_:
1514
+ namespaceprefix_ = self.ns_prefix_ + ":"
1515
+ showIndent(outfile, level, pretty_print)
1516
+ outfile.write(
1517
+ "<%s%s%s"
1518
+ % (
1519
+ namespaceprefix_,
1520
+ name_,
1521
+ namespacedef_ and " " + namespacedef_ or "",
1522
+ )
1523
+ )
1524
+ already_processed = set()
1525
+ self._exportAttributes(
1526
+ outfile,
1527
+ level,
1528
+ already_processed,
1529
+ namespaceprefix_,
1530
+ name_="ShippingReplyType",
1531
+ )
1532
+ if self._hasContent():
1533
+ outfile.write(">%s" % (eol_,))
1534
+ self._exportChildren(
1535
+ outfile,
1536
+ level + 1,
1537
+ namespaceprefix_,
1538
+ namespacedef_,
1539
+ name_="ShippingReplyType",
1540
+ pretty_print=pretty_print,
1541
+ )
1542
+ showIndent(outfile, level, pretty_print)
1543
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
1544
+ else:
1545
+ outfile.write("/>%s" % (eol_,))
1546
+
1547
+ def _exportAttributes(
1548
+ self,
1549
+ outfile,
1550
+ level,
1551
+ already_processed,
1552
+ namespaceprefix_="",
1553
+ name_="ShippingReplyType",
1554
+ ):
1555
+ pass
1556
+
1557
+ def _exportChildren(
1558
+ self,
1559
+ outfile,
1560
+ level,
1561
+ namespaceprefix_="",
1562
+ namespacedef_="",
1563
+ name_="ShippingReplyType",
1564
+ fromsubclass_=False,
1565
+ pretty_print=True,
1566
+ ):
1567
+ if pretty_print:
1568
+ eol_ = "\n"
1569
+ else:
1570
+ eol_ = ""
1571
+ if self.Order is not None:
1572
+ namespaceprefix_ = (
1573
+ self.Order_nsprefix_ + ":"
1574
+ if (UseCapturedNS_ and self.Order_nsprefix_)
1575
+ else ""
1576
+ )
1577
+ self.Order.export(
1578
+ outfile,
1579
+ level,
1580
+ namespaceprefix_,
1581
+ namespacedef_="",
1582
+ name_="Order",
1583
+ pretty_print=pretty_print,
1584
+ )
1585
+ if self.Carrier is not None:
1586
+ namespaceprefix_ = (
1587
+ self.Carrier_nsprefix_ + ":"
1588
+ if (UseCapturedNS_ and self.Carrier_nsprefix_)
1589
+ else ""
1590
+ )
1591
+ self.Carrier.export(
1592
+ outfile,
1593
+ level,
1594
+ namespaceprefix_,
1595
+ namespacedef_="",
1596
+ name_="Carrier",
1597
+ pretty_print=pretty_print,
1598
+ )
1599
+ if self.Reference is not None:
1600
+ namespaceprefix_ = (
1601
+ self.Reference_nsprefix_ + ":"
1602
+ if (UseCapturedNS_ and self.Reference_nsprefix_)
1603
+ else ""
1604
+ )
1605
+ self.Reference.export(
1606
+ outfile,
1607
+ level,
1608
+ namespaceprefix_,
1609
+ namespacedef_="",
1610
+ name_="Reference",
1611
+ pretty_print=pretty_print,
1612
+ )
1613
+ for Package_ in self.Package:
1614
+ namespaceprefix_ = (
1615
+ self.Package_nsprefix_ + ":"
1616
+ if (UseCapturedNS_ and self.Package_nsprefix_)
1617
+ else ""
1618
+ )
1619
+ Package_.export(
1620
+ outfile,
1621
+ level,
1622
+ namespaceprefix_,
1623
+ namespacedef_="",
1624
+ name_="Package",
1625
+ pretty_print=pretty_print,
1626
+ )
1627
+ if self.Pickup is not None:
1628
+ namespaceprefix_ = (
1629
+ self.Pickup_nsprefix_ + ":"
1630
+ if (UseCapturedNS_ and self.Pickup_nsprefix_)
1631
+ else ""
1632
+ )
1633
+ self.Pickup.export(
1634
+ outfile,
1635
+ level,
1636
+ namespaceprefix_,
1637
+ namespacedef_="",
1638
+ name_="Pickup",
1639
+ pretty_print=pretty_print,
1640
+ )
1641
+ if self.TrackingURL is not None:
1642
+ namespaceprefix_ = (
1643
+ self.TrackingURL_nsprefix_ + ":"
1644
+ if (UseCapturedNS_ and self.TrackingURL_nsprefix_)
1645
+ else ""
1646
+ )
1647
+ showIndent(outfile, level, pretty_print)
1648
+ outfile.write(
1649
+ "<%sTrackingURL>%s</%sTrackingURL>%s"
1650
+ % (
1651
+ namespaceprefix_,
1652
+ self.gds_encode(
1653
+ self.gds_format_string(
1654
+ quote_xml(self.TrackingURL), input_name="TrackingURL"
1655
+ )
1656
+ ),
1657
+ namespaceprefix_,
1658
+ eol_,
1659
+ )
1660
+ )
1661
+ if self.Labels is not None:
1662
+ namespaceprefix_ = (
1663
+ self.Labels_nsprefix_ + ":"
1664
+ if (UseCapturedNS_ and self.Labels_nsprefix_)
1665
+ else ""
1666
+ )
1667
+ showIndent(outfile, level, pretty_print)
1668
+ outfile.write(
1669
+ "<%sLabels>%s</%sLabels>%s"
1670
+ % (
1671
+ namespaceprefix_,
1672
+ self.gds_encode(
1673
+ self.gds_format_string(
1674
+ quote_xml(self.Labels), input_name="Labels"
1675
+ )
1676
+ ),
1677
+ namespaceprefix_,
1678
+ eol_,
1679
+ )
1680
+ )
1681
+ if self.CustomsInvoice is not None:
1682
+ namespaceprefix_ = (
1683
+ self.CustomsInvoice_nsprefix_ + ":"
1684
+ if (UseCapturedNS_ and self.CustomsInvoice_nsprefix_)
1685
+ else ""
1686
+ )
1687
+ showIndent(outfile, level, pretty_print)
1688
+ outfile.write(
1689
+ "<%sCustomsInvoice>%s</%sCustomsInvoice>%s"
1690
+ % (
1691
+ namespaceprefix_,
1692
+ self.gds_encode(
1693
+ self.gds_format_string(
1694
+ quote_xml(self.CustomsInvoice), input_name="CustomsInvoice"
1695
+ )
1696
+ ),
1697
+ namespaceprefix_,
1698
+ eol_,
1699
+ )
1700
+ )
1701
+ if self.LabelData is not None:
1702
+ namespaceprefix_ = (
1703
+ self.LabelData_nsprefix_ + ":"
1704
+ if (UseCapturedNS_ and self.LabelData_nsprefix_)
1705
+ else ""
1706
+ )
1707
+ self.LabelData.export(
1708
+ outfile,
1709
+ level,
1710
+ namespaceprefix_,
1711
+ namespacedef_="",
1712
+ name_="LabelData",
1713
+ pretty_print=pretty_print,
1714
+ )
1715
+ if self.Quote is not None:
1716
+ namespaceprefix_ = (
1717
+ self.Quote_nsprefix_ + ":"
1718
+ if (UseCapturedNS_ and self.Quote_nsprefix_)
1719
+ else ""
1720
+ )
1721
+ self.Quote.export(
1722
+ outfile,
1723
+ level,
1724
+ namespaceprefix_,
1725
+ namespacedef_="",
1726
+ name_="Quote",
1727
+ pretty_print=pretty_print,
1728
+ )
1729
+ if self.BillingAddress is not None:
1730
+ namespaceprefix_ = (
1731
+ self.BillingAddress_nsprefix_ + ":"
1732
+ if (UseCapturedNS_ and self.BillingAddress_nsprefix_)
1733
+ else ""
1734
+ )
1735
+ self.BillingAddress.export(
1736
+ outfile,
1737
+ level,
1738
+ namespaceprefix_,
1739
+ namespacedef_="",
1740
+ name_="BillingAddress",
1741
+ pretty_print=pretty_print,
1742
+ )
1743
+
1744
+ def build(self, node, gds_collector_=None):
1745
+ self.gds_collector_ = gds_collector_
1746
+ if SaveElementTreeNode:
1747
+ self.gds_elementtree_node_ = node
1748
+ already_processed = set()
1749
+ self.ns_prefix_ = node.prefix
1750
+ self._buildAttributes(node, node.attrib, already_processed)
1751
+ for child in node:
1752
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1753
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1754
+ return self
1755
+
1756
+ def _buildAttributes(self, node, attrs, already_processed):
1757
+ pass
1758
+
1759
+ def _buildChildren(
1760
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
1761
+ ):
1762
+ if nodeName_ == "Order":
1763
+ obj_ = OrderType.factory(parent_object_=self)
1764
+ obj_.build(child_, gds_collector_=gds_collector_)
1765
+ self.Order = obj_
1766
+ obj_.original_tagname_ = "Order"
1767
+ elif nodeName_ == "Carrier":
1768
+ obj_ = CarrierType.factory(parent_object_=self)
1769
+ obj_.build(child_, gds_collector_=gds_collector_)
1770
+ self.Carrier = obj_
1771
+ obj_.original_tagname_ = "Carrier"
1772
+ elif nodeName_ == "Reference":
1773
+ obj_ = ReferenceType.factory(parent_object_=self)
1774
+ obj_.build(child_, gds_collector_=gds_collector_)
1775
+ self.Reference = obj_
1776
+ obj_.original_tagname_ = "Reference"
1777
+ elif nodeName_ == "Package":
1778
+ obj_ = PackageType.factory(parent_object_=self)
1779
+ obj_.build(child_, gds_collector_=gds_collector_)
1780
+ self.Package.append(obj_)
1781
+ obj_.original_tagname_ = "Package"
1782
+ elif nodeName_ == "Pickup":
1783
+ obj_ = PickupType.factory(parent_object_=self)
1784
+ obj_.build(child_, gds_collector_=gds_collector_)
1785
+ self.Pickup = obj_
1786
+ obj_.original_tagname_ = "Pickup"
1787
+ elif nodeName_ == "TrackingURL":
1788
+ value_ = child_.text
1789
+ value_ = self.gds_parse_string(value_, node, "TrackingURL")
1790
+ value_ = self.gds_validate_string(value_, node, "TrackingURL")
1791
+ self.TrackingURL = value_
1792
+ self.TrackingURL_nsprefix_ = child_.prefix
1793
+ elif nodeName_ == "Labels":
1794
+ value_ = child_.text
1795
+ value_ = self.gds_parse_string(value_, node, "Labels")
1796
+ value_ = self.gds_validate_string(value_, node, "Labels")
1797
+ self.Labels = value_
1798
+ self.Labels_nsprefix_ = child_.prefix
1799
+ elif nodeName_ == "CustomsInvoice":
1800
+ value_ = child_.text
1801
+ value_ = self.gds_parse_string(value_, node, "CustomsInvoice")
1802
+ value_ = self.gds_validate_string(value_, node, "CustomsInvoice")
1803
+ self.CustomsInvoice = value_
1804
+ self.CustomsInvoice_nsprefix_ = child_.prefix
1805
+ elif nodeName_ == "LabelData":
1806
+ obj_ = LabelDataType.factory(parent_object_=self)
1807
+ obj_.build(child_, gds_collector_=gds_collector_)
1808
+ self.LabelData = obj_
1809
+ obj_.original_tagname_ = "LabelData"
1810
+ elif nodeName_ == "Quote":
1811
+ obj_ = QuoteType.factory(parent_object_=self)
1812
+ obj_.build(child_, gds_collector_=gds_collector_)
1813
+ self.Quote = obj_
1814
+ obj_.original_tagname_ = "Quote"
1815
+ elif nodeName_ == "BillingAddress":
1816
+ obj_ = BillingAddressType.factory(parent_object_=self)
1817
+ obj_.build(child_, gds_collector_=gds_collector_)
1818
+ self.BillingAddress = obj_
1819
+ obj_.original_tagname_ = "BillingAddress"
1820
+
1821
+
1822
+ # end class ShippingReplyType
1823
+
1824
+
1825
+ class OrderType(GeneratedsSuper):
1826
+ __hash__ = GeneratedsSuper.__hash__
1827
+ subclass = None
1828
+ superclass = None
1829
+
1830
+ def __init__(self, id=None, valueOf_=None, gds_collector_=None, **kwargs_):
1831
+ self.gds_collector_ = gds_collector_
1832
+ self.gds_elementtree_node_ = None
1833
+ self.original_tagname_ = None
1834
+ self.parent_object_ = kwargs_.get("parent_object_")
1835
+ self.ns_prefix_ = None
1836
+ self.id = _cast(None, id)
1837
+ self.id_nsprefix_ = None
1838
+ self.valueOf_ = valueOf_
1839
+
1840
+ def factory(*args_, **kwargs_):
1841
+ if CurrentSubclassModule_ is not None:
1842
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, OrderType)
1843
+ if subclass is not None:
1844
+ return subclass(*args_, **kwargs_)
1845
+ if OrderType.subclass:
1846
+ return OrderType.subclass(*args_, **kwargs_)
1847
+ else:
1848
+ return OrderType(*args_, **kwargs_)
1849
+
1850
+ factory = staticmethod(factory)
1851
+
1852
+ def get_ns_prefix_(self):
1853
+ return self.ns_prefix_
1854
+
1855
+ def set_ns_prefix_(self, ns_prefix):
1856
+ self.ns_prefix_ = ns_prefix
1857
+
1858
+ def get_id(self):
1859
+ return self.id
1860
+
1861
+ def set_id(self, id):
1862
+ self.id = id
1863
+
1864
+ def get_valueOf_(self):
1865
+ return self.valueOf_
1866
+
1867
+ def set_valueOf_(self, valueOf_):
1868
+ self.valueOf_ = valueOf_
1869
+
1870
+ def _hasContent(self):
1871
+ if 1 if type(self.valueOf_) in [int, float] else self.valueOf_:
1872
+ return True
1873
+ else:
1874
+ return False
1875
+
1876
+ def export(
1877
+ self,
1878
+ outfile,
1879
+ level,
1880
+ namespaceprefix_="",
1881
+ namespacedef_="",
1882
+ name_="OrderType",
1883
+ pretty_print=True,
1884
+ ):
1885
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("OrderType")
1886
+ if imported_ns_def_ is not None:
1887
+ namespacedef_ = imported_ns_def_
1888
+ if pretty_print:
1889
+ eol_ = "\n"
1890
+ else:
1891
+ eol_ = ""
1892
+ if self.original_tagname_ is not None and name_ == "OrderType":
1893
+ name_ = self.original_tagname_
1894
+ if UseCapturedNS_ and self.ns_prefix_:
1895
+ namespaceprefix_ = self.ns_prefix_ + ":"
1896
+ showIndent(outfile, level, pretty_print)
1897
+ outfile.write(
1898
+ "<%s%s%s"
1899
+ % (
1900
+ namespaceprefix_,
1901
+ name_,
1902
+ namespacedef_ and " " + namespacedef_ or "",
1903
+ )
1904
+ )
1905
+ already_processed = set()
1906
+ self._exportAttributes(
1907
+ outfile, level, already_processed, namespaceprefix_, name_="OrderType"
1908
+ )
1909
+ if self._hasContent():
1910
+ outfile.write(">")
1911
+ outfile.write(self.convert_unicode(self.valueOf_))
1912
+ self._exportChildren(
1913
+ outfile,
1914
+ level + 1,
1915
+ namespaceprefix_,
1916
+ namespacedef_,
1917
+ name_="OrderType",
1918
+ pretty_print=pretty_print,
1919
+ )
1920
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
1921
+ else:
1922
+ outfile.write("/>%s" % (eol_,))
1923
+
1924
+ def _exportAttributes(
1925
+ self, outfile, level, already_processed, namespaceprefix_="", name_="OrderType"
1926
+ ):
1927
+ if self.id is not None and "id" not in already_processed:
1928
+ already_processed.add("id")
1929
+ outfile.write(
1930
+ " id=%s"
1931
+ % (
1932
+ self.gds_encode(
1933
+ self.gds_format_string(quote_attrib(self.id), input_name="id")
1934
+ ),
1935
+ )
1936
+ )
1937
+
1938
+ def _exportChildren(
1939
+ self,
1940
+ outfile,
1941
+ level,
1942
+ namespaceprefix_="",
1943
+ namespacedef_="",
1944
+ name_="OrderType",
1945
+ fromsubclass_=False,
1946
+ pretty_print=True,
1947
+ ):
1948
+ pass
1949
+
1950
+ def build(self, node, gds_collector_=None):
1951
+ self.gds_collector_ = gds_collector_
1952
+ if SaveElementTreeNode:
1953
+ self.gds_elementtree_node_ = node
1954
+ already_processed = set()
1955
+ self.ns_prefix_ = node.prefix
1956
+ self._buildAttributes(node, node.attrib, already_processed)
1957
+ self.valueOf_ = get_all_text_(node)
1958
+ for child in node:
1959
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1960
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1961
+ return self
1962
+
1963
+ def _buildAttributes(self, node, attrs, already_processed):
1964
+ value = find_attr_value_("id", node)
1965
+ if value is not None and "id" not in already_processed:
1966
+ already_processed.add("id")
1967
+ self.id = value
1968
+
1969
+ def _buildChildren(
1970
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
1971
+ ):
1972
+ pass
1973
+
1974
+
1975
+ # end class OrderType
1976
+
1977
+
1978
+ class CarrierType(GeneratedsSuper):
1979
+ __hash__ = GeneratedsSuper.__hash__
1980
+ subclass = None
1981
+ superclass = None
1982
+
1983
+ def __init__(
1984
+ self,
1985
+ carrierName=None,
1986
+ serviceName=None,
1987
+ SCAC=None,
1988
+ valueOf_=None,
1989
+ gds_collector_=None,
1990
+ **kwargs_
1991
+ ):
1992
+ self.gds_collector_ = gds_collector_
1993
+ self.gds_elementtree_node_ = None
1994
+ self.original_tagname_ = None
1995
+ self.parent_object_ = kwargs_.get("parent_object_")
1996
+ self.ns_prefix_ = None
1997
+ self.carrierName = _cast(None, carrierName)
1998
+ self.carrierName_nsprefix_ = None
1999
+ self.serviceName = _cast(None, serviceName)
2000
+ self.serviceName_nsprefix_ = None
2001
+ self.SCAC = _cast(None, SCAC)
2002
+ self.SCAC_nsprefix_ = None
2003
+ self.valueOf_ = valueOf_
2004
+
2005
+ def factory(*args_, **kwargs_):
2006
+ if CurrentSubclassModule_ is not None:
2007
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, CarrierType)
2008
+ if subclass is not None:
2009
+ return subclass(*args_, **kwargs_)
2010
+ if CarrierType.subclass:
2011
+ return CarrierType.subclass(*args_, **kwargs_)
2012
+ else:
2013
+ return CarrierType(*args_, **kwargs_)
2014
+
2015
+ factory = staticmethod(factory)
2016
+
2017
+ def get_ns_prefix_(self):
2018
+ return self.ns_prefix_
2019
+
2020
+ def set_ns_prefix_(self, ns_prefix):
2021
+ self.ns_prefix_ = ns_prefix
2022
+
2023
+ def get_carrierName(self):
2024
+ return self.carrierName
2025
+
2026
+ def set_carrierName(self, carrierName):
2027
+ self.carrierName = carrierName
2028
+
2029
+ def get_serviceName(self):
2030
+ return self.serviceName
2031
+
2032
+ def set_serviceName(self, serviceName):
2033
+ self.serviceName = serviceName
2034
+
2035
+ def get_SCAC(self):
2036
+ return self.SCAC
2037
+
2038
+ def set_SCAC(self, SCAC):
2039
+ self.SCAC = SCAC
2040
+
2041
+ def get_valueOf_(self):
2042
+ return self.valueOf_
2043
+
2044
+ def set_valueOf_(self, valueOf_):
2045
+ self.valueOf_ = valueOf_
2046
+
2047
+ def _hasContent(self):
2048
+ if 1 if type(self.valueOf_) in [int, float] else self.valueOf_:
2049
+ return True
2050
+ else:
2051
+ return False
2052
+
2053
+ def export(
2054
+ self,
2055
+ outfile,
2056
+ level,
2057
+ namespaceprefix_="",
2058
+ namespacedef_="",
2059
+ name_="CarrierType",
2060
+ pretty_print=True,
2061
+ ):
2062
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("CarrierType")
2063
+ if imported_ns_def_ is not None:
2064
+ namespacedef_ = imported_ns_def_
2065
+ if pretty_print:
2066
+ eol_ = "\n"
2067
+ else:
2068
+ eol_ = ""
2069
+ if self.original_tagname_ is not None and name_ == "CarrierType":
2070
+ name_ = self.original_tagname_
2071
+ if UseCapturedNS_ and self.ns_prefix_:
2072
+ namespaceprefix_ = self.ns_prefix_ + ":"
2073
+ showIndent(outfile, level, pretty_print)
2074
+ outfile.write(
2075
+ "<%s%s%s"
2076
+ % (
2077
+ namespaceprefix_,
2078
+ name_,
2079
+ namespacedef_ and " " + namespacedef_ or "",
2080
+ )
2081
+ )
2082
+ already_processed = set()
2083
+ self._exportAttributes(
2084
+ outfile, level, already_processed, namespaceprefix_, name_="CarrierType"
2085
+ )
2086
+ if self._hasContent():
2087
+ outfile.write(">")
2088
+ outfile.write(self.convert_unicode(self.valueOf_))
2089
+ self._exportChildren(
2090
+ outfile,
2091
+ level + 1,
2092
+ namespaceprefix_,
2093
+ namespacedef_,
2094
+ name_="CarrierType",
2095
+ pretty_print=pretty_print,
2096
+ )
2097
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
2098
+ else:
2099
+ outfile.write("/>%s" % (eol_,))
2100
+
2101
+ def _exportAttributes(
2102
+ self,
2103
+ outfile,
2104
+ level,
2105
+ already_processed,
2106
+ namespaceprefix_="",
2107
+ name_="CarrierType",
2108
+ ):
2109
+ if self.carrierName is not None and "carrierName" not in already_processed:
2110
+ already_processed.add("carrierName")
2111
+ outfile.write(
2112
+ " carrierName=%s"
2113
+ % (
2114
+ self.gds_encode(
2115
+ self.gds_format_string(
2116
+ quote_attrib(self.carrierName), input_name="carrierName"
2117
+ )
2118
+ ),
2119
+ )
2120
+ )
2121
+ if self.serviceName is not None and "serviceName" not in already_processed:
2122
+ already_processed.add("serviceName")
2123
+ outfile.write(
2124
+ " serviceName=%s"
2125
+ % (
2126
+ self.gds_encode(
2127
+ self.gds_format_string(
2128
+ quote_attrib(self.serviceName), input_name="serviceName"
2129
+ )
2130
+ ),
2131
+ )
2132
+ )
2133
+ if self.SCAC is not None and "SCAC" not in already_processed:
2134
+ already_processed.add("SCAC")
2135
+ outfile.write(
2136
+ " SCAC=%s"
2137
+ % (
2138
+ self.gds_encode(
2139
+ self.gds_format_string(
2140
+ quote_attrib(self.SCAC), input_name="SCAC"
2141
+ )
2142
+ ),
2143
+ )
2144
+ )
2145
+
2146
+ def _exportChildren(
2147
+ self,
2148
+ outfile,
2149
+ level,
2150
+ namespaceprefix_="",
2151
+ namespacedef_="",
2152
+ name_="CarrierType",
2153
+ fromsubclass_=False,
2154
+ pretty_print=True,
2155
+ ):
2156
+ pass
2157
+
2158
+ def build(self, node, gds_collector_=None):
2159
+ self.gds_collector_ = gds_collector_
2160
+ if SaveElementTreeNode:
2161
+ self.gds_elementtree_node_ = node
2162
+ already_processed = set()
2163
+ self.ns_prefix_ = node.prefix
2164
+ self._buildAttributes(node, node.attrib, already_processed)
2165
+ self.valueOf_ = get_all_text_(node)
2166
+ for child in node:
2167
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2168
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2169
+ return self
2170
+
2171
+ def _buildAttributes(self, node, attrs, already_processed):
2172
+ value = find_attr_value_("carrierName", node)
2173
+ if value is not None and "carrierName" not in already_processed:
2174
+ already_processed.add("carrierName")
2175
+ self.carrierName = value
2176
+ value = find_attr_value_("serviceName", node)
2177
+ if value is not None and "serviceName" not in already_processed:
2178
+ already_processed.add("serviceName")
2179
+ self.serviceName = value
2180
+ value = find_attr_value_("SCAC", node)
2181
+ if value is not None and "SCAC" not in already_processed:
2182
+ already_processed.add("SCAC")
2183
+ self.SCAC = value
2184
+
2185
+ def _buildChildren(
2186
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
2187
+ ):
2188
+ pass
2189
+
2190
+
2191
+ # end class CarrierType
2192
+
2193
+
2194
+ class ReferenceType(GeneratedsSuper):
2195
+ __hash__ = GeneratedsSuper.__hash__
2196
+ subclass = None
2197
+ superclass = None
2198
+
2199
+ def __init__(
2200
+ self, code=None, name=None, valueOf_=None, gds_collector_=None, **kwargs_
2201
+ ):
2202
+ self.gds_collector_ = gds_collector_
2203
+ self.gds_elementtree_node_ = None
2204
+ self.original_tagname_ = None
2205
+ self.parent_object_ = kwargs_.get("parent_object_")
2206
+ self.ns_prefix_ = None
2207
+ self.code = _cast(None, code)
2208
+ self.code_nsprefix_ = None
2209
+ self.name = _cast(None, name)
2210
+ self.name_nsprefix_ = None
2211
+ self.valueOf_ = valueOf_
2212
+
2213
+ def factory(*args_, **kwargs_):
2214
+ if CurrentSubclassModule_ is not None:
2215
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, ReferenceType)
2216
+ if subclass is not None:
2217
+ return subclass(*args_, **kwargs_)
2218
+ if ReferenceType.subclass:
2219
+ return ReferenceType.subclass(*args_, **kwargs_)
2220
+ else:
2221
+ return ReferenceType(*args_, **kwargs_)
2222
+
2223
+ factory = staticmethod(factory)
2224
+
2225
+ def get_ns_prefix_(self):
2226
+ return self.ns_prefix_
2227
+
2228
+ def set_ns_prefix_(self, ns_prefix):
2229
+ self.ns_prefix_ = ns_prefix
2230
+
2231
+ def get_code(self):
2232
+ return self.code
2233
+
2234
+ def set_code(self, code):
2235
+ self.code = code
2236
+
2237
+ def get_name(self):
2238
+ return self.name
2239
+
2240
+ def set_name(self, name):
2241
+ self.name = name
2242
+
2243
+ def get_valueOf_(self):
2244
+ return self.valueOf_
2245
+
2246
+ def set_valueOf_(self, valueOf_):
2247
+ self.valueOf_ = valueOf_
2248
+
2249
+ def _hasContent(self):
2250
+ if 1 if type(self.valueOf_) in [int, float] else self.valueOf_:
2251
+ return True
2252
+ else:
2253
+ return False
2254
+
2255
+ def export(
2256
+ self,
2257
+ outfile,
2258
+ level,
2259
+ namespaceprefix_="",
2260
+ namespacedef_="",
2261
+ name_="ReferenceType",
2262
+ pretty_print=True,
2263
+ ):
2264
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("ReferenceType")
2265
+ if imported_ns_def_ is not None:
2266
+ namespacedef_ = imported_ns_def_
2267
+ if pretty_print:
2268
+ eol_ = "\n"
2269
+ else:
2270
+ eol_ = ""
2271
+ if self.original_tagname_ is not None and name_ == "ReferenceType":
2272
+ name_ = self.original_tagname_
2273
+ if UseCapturedNS_ and self.ns_prefix_:
2274
+ namespaceprefix_ = self.ns_prefix_ + ":"
2275
+ showIndent(outfile, level, pretty_print)
2276
+ outfile.write(
2277
+ "<%s%s%s"
2278
+ % (
2279
+ namespaceprefix_,
2280
+ name_,
2281
+ namespacedef_ and " " + namespacedef_ or "",
2282
+ )
2283
+ )
2284
+ already_processed = set()
2285
+ self._exportAttributes(
2286
+ outfile, level, already_processed, namespaceprefix_, name_="ReferenceType"
2287
+ )
2288
+ if self._hasContent():
2289
+ outfile.write(">")
2290
+ outfile.write(self.convert_unicode(self.valueOf_))
2291
+ self._exportChildren(
2292
+ outfile,
2293
+ level + 1,
2294
+ namespaceprefix_,
2295
+ namespacedef_,
2296
+ name_="ReferenceType",
2297
+ pretty_print=pretty_print,
2298
+ )
2299
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
2300
+ else:
2301
+ outfile.write("/>%s" % (eol_,))
2302
+
2303
+ def _exportAttributes(
2304
+ self,
2305
+ outfile,
2306
+ level,
2307
+ already_processed,
2308
+ namespaceprefix_="",
2309
+ name_="ReferenceType",
2310
+ ):
2311
+ if self.code is not None and "code" not in already_processed:
2312
+ already_processed.add("code")
2313
+ outfile.write(
2314
+ " code=%s"
2315
+ % (
2316
+ self.gds_encode(
2317
+ self.gds_format_string(
2318
+ quote_attrib(self.code), input_name="code"
2319
+ )
2320
+ ),
2321
+ )
2322
+ )
2323
+ if self.name is not None and "name" not in already_processed:
2324
+ already_processed.add("name")
2325
+ outfile.write(
2326
+ " name=%s"
2327
+ % (
2328
+ self.gds_encode(
2329
+ self.gds_format_string(
2330
+ quote_attrib(self.name), input_name="name"
2331
+ )
2332
+ ),
2333
+ )
2334
+ )
2335
+
2336
+ def _exportChildren(
2337
+ self,
2338
+ outfile,
2339
+ level,
2340
+ namespaceprefix_="",
2341
+ namespacedef_="",
2342
+ name_="ReferenceType",
2343
+ fromsubclass_=False,
2344
+ pretty_print=True,
2345
+ ):
2346
+ pass
2347
+
2348
+ def build(self, node, gds_collector_=None):
2349
+ self.gds_collector_ = gds_collector_
2350
+ if SaveElementTreeNode:
2351
+ self.gds_elementtree_node_ = node
2352
+ already_processed = set()
2353
+ self.ns_prefix_ = node.prefix
2354
+ self._buildAttributes(node, node.attrib, already_processed)
2355
+ self.valueOf_ = get_all_text_(node)
2356
+ for child in node:
2357
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2358
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2359
+ return self
2360
+
2361
+ def _buildAttributes(self, node, attrs, already_processed):
2362
+ value = find_attr_value_("code", node)
2363
+ if value is not None and "code" not in already_processed:
2364
+ already_processed.add("code")
2365
+ self.code = value
2366
+ value = find_attr_value_("name", node)
2367
+ if value is not None and "name" not in already_processed:
2368
+ already_processed.add("name")
2369
+ self.name = value
2370
+
2371
+ def _buildChildren(
2372
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
2373
+ ):
2374
+ pass
2375
+
2376
+
2377
+ # end class ReferenceType
2378
+
2379
+
2380
+ class PackageType(GeneratedsSuper):
2381
+ __hash__ = GeneratedsSuper.__hash__
2382
+ subclass = None
2383
+ superclass = None
2384
+
2385
+ def __init__(
2386
+ self, trackingNumber=None, valueOf_=None, gds_collector_=None, **kwargs_
2387
+ ):
2388
+ self.gds_collector_ = gds_collector_
2389
+ self.gds_elementtree_node_ = None
2390
+ self.original_tagname_ = None
2391
+ self.parent_object_ = kwargs_.get("parent_object_")
2392
+ self.ns_prefix_ = None
2393
+ self.trackingNumber = _cast(None, trackingNumber)
2394
+ self.trackingNumber_nsprefix_ = None
2395
+ self.valueOf_ = valueOf_
2396
+
2397
+ def factory(*args_, **kwargs_):
2398
+ if CurrentSubclassModule_ is not None:
2399
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, PackageType)
2400
+ if subclass is not None:
2401
+ return subclass(*args_, **kwargs_)
2402
+ if PackageType.subclass:
2403
+ return PackageType.subclass(*args_, **kwargs_)
2404
+ else:
2405
+ return PackageType(*args_, **kwargs_)
2406
+
2407
+ factory = staticmethod(factory)
2408
+
2409
+ def get_ns_prefix_(self):
2410
+ return self.ns_prefix_
2411
+
2412
+ def set_ns_prefix_(self, ns_prefix):
2413
+ self.ns_prefix_ = ns_prefix
2414
+
2415
+ def get_trackingNumber(self):
2416
+ return self.trackingNumber
2417
+
2418
+ def set_trackingNumber(self, trackingNumber):
2419
+ self.trackingNumber = trackingNumber
2420
+
2421
+ def get_valueOf_(self):
2422
+ return self.valueOf_
2423
+
2424
+ def set_valueOf_(self, valueOf_):
2425
+ self.valueOf_ = valueOf_
2426
+
2427
+ def _hasContent(self):
2428
+ if 1 if type(self.valueOf_) in [int, float] else self.valueOf_:
2429
+ return True
2430
+ else:
2431
+ return False
2432
+
2433
+ def export(
2434
+ self,
2435
+ outfile,
2436
+ level,
2437
+ namespaceprefix_="",
2438
+ namespacedef_="",
2439
+ name_="PackageType",
2440
+ pretty_print=True,
2441
+ ):
2442
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("PackageType")
2443
+ if imported_ns_def_ is not None:
2444
+ namespacedef_ = imported_ns_def_
2445
+ if pretty_print:
2446
+ eol_ = "\n"
2447
+ else:
2448
+ eol_ = ""
2449
+ if self.original_tagname_ is not None and name_ == "PackageType":
2450
+ name_ = self.original_tagname_
2451
+ if UseCapturedNS_ and self.ns_prefix_:
2452
+ namespaceprefix_ = self.ns_prefix_ + ":"
2453
+ showIndent(outfile, level, pretty_print)
2454
+ outfile.write(
2455
+ "<%s%s%s"
2456
+ % (
2457
+ namespaceprefix_,
2458
+ name_,
2459
+ namespacedef_ and " " + namespacedef_ or "",
2460
+ )
2461
+ )
2462
+ already_processed = set()
2463
+ self._exportAttributes(
2464
+ outfile, level, already_processed, namespaceprefix_, name_="PackageType"
2465
+ )
2466
+ if self._hasContent():
2467
+ outfile.write(">")
2468
+ outfile.write(self.convert_unicode(self.valueOf_))
2469
+ self._exportChildren(
2470
+ outfile,
2471
+ level + 1,
2472
+ namespaceprefix_,
2473
+ namespacedef_,
2474
+ name_="PackageType",
2475
+ pretty_print=pretty_print,
2476
+ )
2477
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
2478
+ else:
2479
+ outfile.write("/>%s" % (eol_,))
2480
+
2481
+ def _exportAttributes(
2482
+ self,
2483
+ outfile,
2484
+ level,
2485
+ already_processed,
2486
+ namespaceprefix_="",
2487
+ name_="PackageType",
2488
+ ):
2489
+ if (
2490
+ self.trackingNumber is not None
2491
+ and "trackingNumber" not in already_processed
2492
+ ):
2493
+ already_processed.add("trackingNumber")
2494
+ outfile.write(
2495
+ " trackingNumber=%s"
2496
+ % (
2497
+ self.gds_encode(
2498
+ self.gds_format_string(
2499
+ quote_attrib(self.trackingNumber),
2500
+ input_name="trackingNumber",
2501
+ )
2502
+ ),
2503
+ )
2504
+ )
2505
+
2506
+ def _exportChildren(
2507
+ self,
2508
+ outfile,
2509
+ level,
2510
+ namespaceprefix_="",
2511
+ namespacedef_="",
2512
+ name_="PackageType",
2513
+ fromsubclass_=False,
2514
+ pretty_print=True,
2515
+ ):
2516
+ pass
2517
+
2518
+ def build(self, node, gds_collector_=None):
2519
+ self.gds_collector_ = gds_collector_
2520
+ if SaveElementTreeNode:
2521
+ self.gds_elementtree_node_ = node
2522
+ already_processed = set()
2523
+ self.ns_prefix_ = node.prefix
2524
+ self._buildAttributes(node, node.attrib, already_processed)
2525
+ self.valueOf_ = get_all_text_(node)
2526
+ for child in node:
2527
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2528
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2529
+ return self
2530
+
2531
+ def _buildAttributes(self, node, attrs, already_processed):
2532
+ value = find_attr_value_("trackingNumber", node)
2533
+ if value is not None and "trackingNumber" not in already_processed:
2534
+ already_processed.add("trackingNumber")
2535
+ self.trackingNumber = value
2536
+
2537
+ def _buildChildren(
2538
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
2539
+ ):
2540
+ pass
2541
+
2542
+
2543
+ # end class PackageType
2544
+
2545
+
2546
+ class PickupType(GeneratedsSuper):
2547
+ __hash__ = GeneratedsSuper.__hash__
2548
+ subclass = None
2549
+ superclass = None
2550
+
2551
+ def __init__(
2552
+ self, confirmationNumber=None, valueOf_=None, gds_collector_=None, **kwargs_
2553
+ ):
2554
+ self.gds_collector_ = gds_collector_
2555
+ self.gds_elementtree_node_ = None
2556
+ self.original_tagname_ = None
2557
+ self.parent_object_ = kwargs_.get("parent_object_")
2558
+ self.ns_prefix_ = None
2559
+ self.confirmationNumber = _cast(None, confirmationNumber)
2560
+ self.confirmationNumber_nsprefix_ = None
2561
+ self.valueOf_ = valueOf_
2562
+
2563
+ def factory(*args_, **kwargs_):
2564
+ if CurrentSubclassModule_ is not None:
2565
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, PickupType)
2566
+ if subclass is not None:
2567
+ return subclass(*args_, **kwargs_)
2568
+ if PickupType.subclass:
2569
+ return PickupType.subclass(*args_, **kwargs_)
2570
+ else:
2571
+ return PickupType(*args_, **kwargs_)
2572
+
2573
+ factory = staticmethod(factory)
2574
+
2575
+ def get_ns_prefix_(self):
2576
+ return self.ns_prefix_
2577
+
2578
+ def set_ns_prefix_(self, ns_prefix):
2579
+ self.ns_prefix_ = ns_prefix
2580
+
2581
+ def get_confirmationNumber(self):
2582
+ return self.confirmationNumber
2583
+
2584
+ def set_confirmationNumber(self, confirmationNumber):
2585
+ self.confirmationNumber = confirmationNumber
2586
+
2587
+ def get_valueOf_(self):
2588
+ return self.valueOf_
2589
+
2590
+ def set_valueOf_(self, valueOf_):
2591
+ self.valueOf_ = valueOf_
2592
+
2593
+ def _hasContent(self):
2594
+ if 1 if type(self.valueOf_) in [int, float] else self.valueOf_:
2595
+ return True
2596
+ else:
2597
+ return False
2598
+
2599
+ def export(
2600
+ self,
2601
+ outfile,
2602
+ level,
2603
+ namespaceprefix_="",
2604
+ namespacedef_="",
2605
+ name_="PickupType",
2606
+ pretty_print=True,
2607
+ ):
2608
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("PickupType")
2609
+ if imported_ns_def_ is not None:
2610
+ namespacedef_ = imported_ns_def_
2611
+ if pretty_print:
2612
+ eol_ = "\n"
2613
+ else:
2614
+ eol_ = ""
2615
+ if self.original_tagname_ is not None and name_ == "PickupType":
2616
+ name_ = self.original_tagname_
2617
+ if UseCapturedNS_ and self.ns_prefix_:
2618
+ namespaceprefix_ = self.ns_prefix_ + ":"
2619
+ showIndent(outfile, level, pretty_print)
2620
+ outfile.write(
2621
+ "<%s%s%s"
2622
+ % (
2623
+ namespaceprefix_,
2624
+ name_,
2625
+ namespacedef_ and " " + namespacedef_ or "",
2626
+ )
2627
+ )
2628
+ already_processed = set()
2629
+ self._exportAttributes(
2630
+ outfile, level, already_processed, namespaceprefix_, name_="PickupType"
2631
+ )
2632
+ if self._hasContent():
2633
+ outfile.write(">")
2634
+ outfile.write(self.convert_unicode(self.valueOf_))
2635
+ self._exportChildren(
2636
+ outfile,
2637
+ level + 1,
2638
+ namespaceprefix_,
2639
+ namespacedef_,
2640
+ name_="PickupType",
2641
+ pretty_print=pretty_print,
2642
+ )
2643
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
2644
+ else:
2645
+ outfile.write("/>%s" % (eol_,))
2646
+
2647
+ def _exportAttributes(
2648
+ self, outfile, level, already_processed, namespaceprefix_="", name_="PickupType"
2649
+ ):
2650
+ if (
2651
+ self.confirmationNumber is not None
2652
+ and "confirmationNumber" not in already_processed
2653
+ ):
2654
+ already_processed.add("confirmationNumber")
2655
+ outfile.write(
2656
+ " confirmationNumber=%s"
2657
+ % (
2658
+ self.gds_encode(
2659
+ self.gds_format_string(
2660
+ quote_attrib(self.confirmationNumber),
2661
+ input_name="confirmationNumber",
2662
+ )
2663
+ ),
2664
+ )
2665
+ )
2666
+
2667
+ def _exportChildren(
2668
+ self,
2669
+ outfile,
2670
+ level,
2671
+ namespaceprefix_="",
2672
+ namespacedef_="",
2673
+ name_="PickupType",
2674
+ fromsubclass_=False,
2675
+ pretty_print=True,
2676
+ ):
2677
+ pass
2678
+
2679
+ def build(self, node, gds_collector_=None):
2680
+ self.gds_collector_ = gds_collector_
2681
+ if SaveElementTreeNode:
2682
+ self.gds_elementtree_node_ = node
2683
+ already_processed = set()
2684
+ self.ns_prefix_ = node.prefix
2685
+ self._buildAttributes(node, node.attrib, already_processed)
2686
+ self.valueOf_ = get_all_text_(node)
2687
+ for child in node:
2688
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2689
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2690
+ return self
2691
+
2692
+ def _buildAttributes(self, node, attrs, already_processed):
2693
+ value = find_attr_value_("confirmationNumber", node)
2694
+ if value is not None and "confirmationNumber" not in already_processed:
2695
+ already_processed.add("confirmationNumber")
2696
+ self.confirmationNumber = value
2697
+
2698
+ def _buildChildren(
2699
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
2700
+ ):
2701
+ pass
2702
+
2703
+
2704
+ # end class PickupType
2705
+
2706
+
2707
+ class LabelDataType(GeneratedsSuper):
2708
+ __hash__ = GeneratedsSuper.__hash__
2709
+ subclass = None
2710
+ superclass = None
2711
+
2712
+ def __init__(self, Label=None, gds_collector_=None, **kwargs_):
2713
+ self.gds_collector_ = gds_collector_
2714
+ self.gds_elementtree_node_ = None
2715
+ self.original_tagname_ = None
2716
+ self.parent_object_ = kwargs_.get("parent_object_")
2717
+ self.ns_prefix_ = None
2718
+ if Label is None:
2719
+ self.Label = []
2720
+ else:
2721
+ self.Label = Label
2722
+ self.Label_nsprefix_ = None
2723
+
2724
+ def factory(*args_, **kwargs_):
2725
+ if CurrentSubclassModule_ is not None:
2726
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, LabelDataType)
2727
+ if subclass is not None:
2728
+ return subclass(*args_, **kwargs_)
2729
+ if LabelDataType.subclass:
2730
+ return LabelDataType.subclass(*args_, **kwargs_)
2731
+ else:
2732
+ return LabelDataType(*args_, **kwargs_)
2733
+
2734
+ factory = staticmethod(factory)
2735
+
2736
+ def get_ns_prefix_(self):
2737
+ return self.ns_prefix_
2738
+
2739
+ def set_ns_prefix_(self, ns_prefix):
2740
+ self.ns_prefix_ = ns_prefix
2741
+
2742
+ def get_Label(self):
2743
+ return self.Label
2744
+
2745
+ def set_Label(self, Label):
2746
+ self.Label = Label
2747
+
2748
+ def add_Label(self, value):
2749
+ self.Label.append(value)
2750
+
2751
+ def insert_Label_at(self, index, value):
2752
+ self.Label.insert(index, value)
2753
+
2754
+ def replace_Label_at(self, index, value):
2755
+ self.Label[index] = value
2756
+
2757
+ def _hasContent(self):
2758
+ if self.Label:
2759
+ return True
2760
+ else:
2761
+ return False
2762
+
2763
+ def export(
2764
+ self,
2765
+ outfile,
2766
+ level,
2767
+ namespaceprefix_="",
2768
+ namespacedef_="",
2769
+ name_="LabelDataType",
2770
+ pretty_print=True,
2771
+ ):
2772
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("LabelDataType")
2773
+ if imported_ns_def_ is not None:
2774
+ namespacedef_ = imported_ns_def_
2775
+ if pretty_print:
2776
+ eol_ = "\n"
2777
+ else:
2778
+ eol_ = ""
2779
+ if self.original_tagname_ is not None and name_ == "LabelDataType":
2780
+ name_ = self.original_tagname_
2781
+ if UseCapturedNS_ and self.ns_prefix_:
2782
+ namespaceprefix_ = self.ns_prefix_ + ":"
2783
+ showIndent(outfile, level, pretty_print)
2784
+ outfile.write(
2785
+ "<%s%s%s"
2786
+ % (
2787
+ namespaceprefix_,
2788
+ name_,
2789
+ namespacedef_ and " " + namespacedef_ or "",
2790
+ )
2791
+ )
2792
+ already_processed = set()
2793
+ self._exportAttributes(
2794
+ outfile, level, already_processed, namespaceprefix_, name_="LabelDataType"
2795
+ )
2796
+ if self._hasContent():
2797
+ outfile.write(">%s" % (eol_,))
2798
+ self._exportChildren(
2799
+ outfile,
2800
+ level + 1,
2801
+ namespaceprefix_,
2802
+ namespacedef_,
2803
+ name_="LabelDataType",
2804
+ pretty_print=pretty_print,
2805
+ )
2806
+ showIndent(outfile, level, pretty_print)
2807
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
2808
+ else:
2809
+ outfile.write("/>%s" % (eol_,))
2810
+
2811
+ def _exportAttributes(
2812
+ self,
2813
+ outfile,
2814
+ level,
2815
+ already_processed,
2816
+ namespaceprefix_="",
2817
+ name_="LabelDataType",
2818
+ ):
2819
+ pass
2820
+
2821
+ def _exportChildren(
2822
+ self,
2823
+ outfile,
2824
+ level,
2825
+ namespaceprefix_="",
2826
+ namespacedef_="",
2827
+ name_="LabelDataType",
2828
+ fromsubclass_=False,
2829
+ pretty_print=True,
2830
+ ):
2831
+ if pretty_print:
2832
+ eol_ = "\n"
2833
+ else:
2834
+ eol_ = ""
2835
+ for Label_ in self.Label:
2836
+ namespaceprefix_ = (
2837
+ self.Label_nsprefix_ + ":"
2838
+ if (UseCapturedNS_ and self.Label_nsprefix_)
2839
+ else ""
2840
+ )
2841
+ Label_.export(
2842
+ outfile,
2843
+ level,
2844
+ namespaceprefix_,
2845
+ namespacedef_="",
2846
+ name_="Label",
2847
+ pretty_print=pretty_print,
2848
+ )
2849
+
2850
+ def build(self, node, gds_collector_=None):
2851
+ self.gds_collector_ = gds_collector_
2852
+ if SaveElementTreeNode:
2853
+ self.gds_elementtree_node_ = node
2854
+ already_processed = set()
2855
+ self.ns_prefix_ = node.prefix
2856
+ self._buildAttributes(node, node.attrib, already_processed)
2857
+ for child in node:
2858
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2859
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2860
+ return self
2861
+
2862
+ def _buildAttributes(self, node, attrs, already_processed):
2863
+ pass
2864
+
2865
+ def _buildChildren(
2866
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
2867
+ ):
2868
+ if nodeName_ == "Label":
2869
+ obj_ = LabelType.factory(parent_object_=self)
2870
+ obj_.build(child_, gds_collector_=gds_collector_)
2871
+ self.Label.append(obj_)
2872
+ obj_.original_tagname_ = "Label"
2873
+
2874
+
2875
+ # end class LabelDataType
2876
+
2877
+
2878
+ class LabelType(GeneratedsSuper):
2879
+ __hash__ = GeneratedsSuper.__hash__
2880
+ subclass = None
2881
+ superclass = None
2882
+
2883
+ def __init__(self, Type=None, Data=None, gds_collector_=None, **kwargs_):
2884
+ self.gds_collector_ = gds_collector_
2885
+ self.gds_elementtree_node_ = None
2886
+ self.original_tagname_ = None
2887
+ self.parent_object_ = kwargs_.get("parent_object_")
2888
+ self.ns_prefix_ = None
2889
+ self.Type = Type
2890
+ self.Type_nsprefix_ = None
2891
+ self.Data = Data
2892
+ self.Data_nsprefix_ = None
2893
+
2894
+ def factory(*args_, **kwargs_):
2895
+ if CurrentSubclassModule_ is not None:
2896
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, LabelType)
2897
+ if subclass is not None:
2898
+ return subclass(*args_, **kwargs_)
2899
+ if LabelType.subclass:
2900
+ return LabelType.subclass(*args_, **kwargs_)
2901
+ else:
2902
+ return LabelType(*args_, **kwargs_)
2903
+
2904
+ factory = staticmethod(factory)
2905
+
2906
+ def get_ns_prefix_(self):
2907
+ return self.ns_prefix_
2908
+
2909
+ def set_ns_prefix_(self, ns_prefix):
2910
+ self.ns_prefix_ = ns_prefix
2911
+
2912
+ def get_Type(self):
2913
+ return self.Type
2914
+
2915
+ def set_Type(self, Type):
2916
+ self.Type = Type
2917
+
2918
+ def get_Data(self):
2919
+ return self.Data
2920
+
2921
+ def set_Data(self, Data):
2922
+ self.Data = Data
2923
+
2924
+ def _hasContent(self):
2925
+ if self.Type is not None or self.Data is not None:
2926
+ return True
2927
+ else:
2928
+ return False
2929
+
2930
+ def export(
2931
+ self,
2932
+ outfile,
2933
+ level,
2934
+ namespaceprefix_="",
2935
+ namespacedef_="",
2936
+ name_="LabelType",
2937
+ pretty_print=True,
2938
+ ):
2939
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("LabelType")
2940
+ if imported_ns_def_ is not None:
2941
+ namespacedef_ = imported_ns_def_
2942
+ if pretty_print:
2943
+ eol_ = "\n"
2944
+ else:
2945
+ eol_ = ""
2946
+ if self.original_tagname_ is not None and name_ == "LabelType":
2947
+ name_ = self.original_tagname_
2948
+ if UseCapturedNS_ and self.ns_prefix_:
2949
+ namespaceprefix_ = self.ns_prefix_ + ":"
2950
+ showIndent(outfile, level, pretty_print)
2951
+ outfile.write(
2952
+ "<%s%s%s"
2953
+ % (
2954
+ namespaceprefix_,
2955
+ name_,
2956
+ namespacedef_ and " " + namespacedef_ or "",
2957
+ )
2958
+ )
2959
+ already_processed = set()
2960
+ self._exportAttributes(
2961
+ outfile, level, already_processed, namespaceprefix_, name_="LabelType"
2962
+ )
2963
+ if self._hasContent():
2964
+ outfile.write(">%s" % (eol_,))
2965
+ self._exportChildren(
2966
+ outfile,
2967
+ level + 1,
2968
+ namespaceprefix_,
2969
+ namespacedef_,
2970
+ name_="LabelType",
2971
+ pretty_print=pretty_print,
2972
+ )
2973
+ showIndent(outfile, level, pretty_print)
2974
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
2975
+ else:
2976
+ outfile.write("/>%s" % (eol_,))
2977
+
2978
+ def _exportAttributes(
2979
+ self, outfile, level, already_processed, namespaceprefix_="", name_="LabelType"
2980
+ ):
2981
+ pass
2982
+
2983
+ def _exportChildren(
2984
+ self,
2985
+ outfile,
2986
+ level,
2987
+ namespaceprefix_="",
2988
+ namespacedef_="",
2989
+ name_="LabelType",
2990
+ fromsubclass_=False,
2991
+ pretty_print=True,
2992
+ ):
2993
+ if pretty_print:
2994
+ eol_ = "\n"
2995
+ else:
2996
+ eol_ = ""
2997
+ if self.Type is not None:
2998
+ namespaceprefix_ = (
2999
+ self.Type_nsprefix_ + ":"
3000
+ if (UseCapturedNS_ and self.Type_nsprefix_)
3001
+ else ""
3002
+ )
3003
+ showIndent(outfile, level, pretty_print)
3004
+ outfile.write(
3005
+ "<%sType>%s</%sType>%s"
3006
+ % (
3007
+ namespaceprefix_,
3008
+ self.gds_encode(
3009
+ self.gds_format_string(quote_xml(self.Type), input_name="Type")
3010
+ ),
3011
+ namespaceprefix_,
3012
+ eol_,
3013
+ )
3014
+ )
3015
+ if self.Data is not None:
3016
+ namespaceprefix_ = (
3017
+ self.Data_nsprefix_ + ":"
3018
+ if (UseCapturedNS_ and self.Data_nsprefix_)
3019
+ else ""
3020
+ )
3021
+ showIndent(outfile, level, pretty_print)
3022
+ outfile.write(
3023
+ "<%sData>%s</%sData>%s"
3024
+ % (
3025
+ namespaceprefix_,
3026
+ self.gds_encode(
3027
+ self.gds_format_string(quote_xml(self.Data), input_name="Data")
3028
+ ),
3029
+ namespaceprefix_,
3030
+ eol_,
3031
+ )
3032
+ )
3033
+
3034
+ def build(self, node, gds_collector_=None):
3035
+ self.gds_collector_ = gds_collector_
3036
+ if SaveElementTreeNode:
3037
+ self.gds_elementtree_node_ = node
3038
+ already_processed = set()
3039
+ self.ns_prefix_ = node.prefix
3040
+ self._buildAttributes(node, node.attrib, already_processed)
3041
+ for child in node:
3042
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
3043
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
3044
+ return self
3045
+
3046
+ def _buildAttributes(self, node, attrs, already_processed):
3047
+ pass
3048
+
3049
+ def _buildChildren(
3050
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
3051
+ ):
3052
+ if nodeName_ == "Type":
3053
+ value_ = child_.text
3054
+ value_ = self.gds_parse_string(value_, node, "Type")
3055
+ value_ = self.gds_validate_string(value_, node, "Type")
3056
+ self.Type = value_
3057
+ self.Type_nsprefix_ = child_.prefix
3058
+ elif nodeName_ == "Data":
3059
+ value_ = child_.text
3060
+ value_ = self.gds_parse_string(value_, node, "Data")
3061
+ value_ = self.gds_validate_string(value_, node, "Data")
3062
+ self.Data = value_
3063
+ self.Data_nsprefix_ = child_.prefix
3064
+
3065
+
3066
+ # end class LabelType
3067
+
3068
+
3069
+ class QuoteType(GeneratedsSuper):
3070
+ __hash__ = GeneratedsSuper.__hash__
3071
+ subclass = None
3072
+ superclass = None
3073
+
3074
+ def __init__(
3075
+ self,
3076
+ carrierId=None,
3077
+ carrierName=None,
3078
+ serviceId=None,
3079
+ serviceName=None,
3080
+ modeTransport=None,
3081
+ transitDays=None,
3082
+ baseCharge=None,
3083
+ fuelSurcharge=None,
3084
+ totalCharge=None,
3085
+ currency=None,
3086
+ Surcharge=None,
3087
+ gds_collector_=None,
3088
+ **kwargs_
3089
+ ):
3090
+ self.gds_collector_ = gds_collector_
3091
+ self.gds_elementtree_node_ = None
3092
+ self.original_tagname_ = None
3093
+ self.parent_object_ = kwargs_.get("parent_object_")
3094
+ self.ns_prefix_ = None
3095
+ self.carrierId = _cast(int, carrierId)
3096
+ self.carrierId_nsprefix_ = None
3097
+ self.carrierName = _cast(None, carrierName)
3098
+ self.carrierName_nsprefix_ = None
3099
+ self.serviceId = _cast(int, serviceId)
3100
+ self.serviceId_nsprefix_ = None
3101
+ self.serviceName = _cast(None, serviceName)
3102
+ self.serviceName_nsprefix_ = None
3103
+ self.modeTransport = _cast(None, modeTransport)
3104
+ self.modeTransport_nsprefix_ = None
3105
+ self.transitDays = _cast(int, transitDays)
3106
+ self.transitDays_nsprefix_ = None
3107
+ self.baseCharge = _cast(float, baseCharge)
3108
+ self.baseCharge_nsprefix_ = None
3109
+ self.fuelSurcharge = _cast(float, fuelSurcharge)
3110
+ self.fuelSurcharge_nsprefix_ = None
3111
+ self.totalCharge = _cast(float, totalCharge)
3112
+ self.totalCharge_nsprefix_ = None
3113
+ self.currency = _cast(None, currency)
3114
+ self.currency_nsprefix_ = None
3115
+ if Surcharge is None:
3116
+ self.Surcharge = []
3117
+ else:
3118
+ self.Surcharge = Surcharge
3119
+ self.Surcharge_nsprefix_ = None
3120
+
3121
+ def factory(*args_, **kwargs_):
3122
+ if CurrentSubclassModule_ is not None:
3123
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, QuoteType)
3124
+ if subclass is not None:
3125
+ return subclass(*args_, **kwargs_)
3126
+ if QuoteType.subclass:
3127
+ return QuoteType.subclass(*args_, **kwargs_)
3128
+ else:
3129
+ return QuoteType(*args_, **kwargs_)
3130
+
3131
+ factory = staticmethod(factory)
3132
+
3133
+ def get_ns_prefix_(self):
3134
+ return self.ns_prefix_
3135
+
3136
+ def set_ns_prefix_(self, ns_prefix):
3137
+ self.ns_prefix_ = ns_prefix
3138
+
3139
+ def get_Surcharge(self):
3140
+ return self.Surcharge
3141
+
3142
+ def set_Surcharge(self, Surcharge):
3143
+ self.Surcharge = Surcharge
3144
+
3145
+ def add_Surcharge(self, value):
3146
+ self.Surcharge.append(value)
3147
+
3148
+ def insert_Surcharge_at(self, index, value):
3149
+ self.Surcharge.insert(index, value)
3150
+
3151
+ def replace_Surcharge_at(self, index, value):
3152
+ self.Surcharge[index] = value
3153
+
3154
+ def get_carrierId(self):
3155
+ return self.carrierId
3156
+
3157
+ def set_carrierId(self, carrierId):
3158
+ self.carrierId = carrierId
3159
+
3160
+ def get_carrierName(self):
3161
+ return self.carrierName
3162
+
3163
+ def set_carrierName(self, carrierName):
3164
+ self.carrierName = carrierName
3165
+
3166
+ def get_serviceId(self):
3167
+ return self.serviceId
3168
+
3169
+ def set_serviceId(self, serviceId):
3170
+ self.serviceId = serviceId
3171
+
3172
+ def get_serviceName(self):
3173
+ return self.serviceName
3174
+
3175
+ def set_serviceName(self, serviceName):
3176
+ self.serviceName = serviceName
3177
+
3178
+ def get_modeTransport(self):
3179
+ return self.modeTransport
3180
+
3181
+ def set_modeTransport(self, modeTransport):
3182
+ self.modeTransport = modeTransport
3183
+
3184
+ def get_transitDays(self):
3185
+ return self.transitDays
3186
+
3187
+ def set_transitDays(self, transitDays):
3188
+ self.transitDays = transitDays
3189
+
3190
+ def get_baseCharge(self):
3191
+ return self.baseCharge
3192
+
3193
+ def set_baseCharge(self, baseCharge):
3194
+ self.baseCharge = baseCharge
3195
+
3196
+ def get_fuelSurcharge(self):
3197
+ return self.fuelSurcharge
3198
+
3199
+ def set_fuelSurcharge(self, fuelSurcharge):
3200
+ self.fuelSurcharge = fuelSurcharge
3201
+
3202
+ def get_totalCharge(self):
3203
+ return self.totalCharge
3204
+
3205
+ def set_totalCharge(self, totalCharge):
3206
+ self.totalCharge = totalCharge
3207
+
3208
+ def get_currency(self):
3209
+ return self.currency
3210
+
3211
+ def set_currency(self, currency):
3212
+ self.currency = currency
3213
+
3214
+ def _hasContent(self):
3215
+ if self.Surcharge:
3216
+ return True
3217
+ else:
3218
+ return False
3219
+
3220
+ def export(
3221
+ self,
3222
+ outfile,
3223
+ level,
3224
+ namespaceprefix_="",
3225
+ namespacedef_="",
3226
+ name_="QuoteType",
3227
+ pretty_print=True,
3228
+ ):
3229
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("QuoteType")
3230
+ if imported_ns_def_ is not None:
3231
+ namespacedef_ = imported_ns_def_
3232
+ if pretty_print:
3233
+ eol_ = "\n"
3234
+ else:
3235
+ eol_ = ""
3236
+ if self.original_tagname_ is not None and name_ == "QuoteType":
3237
+ name_ = self.original_tagname_
3238
+ if UseCapturedNS_ and self.ns_prefix_:
3239
+ namespaceprefix_ = self.ns_prefix_ + ":"
3240
+ showIndent(outfile, level, pretty_print)
3241
+ outfile.write(
3242
+ "<%s%s%s"
3243
+ % (
3244
+ namespaceprefix_,
3245
+ name_,
3246
+ namespacedef_ and " " + namespacedef_ or "",
3247
+ )
3248
+ )
3249
+ already_processed = set()
3250
+ self._exportAttributes(
3251
+ outfile, level, already_processed, namespaceprefix_, name_="QuoteType"
3252
+ )
3253
+ if self._hasContent():
3254
+ outfile.write(">%s" % (eol_,))
3255
+ self._exportChildren(
3256
+ outfile,
3257
+ level + 1,
3258
+ namespaceprefix_,
3259
+ namespacedef_,
3260
+ name_="QuoteType",
3261
+ pretty_print=pretty_print,
3262
+ )
3263
+ showIndent(outfile, level, pretty_print)
3264
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
3265
+ else:
3266
+ outfile.write("/>%s" % (eol_,))
3267
+
3268
+ def _exportAttributes(
3269
+ self, outfile, level, already_processed, namespaceprefix_="", name_="QuoteType"
3270
+ ):
3271
+ if self.carrierId is not None and "carrierId" not in already_processed:
3272
+ already_processed.add("carrierId")
3273
+ outfile.write(
3274
+ ' carrierId="%s"'
3275
+ % self.gds_format_integer(self.carrierId, input_name="carrierId")
3276
+ )
3277
+ if self.carrierName is not None and "carrierName" not in already_processed:
3278
+ already_processed.add("carrierName")
3279
+ outfile.write(
3280
+ " carrierName=%s"
3281
+ % (
3282
+ self.gds_encode(
3283
+ self.gds_format_string(
3284
+ quote_attrib(self.carrierName), input_name="carrierName"
3285
+ )
3286
+ ),
3287
+ )
3288
+ )
3289
+ if self.serviceId is not None and "serviceId" not in already_processed:
3290
+ already_processed.add("serviceId")
3291
+ outfile.write(
3292
+ ' serviceId="%s"'
3293
+ % self.gds_format_integer(self.serviceId, input_name="serviceId")
3294
+ )
3295
+ if self.serviceName is not None and "serviceName" not in already_processed:
3296
+ already_processed.add("serviceName")
3297
+ outfile.write(
3298
+ " serviceName=%s"
3299
+ % (
3300
+ self.gds_encode(
3301
+ self.gds_format_string(
3302
+ quote_attrib(self.serviceName), input_name="serviceName"
3303
+ )
3304
+ ),
3305
+ )
3306
+ )
3307
+ if self.modeTransport is not None and "modeTransport" not in already_processed:
3308
+ already_processed.add("modeTransport")
3309
+ outfile.write(
3310
+ " modeTransport=%s"
3311
+ % (
3312
+ self.gds_encode(
3313
+ self.gds_format_string(
3314
+ quote_attrib(self.modeTransport), input_name="modeTransport"
3315
+ )
3316
+ ),
3317
+ )
3318
+ )
3319
+ if self.transitDays is not None and "transitDays" not in already_processed:
3320
+ already_processed.add("transitDays")
3321
+ outfile.write(
3322
+ ' transitDays="%s"'
3323
+ % self.gds_format_integer(self.transitDays, input_name="transitDays")
3324
+ )
3325
+ if self.baseCharge is not None and "baseCharge" not in already_processed:
3326
+ already_processed.add("baseCharge")
3327
+ outfile.write(
3328
+ ' baseCharge="%s"'
3329
+ % self.gds_format_float(self.baseCharge, input_name="baseCharge")
3330
+ )
3331
+ if self.fuelSurcharge is not None and "fuelSurcharge" not in already_processed:
3332
+ already_processed.add("fuelSurcharge")
3333
+ outfile.write(
3334
+ ' fuelSurcharge="%s"'
3335
+ % self.gds_format_float(self.fuelSurcharge, input_name="fuelSurcharge")
3336
+ )
3337
+ if self.totalCharge is not None and "totalCharge" not in already_processed:
3338
+ already_processed.add("totalCharge")
3339
+ outfile.write(
3340
+ ' totalCharge="%s"'
3341
+ % self.gds_format_float(self.totalCharge, input_name="totalCharge")
3342
+ )
3343
+ if self.currency is not None and "currency" not in already_processed:
3344
+ already_processed.add("currency")
3345
+ outfile.write(
3346
+ " currency=%s"
3347
+ % (
3348
+ self.gds_encode(
3349
+ self.gds_format_string(
3350
+ quote_attrib(self.currency), input_name="currency"
3351
+ )
3352
+ ),
3353
+ )
3354
+ )
3355
+
3356
+ def _exportChildren(
3357
+ self,
3358
+ outfile,
3359
+ level,
3360
+ namespaceprefix_="",
3361
+ namespacedef_="",
3362
+ name_="QuoteType",
3363
+ fromsubclass_=False,
3364
+ pretty_print=True,
3365
+ ):
3366
+ if pretty_print:
3367
+ eol_ = "\n"
3368
+ else:
3369
+ eol_ = ""
3370
+ for Surcharge_ in self.Surcharge:
3371
+ namespaceprefix_ = (
3372
+ self.Surcharge_nsprefix_ + ":"
3373
+ if (UseCapturedNS_ and self.Surcharge_nsprefix_)
3374
+ else ""
3375
+ )
3376
+ Surcharge_.export(
3377
+ outfile,
3378
+ level,
3379
+ namespaceprefix_,
3380
+ namespacedef_="",
3381
+ name_="Surcharge",
3382
+ pretty_print=pretty_print,
3383
+ )
3384
+
3385
+ def build(self, node, gds_collector_=None):
3386
+ self.gds_collector_ = gds_collector_
3387
+ if SaveElementTreeNode:
3388
+ self.gds_elementtree_node_ = node
3389
+ already_processed = set()
3390
+ self.ns_prefix_ = node.prefix
3391
+ self._buildAttributes(node, node.attrib, already_processed)
3392
+ for child in node:
3393
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
3394
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
3395
+ return self
3396
+
3397
+ def _buildAttributes(self, node, attrs, already_processed):
3398
+ value = find_attr_value_("carrierId", node)
3399
+ if value is not None and "carrierId" not in already_processed:
3400
+ already_processed.add("carrierId")
3401
+ self.carrierId = self.gds_parse_integer(value, node, "carrierId")
3402
+ value = find_attr_value_("carrierName", node)
3403
+ if value is not None and "carrierName" not in already_processed:
3404
+ already_processed.add("carrierName")
3405
+ self.carrierName = value
3406
+ value = find_attr_value_("serviceId", node)
3407
+ if value is not None and "serviceId" not in already_processed:
3408
+ already_processed.add("serviceId")
3409
+ self.serviceId = self.gds_parse_integer(value, node, "serviceId")
3410
+ value = find_attr_value_("serviceName", node)
3411
+ if value is not None and "serviceName" not in already_processed:
3412
+ already_processed.add("serviceName")
3413
+ self.serviceName = value
3414
+ value = find_attr_value_("modeTransport", node)
3415
+ if value is not None and "modeTransport" not in already_processed:
3416
+ already_processed.add("modeTransport")
3417
+ self.modeTransport = value
3418
+ value = find_attr_value_("transitDays", node)
3419
+ if value is not None and "transitDays" not in already_processed:
3420
+ already_processed.add("transitDays")
3421
+ self.transitDays = self.gds_parse_integer(value, node, "transitDays")
3422
+ value = find_attr_value_("baseCharge", node)
3423
+ if value is not None and "baseCharge" not in already_processed:
3424
+ already_processed.add("baseCharge")
3425
+ value = self.gds_parse_float(value, node, "baseCharge")
3426
+ self.baseCharge = value
3427
+ value = find_attr_value_("fuelSurcharge", node)
3428
+ if value is not None and "fuelSurcharge" not in already_processed:
3429
+ already_processed.add("fuelSurcharge")
3430
+ value = self.gds_parse_float(value, node, "fuelSurcharge")
3431
+ self.fuelSurcharge = value
3432
+ value = find_attr_value_("totalCharge", node)
3433
+ if value is not None and "totalCharge" not in already_processed:
3434
+ already_processed.add("totalCharge")
3435
+ value = self.gds_parse_float(value, node, "totalCharge")
3436
+ self.totalCharge = value
3437
+ value = find_attr_value_("currency", node)
3438
+ if value is not None and "currency" not in already_processed:
3439
+ already_processed.add("currency")
3440
+ self.currency = value
3441
+
3442
+ def _buildChildren(
3443
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
3444
+ ):
3445
+ if nodeName_ == "Surcharge":
3446
+ obj_ = SurchargeType.factory(parent_object_=self)
3447
+ obj_.build(child_, gds_collector_=gds_collector_)
3448
+ self.Surcharge.append(obj_)
3449
+ obj_.original_tagname_ = "Surcharge"
3450
+
3451
+
3452
+ # end class QuoteType
3453
+
3454
+
3455
+ class SurchargeType(GeneratedsSuper):
3456
+ __hash__ = GeneratedsSuper.__hash__
3457
+ subclass = None
3458
+ superclass = None
3459
+
3460
+ def __init__(
3461
+ self,
3462
+ id=None,
3463
+ name=None,
3464
+ amount=None,
3465
+ valueOf_=None,
3466
+ gds_collector_=None,
3467
+ **kwargs_
3468
+ ):
3469
+ self.gds_collector_ = gds_collector_
3470
+ self.gds_elementtree_node_ = None
3471
+ self.original_tagname_ = None
3472
+ self.parent_object_ = kwargs_.get("parent_object_")
3473
+ self.ns_prefix_ = None
3474
+ self.id = _cast(None, id)
3475
+ self.id_nsprefix_ = None
3476
+ self.name = _cast(None, name)
3477
+ self.name_nsprefix_ = None
3478
+ self.amount = _cast(float, amount)
3479
+ self.amount_nsprefix_ = None
3480
+ self.valueOf_ = valueOf_
3481
+
3482
+ def factory(*args_, **kwargs_):
3483
+ if CurrentSubclassModule_ is not None:
3484
+ subclass = getSubclassFromModule_(CurrentSubclassModule_, SurchargeType)
3485
+ if subclass is not None:
3486
+ return subclass(*args_, **kwargs_)
3487
+ if SurchargeType.subclass:
3488
+ return SurchargeType.subclass(*args_, **kwargs_)
3489
+ else:
3490
+ return SurchargeType(*args_, **kwargs_)
3491
+
3492
+ factory = staticmethod(factory)
3493
+
3494
+ def get_ns_prefix_(self):
3495
+ return self.ns_prefix_
3496
+
3497
+ def set_ns_prefix_(self, ns_prefix):
3498
+ self.ns_prefix_ = ns_prefix
3499
+
3500
+ def get_id(self):
3501
+ return self.id
3502
+
3503
+ def set_id(self, id):
3504
+ self.id = id
3505
+
3506
+ def get_name(self):
3507
+ return self.name
3508
+
3509
+ def set_name(self, name):
3510
+ self.name = name
3511
+
3512
+ def get_amount(self):
3513
+ return self.amount
3514
+
3515
+ def set_amount(self, amount):
3516
+ self.amount = amount
3517
+
3518
+ def get_valueOf_(self):
3519
+ return self.valueOf_
3520
+
3521
+ def set_valueOf_(self, valueOf_):
3522
+ self.valueOf_ = valueOf_
3523
+
3524
+ def _hasContent(self):
3525
+ if 1 if type(self.valueOf_) in [int, float] else self.valueOf_:
3526
+ return True
3527
+ else:
3528
+ return False
3529
+
3530
+ def export(
3531
+ self,
3532
+ outfile,
3533
+ level,
3534
+ namespaceprefix_="",
3535
+ namespacedef_="",
3536
+ name_="SurchargeType",
3537
+ pretty_print=True,
3538
+ ):
3539
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("SurchargeType")
3540
+ if imported_ns_def_ is not None:
3541
+ namespacedef_ = imported_ns_def_
3542
+ if pretty_print:
3543
+ eol_ = "\n"
3544
+ else:
3545
+ eol_ = ""
3546
+ if self.original_tagname_ is not None and name_ == "SurchargeType":
3547
+ name_ = self.original_tagname_
3548
+ if UseCapturedNS_ and self.ns_prefix_:
3549
+ namespaceprefix_ = self.ns_prefix_ + ":"
3550
+ showIndent(outfile, level, pretty_print)
3551
+ outfile.write(
3552
+ "<%s%s%s"
3553
+ % (
3554
+ namespaceprefix_,
3555
+ name_,
3556
+ namespacedef_ and " " + namespacedef_ or "",
3557
+ )
3558
+ )
3559
+ already_processed = set()
3560
+ self._exportAttributes(
3561
+ outfile, level, already_processed, namespaceprefix_, name_="SurchargeType"
3562
+ )
3563
+ if self._hasContent():
3564
+ outfile.write(">")
3565
+ outfile.write(self.convert_unicode(self.valueOf_))
3566
+ self._exportChildren(
3567
+ outfile,
3568
+ level + 1,
3569
+ namespaceprefix_,
3570
+ namespacedef_,
3571
+ name_="SurchargeType",
3572
+ pretty_print=pretty_print,
3573
+ )
3574
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
3575
+ else:
3576
+ outfile.write("/>%s" % (eol_,))
3577
+
3578
+ def _exportAttributes(
3579
+ self,
3580
+ outfile,
3581
+ level,
3582
+ already_processed,
3583
+ namespaceprefix_="",
3584
+ name_="SurchargeType",
3585
+ ):
3586
+ if self.id is not None and "id" not in already_processed:
3587
+ already_processed.add("id")
3588
+ outfile.write(
3589
+ " id=%s"
3590
+ % (
3591
+ self.gds_encode(
3592
+ self.gds_format_string(quote_attrib(self.id), input_name="id")
3593
+ ),
3594
+ )
3595
+ )
3596
+ if self.name is not None and "name" not in already_processed:
3597
+ already_processed.add("name")
3598
+ outfile.write(
3599
+ " name=%s"
3600
+ % (
3601
+ self.gds_encode(
3602
+ self.gds_format_string(
3603
+ quote_attrib(self.name), input_name="name"
3604
+ )
3605
+ ),
3606
+ )
3607
+ )
3608
+ if self.amount is not None and "amount" not in already_processed:
3609
+ already_processed.add("amount")
3610
+ outfile.write(
3611
+ ' amount="%s"' % self.gds_format_float(self.amount, input_name="amount")
3612
+ )
3613
+
3614
+ def _exportChildren(
3615
+ self,
3616
+ outfile,
3617
+ level,
3618
+ namespaceprefix_="",
3619
+ namespacedef_="",
3620
+ name_="SurchargeType",
3621
+ fromsubclass_=False,
3622
+ pretty_print=True,
3623
+ ):
3624
+ pass
3625
+
3626
+ def build(self, node, gds_collector_=None):
3627
+ self.gds_collector_ = gds_collector_
3628
+ if SaveElementTreeNode:
3629
+ self.gds_elementtree_node_ = node
3630
+ already_processed = set()
3631
+ self.ns_prefix_ = node.prefix
3632
+ self._buildAttributes(node, node.attrib, already_processed)
3633
+ self.valueOf_ = get_all_text_(node)
3634
+ for child in node:
3635
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
3636
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
3637
+ return self
3638
+
3639
+ def _buildAttributes(self, node, attrs, already_processed):
3640
+ value = find_attr_value_("id", node)
3641
+ if value is not None and "id" not in already_processed:
3642
+ already_processed.add("id")
3643
+ self.id = value
3644
+ value = find_attr_value_("name", node)
3645
+ if value is not None and "name" not in already_processed:
3646
+ already_processed.add("name")
3647
+ self.name = value
3648
+ value = find_attr_value_("amount", node)
3649
+ if value is not None and "amount" not in already_processed:
3650
+ already_processed.add("amount")
3651
+ value = self.gds_parse_float(value, node, "amount")
3652
+ self.amount = value
3653
+
3654
+ def _buildChildren(
3655
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
3656
+ ):
3657
+ pass
3658
+
3659
+
3660
+ # end class SurchargeType
3661
+
3662
+
3663
+ class BillingAddressType(GeneratedsSuper):
3664
+ __hash__ = GeneratedsSuper.__hash__
3665
+ subclass = None
3666
+ superclass = None
3667
+
3668
+ def __init__(
3669
+ self,
3670
+ CompanyName=None,
3671
+ Address1=None,
3672
+ Address2=None,
3673
+ City=None,
3674
+ ProvinceCode=None,
3675
+ CountryCode=None,
3676
+ zip=None,
3677
+ PhoneNo=None,
3678
+ valueOf_=None,
3679
+ gds_collector_=None,
3680
+ **kwargs_
3681
+ ):
3682
+ self.gds_collector_ = gds_collector_
3683
+ self.gds_elementtree_node_ = None
3684
+ self.original_tagname_ = None
3685
+ self.parent_object_ = kwargs_.get("parent_object_")
3686
+ self.ns_prefix_ = None
3687
+ self.CompanyName = _cast(None, CompanyName)
3688
+ self.CompanyName_nsprefix_ = None
3689
+ self.Address1 = _cast(None, Address1)
3690
+ self.Address1_nsprefix_ = None
3691
+ self.Address2 = _cast(None, Address2)
3692
+ self.Address2_nsprefix_ = None
3693
+ self.City = _cast(None, City)
3694
+ self.City_nsprefix_ = None
3695
+ self.ProvinceCode = _cast(None, ProvinceCode)
3696
+ self.ProvinceCode_nsprefix_ = None
3697
+ self.CountryCode = _cast(None, CountryCode)
3698
+ self.CountryCode_nsprefix_ = None
3699
+ self.zip = _cast(None, zip)
3700
+ self.zip_nsprefix_ = None
3701
+ self.PhoneNo = _cast(None, PhoneNo)
3702
+ self.PhoneNo_nsprefix_ = None
3703
+ self.valueOf_ = valueOf_
3704
+
3705
+ def factory(*args_, **kwargs_):
3706
+ if CurrentSubclassModule_ is not None:
3707
+ subclass = getSubclassFromModule_(
3708
+ CurrentSubclassModule_, BillingAddressType
3709
+ )
3710
+ if subclass is not None:
3711
+ return subclass(*args_, **kwargs_)
3712
+ if BillingAddressType.subclass:
3713
+ return BillingAddressType.subclass(*args_, **kwargs_)
3714
+ else:
3715
+ return BillingAddressType(*args_, **kwargs_)
3716
+
3717
+ factory = staticmethod(factory)
3718
+
3719
+ def get_ns_prefix_(self):
3720
+ return self.ns_prefix_
3721
+
3722
+ def set_ns_prefix_(self, ns_prefix):
3723
+ self.ns_prefix_ = ns_prefix
3724
+
3725
+ def get_CompanyName(self):
3726
+ return self.CompanyName
3727
+
3728
+ def set_CompanyName(self, CompanyName):
3729
+ self.CompanyName = CompanyName
3730
+
3731
+ def get_Address1(self):
3732
+ return self.Address1
3733
+
3734
+ def set_Address1(self, Address1):
3735
+ self.Address1 = Address1
3736
+
3737
+ def get_Address2(self):
3738
+ return self.Address2
3739
+
3740
+ def set_Address2(self, Address2):
3741
+ self.Address2 = Address2
3742
+
3743
+ def get_City(self):
3744
+ return self.City
3745
+
3746
+ def set_City(self, City):
3747
+ self.City = City
3748
+
3749
+ def get_ProvinceCode(self):
3750
+ return self.ProvinceCode
3751
+
3752
+ def set_ProvinceCode(self, ProvinceCode):
3753
+ self.ProvinceCode = ProvinceCode
3754
+
3755
+ def get_CountryCode(self):
3756
+ return self.CountryCode
3757
+
3758
+ def set_CountryCode(self, CountryCode):
3759
+ self.CountryCode = CountryCode
3760
+
3761
+ def get_zip(self):
3762
+ return self.zip
3763
+
3764
+ def set_zip(self, zip):
3765
+ self.zip = zip
3766
+
3767
+ def get_PhoneNo(self):
3768
+ return self.PhoneNo
3769
+
3770
+ def set_PhoneNo(self, PhoneNo):
3771
+ self.PhoneNo = PhoneNo
3772
+
3773
+ def get_valueOf_(self):
3774
+ return self.valueOf_
3775
+
3776
+ def set_valueOf_(self, valueOf_):
3777
+ self.valueOf_ = valueOf_
3778
+
3779
+ def _hasContent(self):
3780
+ if 1 if type(self.valueOf_) in [int, float] else self.valueOf_:
3781
+ return True
3782
+ else:
3783
+ return False
3784
+
3785
+ def export(
3786
+ self,
3787
+ outfile,
3788
+ level,
3789
+ namespaceprefix_="",
3790
+ namespacedef_="",
3791
+ name_="BillingAddressType",
3792
+ pretty_print=True,
3793
+ ):
3794
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get("BillingAddressType")
3795
+ if imported_ns_def_ is not None:
3796
+ namespacedef_ = imported_ns_def_
3797
+ if pretty_print:
3798
+ eol_ = "\n"
3799
+ else:
3800
+ eol_ = ""
3801
+ if self.original_tagname_ is not None and name_ == "BillingAddressType":
3802
+ name_ = self.original_tagname_
3803
+ if UseCapturedNS_ and self.ns_prefix_:
3804
+ namespaceprefix_ = self.ns_prefix_ + ":"
3805
+ showIndent(outfile, level, pretty_print)
3806
+ outfile.write(
3807
+ "<%s%s%s"
3808
+ % (
3809
+ namespaceprefix_,
3810
+ name_,
3811
+ namespacedef_ and " " + namespacedef_ or "",
3812
+ )
3813
+ )
3814
+ already_processed = set()
3815
+ self._exportAttributes(
3816
+ outfile,
3817
+ level,
3818
+ already_processed,
3819
+ namespaceprefix_,
3820
+ name_="BillingAddressType",
3821
+ )
3822
+ if self._hasContent():
3823
+ outfile.write(">")
3824
+ outfile.write(self.convert_unicode(self.valueOf_))
3825
+ self._exportChildren(
3826
+ outfile,
3827
+ level + 1,
3828
+ namespaceprefix_,
3829
+ namespacedef_,
3830
+ name_="BillingAddressType",
3831
+ pretty_print=pretty_print,
3832
+ )
3833
+ outfile.write("</%s%s>%s" % (namespaceprefix_, name_, eol_))
3834
+ else:
3835
+ outfile.write("/>%s" % (eol_,))
3836
+
3837
+ def _exportAttributes(
3838
+ self,
3839
+ outfile,
3840
+ level,
3841
+ already_processed,
3842
+ namespaceprefix_="",
3843
+ name_="BillingAddressType",
3844
+ ):
3845
+ if self.CompanyName is not None and "CompanyName" not in already_processed:
3846
+ already_processed.add("CompanyName")
3847
+ outfile.write(
3848
+ " CompanyName=%s"
3849
+ % (
3850
+ self.gds_encode(
3851
+ self.gds_format_string(
3852
+ quote_attrib(self.CompanyName), input_name="CompanyName"
3853
+ )
3854
+ ),
3855
+ )
3856
+ )
3857
+ if self.Address1 is not None and "Address1" not in already_processed:
3858
+ already_processed.add("Address1")
3859
+ outfile.write(
3860
+ " Address1=%s"
3861
+ % (
3862
+ self.gds_encode(
3863
+ self.gds_format_string(
3864
+ quote_attrib(self.Address1), input_name="Address1"
3865
+ )
3866
+ ),
3867
+ )
3868
+ )
3869
+ if self.Address2 is not None and "Address2" not in already_processed:
3870
+ already_processed.add("Address2")
3871
+ outfile.write(
3872
+ " Address2=%s"
3873
+ % (
3874
+ self.gds_encode(
3875
+ self.gds_format_string(
3876
+ quote_attrib(self.Address2), input_name="Address2"
3877
+ )
3878
+ ),
3879
+ )
3880
+ )
3881
+ if self.City is not None and "City" not in already_processed:
3882
+ already_processed.add("City")
3883
+ outfile.write(
3884
+ " City=%s"
3885
+ % (
3886
+ self.gds_encode(
3887
+ self.gds_format_string(
3888
+ quote_attrib(self.City), input_name="City"
3889
+ )
3890
+ ),
3891
+ )
3892
+ )
3893
+ if self.ProvinceCode is not None and "ProvinceCode" not in already_processed:
3894
+ already_processed.add("ProvinceCode")
3895
+ outfile.write(
3896
+ " ProvinceCode=%s"
3897
+ % (
3898
+ self.gds_encode(
3899
+ self.gds_format_string(
3900
+ quote_attrib(self.ProvinceCode), input_name="ProvinceCode"
3901
+ )
3902
+ ),
3903
+ )
3904
+ )
3905
+ if self.CountryCode is not None and "CountryCode" not in already_processed:
3906
+ already_processed.add("CountryCode")
3907
+ outfile.write(
3908
+ " CountryCode=%s"
3909
+ % (
3910
+ self.gds_encode(
3911
+ self.gds_format_string(
3912
+ quote_attrib(self.CountryCode), input_name="CountryCode"
3913
+ )
3914
+ ),
3915
+ )
3916
+ )
3917
+ if self.zip is not None and "zip" not in already_processed:
3918
+ already_processed.add("zip")
3919
+ outfile.write(
3920
+ " zip=%s"
3921
+ % (
3922
+ self.gds_encode(
3923
+ self.gds_format_string(quote_attrib(self.zip), input_name="zip")
3924
+ ),
3925
+ )
3926
+ )
3927
+ if self.PhoneNo is not None and "PhoneNo" not in already_processed:
3928
+ already_processed.add("PhoneNo")
3929
+ outfile.write(
3930
+ " PhoneNo=%s"
3931
+ % (
3932
+ self.gds_encode(
3933
+ self.gds_format_string(
3934
+ quote_attrib(self.PhoneNo), input_name="PhoneNo"
3935
+ )
3936
+ ),
3937
+ )
3938
+ )
3939
+
3940
+ def _exportChildren(
3941
+ self,
3942
+ outfile,
3943
+ level,
3944
+ namespaceprefix_="",
3945
+ namespacedef_="",
3946
+ name_="BillingAddressType",
3947
+ fromsubclass_=False,
3948
+ pretty_print=True,
3949
+ ):
3950
+ pass
3951
+
3952
+ def build(self, node, gds_collector_=None):
3953
+ self.gds_collector_ = gds_collector_
3954
+ if SaveElementTreeNode:
3955
+ self.gds_elementtree_node_ = node
3956
+ already_processed = set()
3957
+ self.ns_prefix_ = node.prefix
3958
+ self._buildAttributes(node, node.attrib, already_processed)
3959
+ self.valueOf_ = get_all_text_(node)
3960
+ for child in node:
3961
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
3962
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
3963
+ return self
3964
+
3965
+ def _buildAttributes(self, node, attrs, already_processed):
3966
+ value = find_attr_value_("CompanyName", node)
3967
+ if value is not None and "CompanyName" not in already_processed:
3968
+ already_processed.add("CompanyName")
3969
+ self.CompanyName = value
3970
+ value = find_attr_value_("Address1", node)
3971
+ if value is not None and "Address1" not in already_processed:
3972
+ already_processed.add("Address1")
3973
+ self.Address1 = value
3974
+ value = find_attr_value_("Address2", node)
3975
+ if value is not None and "Address2" not in already_processed:
3976
+ already_processed.add("Address2")
3977
+ self.Address2 = value
3978
+ value = find_attr_value_("City", node)
3979
+ if value is not None and "City" not in already_processed:
3980
+ already_processed.add("City")
3981
+ self.City = value
3982
+ value = find_attr_value_("ProvinceCode", node)
3983
+ if value is not None and "ProvinceCode" not in already_processed:
3984
+ already_processed.add("ProvinceCode")
3985
+ self.ProvinceCode = value
3986
+ value = find_attr_value_("CountryCode", node)
3987
+ if value is not None and "CountryCode" not in already_processed:
3988
+ already_processed.add("CountryCode")
3989
+ self.CountryCode = value
3990
+ value = find_attr_value_("zip", node)
3991
+ if value is not None and "zip" not in already_processed:
3992
+ already_processed.add("zip")
3993
+ self.zip = value
3994
+ value = find_attr_value_("PhoneNo", node)
3995
+ if value is not None and "PhoneNo" not in already_processed:
3996
+ already_processed.add("PhoneNo")
3997
+ self.PhoneNo = value
3998
+
3999
+ def _buildChildren(
4000
+ self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None
4001
+ ):
4002
+ pass
4003
+
4004
+
4005
+ # end class BillingAddressType
4006
+
4007
+
4008
+ GDSClassesMapping = {}
4009
+
4010
+
4011
+ USAGE_TEXT = """
4012
+ Usage: python <Parser>.py [ -s ] <in_xml_file>
4013
+ """
4014
+
4015
+
4016
+ def usage():
4017
+ print(USAGE_TEXT)
4018
+ sys.exit(1)
4019
+
4020
+
4021
+ def get_root_tag(node):
4022
+ tag = Tag_pattern_.match(node.tag).groups()[-1]
4023
+ prefix_tag = TagNamePrefix + tag
4024
+ rootClass = GDSClassesMapping.get(prefix_tag)
4025
+ if rootClass is None:
4026
+ rootClass = globals().get(prefix_tag)
4027
+ return tag, rootClass
4028
+
4029
+
4030
+ def get_required_ns_prefix_defs(rootNode):
4031
+ """Get all name space prefix definitions required in this XML doc.
4032
+ Return a dictionary of definitions and a char string of definitions.
4033
+ """
4034
+ nsmap = {
4035
+ prefix: uri
4036
+ for node in rootNode.iter()
4037
+ for (prefix, uri) in node.nsmap.items()
4038
+ if prefix is not None
4039
+ }
4040
+ namespacedefs = " ".join(
4041
+ ['xmlns:{}="{}"'.format(prefix, uri) for prefix, uri in nsmap.items()]
4042
+ )
4043
+ return nsmap, namespacedefs
4044
+
4045
+
4046
+ def parse(inFileName, silence=False, print_warnings=True):
4047
+ global CapturedNsmap_
4048
+ gds_collector = GdsCollector_()
4049
+ parser = None
4050
+ doc = parsexml_(inFileName, parser)
4051
+ rootNode = doc.getroot()
4052
+ rootTag, rootClass = get_root_tag(rootNode)
4053
+ if rootClass is None:
4054
+ rootTag = "Freightcom"
4055
+ rootClass = Freightcom
4056
+ rootObj = rootClass.factory()
4057
+ rootObj.build(rootNode, gds_collector_=gds_collector)
4058
+ CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
4059
+ if not SaveElementTreeNode:
4060
+ doc = None
4061
+ rootNode = None
4062
+ if not silence:
4063
+ sys.stdout.write('<?xml version="1.0" ?>\n')
4064
+ rootObj.export(
4065
+ sys.stdout, 0, name_=rootTag, namespacedef_=namespacedefs, pretty_print=True
4066
+ )
4067
+ if print_warnings and len(gds_collector.get_messages()) > 0:
4068
+ separator = ("-" * 50) + "\n"
4069
+ sys.stderr.write(separator)
4070
+ sys.stderr.write(
4071
+ "----- Warnings -- count: {} -----\n".format(
4072
+ len(gds_collector.get_messages()),
4073
+ )
4074
+ )
4075
+ gds_collector.write_messages(sys.stderr)
4076
+ sys.stderr.write(separator)
4077
+ return rootObj
4078
+
4079
+
4080
+ def parseEtree(
4081
+ inFileName,
4082
+ silence=False,
4083
+ print_warnings=True,
4084
+ mapping=None,
4085
+ reverse_mapping=None,
4086
+ nsmap=None,
4087
+ ):
4088
+ parser = None
4089
+ doc = parsexml_(inFileName, parser)
4090
+ gds_collector = GdsCollector_()
4091
+ rootNode = doc.getroot()
4092
+ rootTag, rootClass = get_root_tag(rootNode)
4093
+ if rootClass is None:
4094
+ rootTag = "Freightcom"
4095
+ rootClass = Freightcom
4096
+ rootObj = rootClass.factory()
4097
+ rootObj.build(rootNode, gds_collector_=gds_collector)
4098
+ if mapping is None:
4099
+ mapping = {}
4100
+ if reverse_mapping is None:
4101
+ reverse_mapping = {}
4102
+ rootElement = rootObj.to_etree(
4103
+ None,
4104
+ name_=rootTag,
4105
+ mapping_=mapping,
4106
+ reverse_mapping_=reverse_mapping,
4107
+ nsmap_=nsmap,
4108
+ )
4109
+ reverse_node_mapping = rootObj.gds_reverse_node_mapping(mapping)
4110
+ # Enable Python to collect the space used by the DOM.
4111
+ if not SaveElementTreeNode:
4112
+ doc = None
4113
+ rootNode = None
4114
+ if not silence:
4115
+ content = etree_.tostring(
4116
+ rootElement, pretty_print=True, xml_declaration=True, encoding="utf-8"
4117
+ )
4118
+ sys.stdout.write(str(content))
4119
+ sys.stdout.write("\n")
4120
+ if print_warnings and len(gds_collector.get_messages()) > 0:
4121
+ separator = ("-" * 50) + "\n"
4122
+ sys.stderr.write(separator)
4123
+ sys.stderr.write(
4124
+ "----- Warnings -- count: {} -----\n".format(
4125
+ len(gds_collector.get_messages()),
4126
+ )
4127
+ )
4128
+ gds_collector.write_messages(sys.stderr)
4129
+ sys.stderr.write(separator)
4130
+ return rootObj, rootElement, mapping, reverse_node_mapping
4131
+
4132
+
4133
+ def parseString(inString, silence=False, print_warnings=True):
4134
+ """Parse a string, create the object tree, and export it.
4135
+
4136
+ Arguments:
4137
+ - inString -- A string. This XML fragment should not start
4138
+ with an XML declaration containing an encoding.
4139
+ - silence -- A boolean. If False, export the object.
4140
+ Returns -- The root object in the tree.
4141
+ """
4142
+ parser = None
4143
+ rootNode = parsexmlstring_(inString, parser)
4144
+ gds_collector = GdsCollector_()
4145
+ rootTag, rootClass = get_root_tag(rootNode)
4146
+ if rootClass is None:
4147
+ rootTag = "Freightcom"
4148
+ rootClass = Freightcom
4149
+ rootObj = rootClass.factory()
4150
+ rootObj.build(rootNode, gds_collector_=gds_collector)
4151
+ if not SaveElementTreeNode:
4152
+ rootNode = None
4153
+ if not silence:
4154
+ sys.stdout.write('<?xml version="1.0" ?>\n')
4155
+ rootObj.export(sys.stdout, 0, name_=rootTag, namespacedef_="")
4156
+ if print_warnings and len(gds_collector.get_messages()) > 0:
4157
+ separator = ("-" * 50) + "\n"
4158
+ sys.stderr.write(separator)
4159
+ sys.stderr.write(
4160
+ "----- Warnings -- count: {} -----\n".format(
4161
+ len(gds_collector.get_messages()),
4162
+ )
4163
+ )
4164
+ gds_collector.write_messages(sys.stderr)
4165
+ sys.stderr.write(separator)
4166
+ return rootObj
4167
+
4168
+
4169
+ def parseLiteral(inFileName, silence=False, print_warnings=True):
4170
+ parser = None
4171
+ doc = parsexml_(inFileName, parser)
4172
+ gds_collector = GdsCollector_()
4173
+ rootNode = doc.getroot()
4174
+ rootTag, rootClass = get_root_tag(rootNode)
4175
+ if rootClass is None:
4176
+ rootTag = "Freightcom"
4177
+ rootClass = Freightcom
4178
+ rootObj = rootClass.factory()
4179
+ rootObj.build(rootNode, gds_collector_=gds_collector)
4180
+ # Enable Python to collect the space used by the DOM.
4181
+ if not SaveElementTreeNode:
4182
+ doc = None
4183
+ rootNode = None
4184
+ if not silence:
4185
+ sys.stdout.write("#from shipping_reply import *\n\n")
4186
+ sys.stdout.write("import shipping_reply as model_\n\n")
4187
+ sys.stdout.write("rootObj = model_.rootClass(\n")
4188
+ rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
4189
+ sys.stdout.write(")\n")
4190
+ if print_warnings and len(gds_collector.get_messages()) > 0:
4191
+ separator = ("-" * 50) + "\n"
4192
+ sys.stderr.write(separator)
4193
+ sys.stderr.write(
4194
+ "----- Warnings -- count: {} -----\n".format(
4195
+ len(gds_collector.get_messages()),
4196
+ )
4197
+ )
4198
+ gds_collector.write_messages(sys.stderr)
4199
+ sys.stderr.write(separator)
4200
+ return rootObj
4201
+
4202
+
4203
+ def main():
4204
+ args = sys.argv[1:]
4205
+ if len(args) == 1:
4206
+ parse(args[0])
4207
+ else:
4208
+ usage()
4209
+
4210
+
4211
+ if __name__ == "__main__":
4212
+ # import pdb; pdb.set_trace()
4213
+ main()
4214
+
4215
+ RenameMappings_ = {}
4216
+
4217
+ #
4218
+ # Mapping of namespaces to types defined in them
4219
+ # and the file in which each is defined.
4220
+ # simpleTypes are marked "ST" and complexTypes "CT".
4221
+ NamespaceToDefMappings_ = {"http://www.freightcom.net/XMLSchema": []}
4222
+
4223
+ __all__ = [
4224
+ "BillingAddressType",
4225
+ "CarrierType",
4226
+ "Freightcom",
4227
+ "LabelDataType",
4228
+ "LabelType",
4229
+ "OrderType",
4230
+ "PackageType",
4231
+ "PickupType",
4232
+ "QuoteType",
4233
+ "ReferenceType",
4234
+ "ShippingReplyType",
4235
+ "SurchargeType",
4236
+ ]