karrio-canadapost 2025.5rc1__py3-none-any.whl

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