From d69938c266b57b773e6870d5a7f8ea37e0d8ef21 Mon Sep 17 00:00:00 2001 From: idziubenko Date: Thu, 8 Jul 2021 17:19:41 +0300 Subject: [PATCH] swaped pyxml for lxml, formats adjusted (untested) --- .vscode/settings.json | 4 + .vscode/tasks.json | 25 + push_to_vmachine | 22 + push_to_vmachine_py3 | 21 + .../suds/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 4888 bytes .../suds/__pycache__/argparser.cpython-39.pyc | Bin 0 -> 15541 bytes .../suds/__pycache__/builder.cpython-39.pyc | Bin 0 -> 2832 bytes .../suds/__pycache__/cache.cpython-39.pyc | Bin 0 -> 9670 bytes .../suds/__pycache__/client.cpython-39.pyc | Bin 0 -> 29293 bytes .../suds/__pycache__/metrics.cpython-39.pyc | Bin 0 -> 1674 bytes .../suds/__pycache__/options.cpython-39.pyc | Bin 0 -> 6307 bytes .../suds/__pycache__/plugin.cpython-39.pyc | Bin 0 -> 8234 bytes .../__pycache__/properties.cpython-39.pyc | Bin 0 -> 16378 bytes .../suds/__pycache__/reader.cpython-39.pyc | Bin 0 -> 5408 bytes .../suds/__pycache__/resolver.cpython-39.pyc | Bin 0 -> 14979 bytes .../servicedefinition.cpython-39.pyc | Bin 0 -> 8425 bytes .../__pycache__/serviceproxy.cpython-39.pyc | Bin 0 -> 2567 bytes .../suds/__pycache__/soaparray.cpython-39.pyc | Bin 0 -> 1696 bytes .../suds/__pycache__/store.cpython-39.pyc | Bin 0 -> 18537 bytes .../__pycache__/sudsobject.cpython-39.pyc | Bin 0 -> 10888 bytes .../suds/__pycache__/version.cpython-39.pyc | Bin 0 -> 466 bytes .../suds/__pycache__/wsdl.cpython-39.pyc | Bin 0 -> 26640 bytes .../suds/__pycache__/wsse.cpython-39.pyc | Bin 0 -> 6733 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 235 bytes .../__pycache__/binding.cpython-39.pyc | Bin 0 -> 15907 bytes .../__pycache__/document.cpython-39.pyc | Bin 0 -> 5058 bytes .../__pycache__/multiref.cpython-39.pyc | Bin 0 -> 3634 bytes .../bindings/__pycache__/rpc.cpython-39.pyc | Bin 0 -> 2755 bytes .../mx/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1286 bytes .../mx/__pycache__/appender.cpython-39.pyc | Bin 0 -> 8806 bytes .../suds/mx/__pycache__/basic.cpython-39.pyc | Bin 0 -> 1090 bytes .../suds/mx/__pycache__/core.cpython-39.pyc | Bin 0 -> 4526 bytes .../mx/__pycache__/encoded.cpython-39.pyc | Bin 0 -> 2919 bytes .../mx/__pycache__/literal.cpython-39.pyc | Bin 0 -> 8287 bytes .../suds/mx/__pycache__/typer.cpython-39.pyc | Bin 0 -> 3249 bytes .../sax/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 2869 bytes .../sax/__pycache__/attribute.cpython-39.pyc | Bin 0 -> 4982 bytes .../suds/sax/__pycache__/date.cpython-39.pyc | Bin 0 -> 12727 bytes .../sax/__pycache__/document.cpython-39.pyc | Bin 0 -> 4894 bytes .../sax/__pycache__/element.cpython-39.pyc | Bin 0 -> 33560 bytes .../suds/sax/__pycache__/enc.cpython-39.pyc | Bin 0 -> 2167 bytes .../sax/__pycache__/parser.cpython-39.pyc | Bin 0 -> 3922 bytes .../suds/sax/__pycache__/text.cpython-39.pyc | Bin 0 -> 3401 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 5351 bytes .../transport/__pycache__/http.cpython-39.pyc | Bin 0 -> 8064 bytes .../__pycache__/https.cpython-39.pyc | Bin 0 -> 3353 bytes .../__pycache__/options.cpython-39.pyc | Bin 0 -> 1593 bytes .../umx/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1219 bytes .../umx/__pycache__/attrlist.cpython-39.pyc | Bin 0 -> 2395 bytes .../suds/umx/__pycache__/basic.cpython-39.pyc | Bin 0 -> 899 bytes .../suds/umx/__pycache__/core.cpython-39.pyc | Bin 0 -> 6747 bytes .../umx/__pycache__/encoded.cpython-39.pyc | Bin 0 -> 3145 bytes .../suds/umx/__pycache__/typed.cpython-39.pyc | Bin 0 -> 3960 bytes .../xsd/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1982 bytes .../xsd/__pycache__/depsort.cpython-39.pyc | Bin 0 -> 1793 bytes .../xsd/__pycache__/doctor.cpython-39.pyc | Bin 0 -> 6567 bytes .../suds/xsd/__pycache__/query.cpython-39.pyc | Bin 0 -> 6191 bytes .../xsd/__pycache__/schema.cpython-39.pyc | Bin 0 -> 13103 bytes .../xsd/__pycache__/sxbase.cpython-39.pyc | Bin 0 -> 21543 bytes .../xsd/__pycache__/sxbasic.cpython-39.pyc | Bin 0 -> 26478 bytes .../xsd/__pycache__/sxbuiltin.cpython-39.pyc | Bin 0 -> 9120 bytes pym/calculate/contrib/suds_bak/__init__.pyc | Bin 0 -> 6327 bytes pym/calculate/contrib/suds_bak/argparser.pyc | Bin 0 -> 17516 bytes .../contrib/suds_bak/bindings/__init__.pyc | Bin 0 -> 242 bytes .../contrib/suds_bak/bindings/binding.pyc | Bin 0 -> 17731 bytes .../contrib/suds_bak/bindings/document.pyc | Bin 0 -> 5307 bytes .../contrib/suds_bak/bindings/multiref.pyc | Bin 0 -> 4288 bytes .../contrib/suds_bak/bindings/rpc.pyc | Bin 0 -> 3419 bytes pym/calculate/contrib/suds_bak/builder.pyc | Bin 0 -> 3552 bytes pym/calculate/contrib/suds_bak/cache.pyc | Bin 0 -> 11326 bytes pym/calculate/contrib/suds_bak/client.pyc | Bin 0 -> 33062 bytes pym/calculate/contrib/suds_bak/metrics.pyc | Bin 0 -> 2073 bytes .../contrib/suds_bak/mx/__init__.pyc | Bin 0 -> 1524 bytes .../contrib/suds_bak/mx/appender.pyc | Bin 0 -> 10901 bytes pym/calculate/contrib/suds_bak/mx/basic.pyc | Bin 0 -> 1239 bytes pym/calculate/contrib/suds_bak/mx/core.pyc | Bin 0 -> 5252 bytes pym/calculate/contrib/suds_bak/mx/encoded.pyc | Bin 0 -> 3691 bytes pym/calculate/contrib/suds_bak/mx/literal.pyc | Bin 0 -> 9850 bytes pym/calculate/contrib/suds_bak/mx/typer.pyc | Bin 0 -> 3819 bytes pym/calculate/contrib/suds_bak/options.pyc | Bin 0 -> 6864 bytes pym/calculate/contrib/suds_bak/plugin.pyc | Bin 0 -> 9198 bytes pym/calculate/contrib/suds_bak/properties.pyc | Bin 0 -> 19774 bytes pym/calculate/contrib/suds_bak/reader.pyc | Bin 0 -> 6158 bytes pym/calculate/contrib/suds_bak/resolver.pyc | Bin 0 -> 17810 bytes .../contrib/suds_bak/sax/__init__.pyc | Bin 0 -> 3656 bytes .../contrib/suds_bak/sax/attribute.pyc | Bin 0 -> 5750 bytes pym/calculate/contrib/suds_bak/sax/date.pyc | Bin 0 -> 15213 bytes .../contrib/suds_bak/sax/document.pyc | Bin 0 -> 5689 bytes .../contrib/suds_bak/sax/element.pyc | Bin 0 -> 38445 bytes pym/calculate/contrib/suds_bak/sax/enc.pyc | Bin 0 -> 2699 bytes pym/calculate/contrib/suds_bak/sax/parser.pyc | Bin 0 -> 4904 bytes pym/calculate/contrib/suds_bak/sax/text.pyc | Bin 0 -> 4249 bytes .../contrib/suds_bak/servicedefinition.pyc | Bin 0 -> 9322 bytes .../contrib/suds_bak/serviceproxy.pyc | Bin 0 -> 2896 bytes pym/calculate/contrib/suds_bak/soaparray.pyc | Bin 0 -> 2085 bytes pym/calculate/contrib/suds_bak/store.pyc | Bin 0 -> 18861 bytes pym/calculate/contrib/suds_bak/sudsobject.pyc | Bin 0 -> 13696 bytes .../contrib/suds_bak/transport/__init__.pyc | Bin 0 -> 6195 bytes .../contrib/suds_bak/transport/http.pyc | Bin 0 -> 9227 bytes .../contrib/suds_bak/transport/https.pyc | Bin 0 -> 3749 bytes .../contrib/suds_bak/transport/options.pyc | Bin 0 -> 1798 bytes .../contrib/suds_bak/umx/__init__.pyc | Bin 0 -> 1450 bytes .../contrib/suds_bak/umx/attrlist.pyc | Bin 0 -> 2806 bytes pym/calculate/contrib/suds_bak/umx/basic.pyc | Bin 0 -> 1047 bytes pym/calculate/contrib/suds_bak/umx/core.pyc | Bin 0 -> 7750 bytes .../contrib/suds_bak/umx/encoded.pyc | Bin 0 -> 3772 bytes pym/calculate/contrib/suds_bak/umx/typed.pyc | Bin 0 -> 4758 bytes pym/calculate/contrib/suds_bak/version.pyc | Bin 0 -> 486 bytes pym/calculate/contrib/suds_bak/wsdl.pyc | Bin 0 -> 33180 bytes pym/calculate/contrib/suds_bak/wsse.pyc | Bin 0 -> 8342 bytes .../contrib/suds_bak/xsd/__init__.pyc | Bin 0 -> 2412 bytes .../contrib/suds_bak/xsd/depsort.pyc | Bin 0 -> 2057 bytes pym/calculate/contrib/suds_bak/xsd/doctor.pyc | Bin 0 -> 7780 bytes pym/calculate/contrib/suds_bak/xsd/query.pyc | Bin 0 -> 7584 bytes pym/calculate/contrib/suds_bak/xsd/schema.pyc | Bin 0 -> 15024 bytes pym/calculate/contrib/suds_bak/xsd/sxbase.pyc | Bin 0 -> 24709 bytes .../contrib/suds_bak/xsd/sxbasic.pyc | Bin 0 -> 33301 bytes .../contrib/suds_bak/xsd/sxbuiltin.pyc | Bin 0 -> 11531 bytes pym/calculate/lib/cl_xml.py | 484 +++++++++++------- pym/calculate/lib/format/apache.py | 6 +- pym/calculate/lib/format/bind.py | 26 +- pym/calculate/lib/format/dovecot.py | 2 +- pym/calculate/lib/format/generic.py | 15 +- pym/calculate/lib/format/kde.py | 4 +- pym/calculate/lib/format/ldap.py | 6 +- pym/calculate/lib/format/patch.py | 100 ++-- pym/calculate/lib/format/plasma.py | 163 +++--- pym/calculate/lib/format/procmail.py | 12 +- pym/calculate/lib/format/samba.py | 34 +- pym/calculate/lib/format/xml_gconf.py | 313 ++++++----- pym/calculate/lib/format/xml_gconf_tree.py | 56 +- pym/calculate/lib/format/xml_xfce.py | 256 ++++----- pym/calculate/lib/format/xml_xfcepanel.py | 242 ++++----- 133 files changed, 981 insertions(+), 810 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100755 push_to_vmachine create mode 100755 push_to_vmachine_py3 create mode 100755 pym/calculate/contrib/suds/__pycache__/__init__.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/argparser.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/builder.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/cache.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/client.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/metrics.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/options.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/plugin.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/properties.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/reader.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/resolver.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/servicedefinition.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/serviceproxy.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/soaparray.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/store.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/sudsobject.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/version.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/wsdl.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/__pycache__/wsse.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/bindings/__pycache__/__init__.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/bindings/__pycache__/binding.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/bindings/__pycache__/document.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/bindings/__pycache__/multiref.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/bindings/__pycache__/rpc.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/mx/__pycache__/__init__.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/mx/__pycache__/appender.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/mx/__pycache__/basic.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/mx/__pycache__/core.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/mx/__pycache__/encoded.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/mx/__pycache__/literal.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/mx/__pycache__/typer.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/sax/__pycache__/__init__.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/sax/__pycache__/attribute.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/sax/__pycache__/date.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/sax/__pycache__/document.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/sax/__pycache__/element.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/sax/__pycache__/enc.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/sax/__pycache__/parser.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/sax/__pycache__/text.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/transport/__pycache__/__init__.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/transport/__pycache__/http.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/transport/__pycache__/https.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/transport/__pycache__/options.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/umx/__pycache__/__init__.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/umx/__pycache__/attrlist.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/umx/__pycache__/basic.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/umx/__pycache__/core.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/umx/__pycache__/encoded.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/umx/__pycache__/typed.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/xsd/__pycache__/__init__.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/xsd/__pycache__/depsort.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/xsd/__pycache__/doctor.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/xsd/__pycache__/query.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/xsd/__pycache__/schema.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/xsd/__pycache__/sxbase.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/xsd/__pycache__/sxbasic.cpython-39.pyc create mode 100755 pym/calculate/contrib/suds/xsd/__pycache__/sxbuiltin.cpython-39.pyc create mode 100644 pym/calculate/contrib/suds_bak/__init__.pyc create mode 100644 pym/calculate/contrib/suds_bak/argparser.pyc create mode 100644 pym/calculate/contrib/suds_bak/bindings/__init__.pyc create mode 100644 pym/calculate/contrib/suds_bak/bindings/binding.pyc create mode 100644 pym/calculate/contrib/suds_bak/bindings/document.pyc create mode 100644 pym/calculate/contrib/suds_bak/bindings/multiref.pyc create mode 100644 pym/calculate/contrib/suds_bak/bindings/rpc.pyc create mode 100644 pym/calculate/contrib/suds_bak/builder.pyc create mode 100644 pym/calculate/contrib/suds_bak/cache.pyc create mode 100644 pym/calculate/contrib/suds_bak/client.pyc create mode 100644 pym/calculate/contrib/suds_bak/metrics.pyc create mode 100644 pym/calculate/contrib/suds_bak/mx/__init__.pyc create mode 100644 pym/calculate/contrib/suds_bak/mx/appender.pyc create mode 100644 pym/calculate/contrib/suds_bak/mx/basic.pyc create mode 100644 pym/calculate/contrib/suds_bak/mx/core.pyc create mode 100644 pym/calculate/contrib/suds_bak/mx/encoded.pyc create mode 100644 pym/calculate/contrib/suds_bak/mx/literal.pyc create mode 100644 pym/calculate/contrib/suds_bak/mx/typer.pyc create mode 100644 pym/calculate/contrib/suds_bak/options.pyc create mode 100644 pym/calculate/contrib/suds_bak/plugin.pyc create mode 100644 pym/calculate/contrib/suds_bak/properties.pyc create mode 100644 pym/calculate/contrib/suds_bak/reader.pyc create mode 100644 pym/calculate/contrib/suds_bak/resolver.pyc create mode 100644 pym/calculate/contrib/suds_bak/sax/__init__.pyc create mode 100644 pym/calculate/contrib/suds_bak/sax/attribute.pyc create mode 100644 pym/calculate/contrib/suds_bak/sax/date.pyc create mode 100644 pym/calculate/contrib/suds_bak/sax/document.pyc create mode 100644 pym/calculate/contrib/suds_bak/sax/element.pyc create mode 100644 pym/calculate/contrib/suds_bak/sax/enc.pyc create mode 100644 pym/calculate/contrib/suds_bak/sax/parser.pyc create mode 100644 pym/calculate/contrib/suds_bak/sax/text.pyc create mode 100644 pym/calculate/contrib/suds_bak/servicedefinition.pyc create mode 100644 pym/calculate/contrib/suds_bak/serviceproxy.pyc create mode 100644 pym/calculate/contrib/suds_bak/soaparray.pyc create mode 100644 pym/calculate/contrib/suds_bak/store.pyc create mode 100644 pym/calculate/contrib/suds_bak/sudsobject.pyc create mode 100644 pym/calculate/contrib/suds_bak/transport/__init__.pyc create mode 100644 pym/calculate/contrib/suds_bak/transport/http.pyc create mode 100644 pym/calculate/contrib/suds_bak/transport/https.pyc create mode 100644 pym/calculate/contrib/suds_bak/transport/options.pyc create mode 100644 pym/calculate/contrib/suds_bak/umx/__init__.pyc create mode 100644 pym/calculate/contrib/suds_bak/umx/attrlist.pyc create mode 100644 pym/calculate/contrib/suds_bak/umx/basic.pyc create mode 100644 pym/calculate/contrib/suds_bak/umx/core.pyc create mode 100644 pym/calculate/contrib/suds_bak/umx/encoded.pyc create mode 100644 pym/calculate/contrib/suds_bak/umx/typed.pyc create mode 100644 pym/calculate/contrib/suds_bak/version.pyc create mode 100644 pym/calculate/contrib/suds_bak/wsdl.pyc create mode 100644 pym/calculate/contrib/suds_bak/wsse.pyc create mode 100644 pym/calculate/contrib/suds_bak/xsd/__init__.pyc create mode 100644 pym/calculate/contrib/suds_bak/xsd/depsort.pyc create mode 100644 pym/calculate/contrib/suds_bak/xsd/doctor.pyc create mode 100644 pym/calculate/contrib/suds_bak/xsd/query.pyc create mode 100644 pym/calculate/contrib/suds_bak/xsd/schema.pyc create mode 100644 pym/calculate/contrib/suds_bak/xsd/sxbase.pyc create mode 100644 pym/calculate/contrib/suds_bak/xsd/sxbasic.pyc create mode 100644 pym/calculate/contrib/suds_bak/xsd/sxbuiltin.pyc diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e07d119 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "python.linting.enabled": false, + "python.pythonPath": "/usr/bin/python3.9" +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..72493e0 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,25 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "push_to_VM", + "type": "shell", + "command": "./push_to_vmachine", + "problemMatcher": [] + }, + { + "label": "revert_VM", + "type": "shell", + "command": "./revert_changes_to_vmachine", + "problemMatcher": [] + }, + { + "label": "push_to_VM_py3", + "type": "shell", + "command": "./push_to_vmachine_py3", + "problemMatcher": [] + } + ] +} \ No newline at end of file diff --git a/push_to_vmachine b/push_to_vmachine new file mode 100755 index 0000000..f931c0a --- /dev/null +++ b/push_to_vmachine @@ -0,0 +1,22 @@ +#!/bin/bash + +read -r ip < ./../vmachine_ip + +cur_dir=${PWD##*/} +cur_module=${cur_dir:18} +cur_module_inner=${cur_module//-} +echo $cur_dir +echo $cur_module +echo $cur_module_inner +echo $ip +#because this runs on a VM, paths must be absolute +in=/var/calculate/proj/calculate-utils-3-${cur_module}/pym/calculate/${cur_module_inner}/* +in_contr=/var/calculate/proj/calculate-utils-3-${cur_module}/pym/calculate/contrib/* +out=/usr/lib64/python2.7/site-packages/calculate/${cur_module_inner}/ +out_contr=/usr/lib64/python2.7/site-packages/calculate/contrib + +set -x +#VM's IP, hopefully you added the pub key +ssh root@$ip rsync -e "ssh" --progress root@192.168.122.1:$in $out -r +ssh root@$ip rsync -e "ssh" --progress root@192.168.122.1:$in_contr $out_contr -r +set +x diff --git a/push_to_vmachine_py3 b/push_to_vmachine_py3 new file mode 100755 index 0000000..d6b7667 --- /dev/null +++ b/push_to_vmachine_py3 @@ -0,0 +1,21 @@ +#!/bin/bash + +read -r ip < ./../vmachine_ip + +cur_dir=${PWD##*/} +cur_module=${cur_dir:18} +cur_module_inner=${cur_module//-} +echo $cur_dir +echo $cur_module +echo $cur_module_inner +echo $ip +#because this runs on a VM, paths must be absolute +#for py3 push it together with contrib +in=/var/calculate/proj/calculate-utils-3-${cur_module}/pym/calculate/* +out=/usr/lib/python3.9/site-packages/calculate/ + + +set -x +#VM's IP, hopefully you added the pub key +ssh root@$ip rsync -e "ssh" --progress root@192.168.122.1:$in $out -r +set +x diff --git a/pym/calculate/contrib/suds/__pycache__/__init__.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/__init__.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..92726ac10b578dfad1a491a445a8cd1890c6b464 GIT binary patch literal 4888 zcmbtY&2JRR6|d^)F+^h z5d|5iL z^X9ryOL|^9?0GLkl|=2>^8#A5`>{aGpe5tzLWT=qO^YrAFK$a4syS)(Q3yq3qpk0? zyRi&tPyW!jfOZEhnM9}AI`88;`+S~HvJKp?WRPMtdXt$L5x2FNCqdW6^!a3Z6UyFQ z3BrzshN?Ew^R2MdOO+z3BR_jAP^( zMRs)~kgo`Wv-v?TH}pqgU3t=0`iCMtPD1wMtcs-Q5OoA))*0mqr3+{|N)x+v*uh9u zx3}#R01s!=xd6O9(I55pM+QdyLjjn|onxP^eLn^l^H*TJcYL2F9|FTM?EhIV127Q% zQ7}|~v)T#Yiviu^9XjSDy4>Bg)#qymTyC5M?Kgy)txDKwj5#gncB0jL&EhjUXW%>& zyS4fdJSe1G&IJGuqCX0c@@)!bca>_Zz=n|gq472v$3f(1^m*T!xAue|pEAv@ScD`+ zw1c3lR4B!(#i$hu6ID!TjYSkE+K&-f+w^&xIf$M0Eo&>f(VGQG%60dwDsGCD!UiKij^&&dAktS<8Nmc+*-H z-6V_kvj}Q~BkSTxEA$g+&hk-A2)Eo0JgJF9U?UAbII2%^{M9T7V;3>V#&@k5zK;lP9O7L!DJ=7kq*z3 zRNNNO?wug750y}Ul;EBWE6Y-~Vp>}C6JNtww!KH4z>#UeEK6P44!XEtoum5+nCcXD z`@$u~+Z$*J%`;x+E-(JCXcc+yX#SQTf-M>RFGj~=om5?gP_Uio4m2fQ@&EOGFuYh9`>RSXe-G;P#vKIwqGrvQYC+Ayyqm` zBwIpAn`P=#@KDk?3cHmcf@f#$#WgK?9`4ceevKvhk(I%bhS8`M)DbY%D0N4vqq|UN zsM`@{MkX_!2IEV#gz8n7yOyGv10a*~GiV9P-2oW|6xDV%N|RVBeg2ZTGEpM;H3`8dh;el(cE|;))qNG?s<+V&B@9Qi7E4WbuQf^o*3!AyV8m z>n&HOq)T#i37QUV06A!NV@E4FbOLj<+sG;BBhpw7@8M-y|HG`S>^-kn)(Bo}{235& zm@dENtG79$ziht9eh1EHD7;~DBfYElkr#Z?jiUf2Bocofor!TsL>=TZ#3`Q&Zpsus zdXv)XjV*qmXI&Iqyq2;p{`)Qd%@+Swk$v}U@wrgsqFelRZ8$AQ$WK|OOl^oxi(yP> zp`z$^T47rBJ4jMeO<+grEVZLJby}#}Q%6RDP79F^mlG38VO+)R{M0ov5Q$Tsqz*0F zXIDmC6C#tF=$J*Z(?J9+^CCu7UNPgnR0X_IJ_gR%fNx=3mJFoTv*(VV+`XfHXEKQF)>ENLUE7GhVz5NR}sua&Q}>v$Bc zM6vo6HXraw5^el};u7qMZQxe30LbY>Zg8P+!XIJ5K5$a^M$2EGlm5*=gZUpc)|=RU zW@Whiv# zK_#hv#s0{1N}bEXO5ff1(l4?ZTzxz1QeR5u#@uv1MmH-Ebu%Hbyvky63)Rs za<3Y^6uHxMGJR2G&LD-Kh@=w+(R_qpAH`xixA19vvXi)50e$*nl~&>>+YX!gLvj&Y zbg1C4nu@`=9bejZX=A8RBQbgyS%gQtfU3`Uq8yZvRI)BaFHtc@ai^;@F4hecKyvvx zaN4=rv?x)l$`Fjti9w}GvugHwx%TjOs-u%#S7*Y$OPEj=ev3_6edAW)Z58~DbM*+b zHBR|#`xebrs;`J~Qk}z(qFYN#13;BcQ*@(Q*+tc!`Mxw?SLTz#6qSmSn90s2*_mu( z99&TWf<)C;w`j#}>ZoeUjENLV3#4??tme9Bi7o@=5YvR4W&a+yN$K7M0jJ=WMoXj4 b;LjZ$sSZ~i*Dg;Z&{!3Fbf|n3VaWPF?*9Q# literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/argparser.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/argparser.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..be7ac8f61a0ea3a712ac15aa2e085aaf47e7c219 GIT binary patch literal 15541 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/builder.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/builder.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..f16d2278eebbaf2544daa1edd8d973395228fa9d GIT binary patch literal 2832 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/client.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/client.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..b66fc2a7b05748034024dc4964b32d3ff785e23a GIT binary patch literal 29293 zcmeHwTaX;rdEWHgclLtC;tt-L6hUGoU_r?gqrj8`5Clnx;1UIZq&$*5Y)tnqW-vRm zINbwaXJ;jaU>rM<6xmU1$5G^k?265lqf{l8syO9xR7s_hyd`;vtGblDBrmE;rBaou z#NmUI@B7a=J>9djAgD{?BpzUT`f_glpa1;#^RG8MTg&0|o!|TyZ+~wim-`RANPmjB zID>EabtjkebM>6>`1y`gcko;2I9K&`UapIs!dkIjbo9NF+{<^$Yn6IM?v*;#wW<1) zoR>Sbwdwk_oL4$CYqRxPIj?r+*7nr*$oW)fer<1kubkI93v2u8`{X>|*)MHRcMhx_ ztRFP@4w?QA%kNC*$lB5RL-K64^YGdu^+#|%=kMt}y7pN8F}XkAan~NNKQ8BcJ5Q{A zr2Y{(&v%}zAH(}Cbe>v!y8g723!V;+-*xJXFX#My{{DA!{{G;jcMJ88;rf7o5Z4Fq z=IbYLb;v)AtHZcDiK`?2QCuCx)e^2A@*l?4!?-$yt4I7tarG#!p25{)zKbgtS0BgK zGEH z>z!aN=tf@D>UDYZR?Ba7S6#2!48qWjdhYGunj7j$;Zm*k15Wnxq7yqG#i8;-zt!;r z#nac<*+z)dJ(oKD)mHah5AC+P^0fR$H@wm6;^E#GgOygdC1o!Mo~}G|$&0RE4#HmN zmK3kP*lYGVE>_nmqnDEfK7@NN#XTf%wK zFUffs=ViYl=M}%|PXXptzvfTlcgmmfXYpGjHsN>LpZE9TcgA19oa~Fs=Q=IUz$!*x zbMZOrc3P{~quT+GY52QMDT!HNu`{h(o^o%8e&@7%^?KmGb>+p2u72w!T_D<64|IWx zn<+4DrK+2m)h(C{gB$%Y@QDDe?ycU9!0oLEO0Wc2Al*yrN&SnPW}4EiuXxR<8#pB=5A;8S{BD3lCo^zK_4bj>`b)qZ%+`96nl zNa7adwwIUj`(U#w8Mq6f5S?|ocr@S@SVDM?+L#q9x^)nj&8hm`& z*9DLoQqqhHqQ2^~ey0^iZf`}8!EKs#>0@fqz3B%dU@d;mD7Jmt{rvG8!Nv*qme=VA zizk+rmcFRL$1;m~H3wM5C3&y+@^PWr3F{Tp*n2s35KrI#*fr9JQ`dY9V5!sU_V1j$ z^Qq?=&pmr8SY18E*E(fzdVNFfLya@|hMbYy>|jPOj3w#e!KZBSN6CwT0)d`HW`;DV z@X|nP&n47BuROK!Qw9B~n;&5USa}D?>t!$G1GOJe5-{t-Aza2qK6xEy8i><_X#+&w z-vL9?OF{cGPKHi9N0cA@>jZul--*A#ThI3*@BTRdlg3>VHa%}ohsh9<@mWN@xH+Qu zORt%Mnzb&->clgRhJAxZVYV6KKm>K!YT?<-g%W3zK27UyPMl8L{2;3 zE^HU?<%Weuepndh8YSNu=5IObSv)JZE94i>8K! zsCGBMRU8(#r%8uUeMO%v-ne|x zUFj(yX5=*~dLg7p3WkvyZ{WslPpyWhUCSKZuy#Z8U3|`j0muzVm=+;YGZ&Yd zUh{gOW&vHW?4s{&P{JsZ?JX}JQ3QWn2g?CnOa zCYX&MS9-b&^$;r7r!~zy$1dXOFo+uVaRranj5H3$*Hw@3y2R_sx(GL6T%;6JpB7oh z>$C=J-LR{;Vpv$b$8g0fK?l-EPsLTkF~hiG&fqW?`o$y~($!k3wgYV z6TCCtdaE!j@ST0F3l5+$#*Rp6}%~B!-X@k6=aLD5zJWqR(f=mHa_Sjqji) zAXW6fla?#a`aT&krSRsKy9P9%3=W3vb=}XscG2y6YeBf~iP#Ql=MKd(Z*(^W;5Wix zrQeZt+VsL8bZ-OsQC5UQuj{)iSP4|nZ9=yD+?5yI5SYK_fwX!MQ?3Wztqsa&$t+?B zN#7wx1A*{*FAOp_RRH-!WDgFjdEM)-2B{GljblfqdYn2EQzXXYkMy$HFJvY$+E|B!i%FR`=a``QC1@ATJJSv%4!x?Pupf>bG=;hE8^Wa&9Ey%mzT=@vcVZM=%3d4Lm zj}>0PSx(N1!0}>K8W!)$ddJ-|N|y0k!EYt14#9E2+or&I@{JnKr}2v~u)Q$&PYFi7 z47%XC;dQUm>D`7x)9Zr4uK=xD6C`MIe^aE}*t-KvcaMdWzNIPO$PBSv-Czc#a}X0N)pZQ6*f#t<%{&TEXebo zqsbwKaE(or4%H`c_`CRO>BbqHcz{lqEK^usEXLq1qz8>gT!TE-^ZOm1L$_=X%=ZhF2z##qC@Is8_^6su06dPqYVuoqB=+~*v= zp^t;_tU6pj+gMBFgmNY_;EHoF$2*Yu3hK1nFY?^p#~LX@Dmx55%GxEYF048G^yV4A zyj?bWXk|HeYJ;b*P|rN>iga`O)Tx!g?ET^!81F7%!d>dk5QSU8w= zUD3njqFAdP3*+2kMV-Lt)uTAX(~X8HkJ+4RG^8}dWI{GBfP}`yb`RDY!(>0sijzbS zw1bt`?D@coKR}_76PJUOQG?`B#<%7i9I@V1;pN3y^|NgCc^*EELtJSz{9Y5|nQnHx zFoXaOwOMpTMIl5T<$(w-%w7Fio^fi`D?E%4KfymiFAhCq{i;)(%R4oGXZWoisZLi9 zR*y)j-B&PCZ?uB3dc_)4HOeoB`)djbQR0@s{ zPEYwcbj6SXz6`A#R7+U4VMW^1V_1t4i-7QLsR)*??Pi)dX}f^EN2xk(TT2^KWR`<; zb4Eip57O-=WiM{NpiO>;;AIpd5;}fmakw~v;FD`$0f4>mjEqIt3C@c~Wc*x0o{glS zEm~)dXp)#!peD#izn?C2ag)DGBl}L6BE!puGb^fTan(XZaRtW}^FlCVh}d zwfr|I9CE$q%EaQqypiw|s+f6yY7La+<^BH^PH0NH2gXW4`5wqM-X3g}i<*L@79O$e z0iAaoFxc|FobsbeyShCkWyo}E_i`i>U&wEjpuSBHi%pVXseNTBGPB)TG!1Aa>lep0YL>|^(28iQ6=HgTF*-($6&$OAD=!JK8>Z>>ID8( zXqMIBP80gmN^dZCEOd1l*b&VE!?<*{wHBzjgf*-pMa3vC!l>=nXRcx; zFZZICdi|~+7lUqpP0VCM2;#C{Uvag09ab?&;nV>k^pn2wB^C9IxFo2lp5u9;(_4*8 zQ22VPUXz7)p6AdHquzR4@`G#rRZwz4;WwpnBqJ+wHsUgHzTb&rCx{&{MG}P@m-V}S zAGN|KaLCoj{U}oE-+5<$J`ZjNtp?#>4!Hk+B7rz!AI8A1` z*YoS)I6S73LHrLC)Dlv4u-CqF@^l&S&ax_Xfqe)o@_2TQhY>B2Ga)GC2LBx2kb?pP zs#R;%M+7yRxRLn~oM-S2KZV1CF&uF^RE*Q1>dye+vmz>aKR{~&cmnc;O=EZ10@$@t z!iDT@t@8Sw>!tk;W>#K#ttdN-fwGEI8I&vbBWCM@jsLI4sh&^0Y> zqTbu>@qO8ayR+pJg37jM40eU0G3`AY;8V4szEiWkD!HRr;T)6e-}1aS}IJz%~<#*K=il(JOSroMmT9S zn&O-i;e=wUzD&yyqaq`viAz{ZH;smQb1dVL$Kt{!Ef>kGX52*S8uV}&-%bH5#(sFt zrF0Ho5k|E@LS40?Eiw7QcLcOD5N+|i&x=SY;dHi8_El1?Jowv;8XeUcy$_!*FXrRJ zjVl_n?b@*5jF0YoVjD6NdtBDT)k@QdG$mpVeB#zNR(1x5$9kG9>`><cIR(t;t$edyoFnVdLzyzdit&9kO zo8Wd9=aX@WE#Wq7M5)Fz0?cdLc}HfQG6e`i+($||JHFUcbrTUKLk&{>FDq*Ki-maq z&S{3#`{2&IltkhRoZFNv7K0IkHZ5P!0T@b7+2UBXAu6jld+9- zG&JU+--PRcCnQ*uUHT~|<03u3jm9U5i(*Nb zor4ah1=J#bcfm+qYX?SB=n`7>D>#9=LwjW|T!=uUsD6PuIZ@$mUR@pR=M!Qdv9Mj- zf}(U2cB!beamj&V1l6can?5Zytod_z`b@6-C~HAgI|w|6GS@Bw*XzV&sA=kEo!&n9 z3f_re(~1wgLWefmo-~8F0PI$8%H0c;twcGhTc2B^hs~sEs|5SRB@)0e zgNtNgN=#c>1{s$d4U*JXiH0r;73C&4S7nxg;dyb{e?{;qvc&>Qxnv&3!AAxye(VD@QN|+mFP8s#fEod|&rfQk#NSo23krhr68r2&q8McwMLIZ{FLn$*dxQm+;x^cBiBRW{3&PbOS zM<7SWa~&$5k~ z;v)7_9E_={Woh*%sU|%joJMam4yn|LEU+kwTlnmxTmq8} zMA!suMe%{gB|y`nu$^HD-r3tSf_U%P-J4y@O#*;XDIDVb&2EbHB-++5Bs8v81}7OD zNVosfP_~Yv!({p%P}v$=Xep_5lDb8hXoE~bKXzzaQsx6yEMmKzK+i-=rua@uwB1## z-7$1dFh8Ssu^mMc@Fe=y_yqgw@xHM+Cs$Y3G1GSHDT|0a8#`;`Gf%$sP0qZiRWpfN zb$D#{C+k#{75J5fN~ay9gS57N6xWa(C@qN3J@5T`deT$65~sm3o1d_vBr^=|Wd#rr zq;V}tENcm{6J&W1Eot{TdoXdAqnnIL_f?X{x}BgVjWwKzMq@QoO9%!XbqABEu!RD; z{YXWhqzs8L^E<>GsxVq1hbw9V-b~PZ82OQCK7WXdMDsaH%?DCv-s&-M&N)#L8qm)} zyTN^EIEY!=Dh%c*n`(Usn$TB86RKNHXjm{h&{v@YE&0W5>NQeVoLp8Xg41hQY*(QZ zMZ==#L|?rb8J*}`(21m#q;?)LkzzSQG-R$_gO)Un64a7Pga4XfPogDhl>TX`NMlo* zqCP(o&S(v3tkDO-m%)B0NUWDEE^+3UkA+l_VrL2A6Mf9CxQ)~;o^^TX@vx3VU6dfJ z5~-JYpVTUz%VMdDc$1zkxZ6V;Rv~mvl=a)J_$&_xlY=m}5SPDCBz+PmT18^4;T)8t zIjBhUd0vf_qy=ZN?-Jg}a$B&ypNNk1w-fA`pd%50Kazr!g^>uilO)R&b$O6U1=k?7 zwT2|n6>^|m(%5e@9=akL()u3}$l{XL8q(e|F#78cs2;I1O@&5NDQ7aD)KemMm8eH^ z)qT~4>Z6KJn)qfuiF!n}>cJdVSj|&vh~nN7`jL6l>X1f0%cH1jOi+kk*tEsWx;Nz2 zO3pvF1aFoAy%7wa*LwvhR+Al~@Ri*mQNS zIwKT%cXIy>iar>*xA6%e`_t+!stw*tX#RzSm>(x*N~}9PHWF2yq3f0uoi+aDq>Lcc zeW;bD#u^Vv(ye1z-$~Q*3!BQjz2)k;GM#6(1{5&%WWmxek+zu_Q|+%M3wH;h)vu5l z_y-MMo~KEzeghe2`UOVqOnM1ErQ$*RL|oSO-ZQ#~*eu?~gYkt%vi1})kgJ9pNd|ii zWNch;#;i@bg!-*)L8H5eYAWK#B;F0H2T_0sC&$(aC>2G!Y2q!o0HIVAH{LceYfqq7 z39)cz-hrzHM)At9w32@dakn;JjV5u%tubEBKz!kX-lrPDeqdm-jGZ)y9_8*@i6NCY zSA5I3tar7>)whCcFEOekE=zC+w)HT&Ha>7+`Re)0%V#e(uAIO8=K0Hw^OrBbetEGh znp#}sjwab_qJ9Cb>2@1D8!aoYD8@@8j=R%ne4HQ@9~N8%S|(<=aXt-BT`~hsEJnDS z47nm)0Y32(U=bmZmP|np+w8Sjf-Wgj`8dj|U*h3357}YKgXcLSqH!)im^D+X+sb&( zSb_+D4&QJA2fI5~%|)2Dh~9j7JUEgoub;hSm!-fPqd}bbmDbuhnFH+0ZoxDyn}`u| ze5L2D>j#$5bMwylPzm2N94av@2jIaGy#08t#Ci(5WVFWj=(*8GI#fZX)rk_=p647kk8g22EDuxyw38kz3+}JCSz*lPVPA ztPNk3UAcH<2+m~*a6}{zgj-MBpf#+tkxj6dk;9odtS%uT|iB4pn#am8tj4#%DAtkwd<|55WCYPj7b~x z-D_U+hAFqsz%bb+3b}oyuTWdL$Sc5f0%$Em%meJs?O=PIHgOC3SUM>x8uawjIW^r44<@>Ad#1%O?@bk;ODPA~fvvyCJ;Qz}!X#&1Rmf zzY4I8FF~?^t6Uoi3pkYRB#~>EclZ`cb}G1MNq7OGi4mzxQ;y@c(P}ammxGfa)M`V- z#|+HFzGS1|#x?`-q|%E4cT5sZA?{wsjv`{~+iwFe@2quz@7nW81rm|AC$Pb515Jp) z%z^}Y(v&nU+wDekPO&;AWV6nt4Om9HhJAB92(sn=QoT}At+5v@VA(xy&|c{rQPO*4L=<1?W; zU=jGfBR`l!ei;v5W-nxQ;6XFhX~la@d@~=?xHI^M z%Q$5D4|bv;%pd#8O2UD#rO;oHd?Zdi6&fu0NTy6alA6g!GVNEeDEFyvpi%F;=tIy0 z`!#_nf$9Pe(rHPAT3thc?`|`xnX^Is^VngHb^vOGZE!Ur2L;?W{U*cqNn?#8pt%cL za1Gw*f?>&+WS#d;8}vQtf~)GrK%X;Ilr6UsTfs^9s@)+zxgdx;m$Aput+ZDA3WG~F zm0OfQ>0S<+K?^SRq%*GE2djEX6Jx_Gr5WE28Lb#-Wr!MS&MLY?ATz^iO(=&ZWj?k6 z!;8)$kryJL2>r(xw0EtC@fim^X&$!=NHK${2p^`cAn+6zck=O41r>w|*V__PF_@ z*N=ABR$Z*^w6=;HYgVBqb0~92*YdfLO_ffoA#_$&l$ceC) za?*}1HiCCD9Pa5Fsj8yn?7=I=QwfCBU%+*Wye77}U(SPI(y&1#mRmjt2&hd|kVJ&Z zz-|hq6A9)o;lk|ak|Y4!BL#H~fqv~0l6B;_%iOsoi2<-p8aueeg2cU3TX1i2AD1aV zy;Z^9s+sLsxZf(2g>WB91Iiwo0WLkG?ph7Z}DwC2oQo>yezBNO{NYIgY z;ls6c!YT@2IU&d%w_fR-30kPhyaPvce@PN8>>@$F#gq>Esb*Jc(!0Zvu5G|1qG8Ji z(@KVsm0_$v3w|QgC!|@F9l+RY-t4zPkvV+|Z?@jkGB-O;+7ofgO>2jEN#vBnCLfB? zT1P~bC%G7D{I1F&r!HaXz+km>@a|+}CS!|8 z^56z71X3Ye3;7$))Uq>_P-ny$ZFAwZ0EO-7wQBexvQZEo{Af0!tCGo z!sb?4h8@*+nZb)$cMzxd;9b}z5=JGxYm7T>*NCjo6ZVQL26LJ1Cn>(Yb37G zECy1h=hnvu6z`MwX1hCN{pG>KFe8WFDk+k3Ws_%mGbi#D8fG~-WZ*4jjCLX$KKCff z*NUc0b%_VD99FI&=m*$<%xB&8eiRqhd+Q=I$MaV&ymtQeH?B6$UVizF*Um3rji(`z zAnlZlL)F>Dn>>7uhtK1{JU__yGo|A{zRKHT1N#EceuIa<&Qi##=0VN96;JD-N)86~ z^L#$CWeKDEi@5h~GP&N^9I7(5o!d!CHuL-|BxyK>8hC83aJdL_mB#Ksj0vLi|r}(67GTfZ8_a4 z&Zc>W-x;6#l^GOLZqFj*88sxi)g11z-X8Uph&!A2>McXjLVMr#e)elPYHs_$z1*A^nf%dk14)%L^Ra5kQF za$86=I(T+C)qX_%F^}7i-pj4O@0Yfa%w&7-u!eh&MecCwF5cYOqRU%TUz&m~T7G5k zG)q?7WuyTpi;bh={X0xYf~!|B-FnFwtVofDKe-&)l0zC5!Hg{fPTqNI5@{J)CS4j!@s8Q%3cHpJEiu<4MQCsBo= zNTY61dz-9j_E6IaZNRKh6!8q3oA6jz{-M>L|2u?3FgUy?06gOl98 zszhWhkU8WvgP=add~n>-LRLXGvEb~-zmFp4Me41W2(*lqmt2AdE8!GFatiH5pNH1M z?JU^pHPT|0AV(xbyM=r&Q3*+IiZ+FuDUnB*;OF=Rfr!kO0Z!AMmuqkt;XOsr zbJ;+Jgj1St)DR-*_$6?W^03^V*}^6oa0K0>KF&&y??-dofQ4tJcCEc<2v?2fRonAS zg$RC8Rqva6vq<3fee}E6hu5E61N^AkUQquTi59_Em_tL}Wp;>gMF!sLcfL{hhNGU+ zWpVasw4XNb71?H{&$#6gEgitqXNL^gt$f4jUBtbE?L+Ou+edgtKD9L^qdYpCO1&91 zON;__*N5Ofy3gShN3dA&eksjwti35Km+jECMy4l{@?97ah|-_h)U{3BJxo~ zFphmC=^Dh z-9-hyzm)!=Wbz4O_`%Ecskv#d#7Xy!SOqEBVE9(bGXUOzXfJRK zV{A3{OX|JithRR7E>gY)cd&7lWz(IJwxYi!SRmLED|UqW%sJ@s#Gn$YL0mWGoXkjBldoepCg&BU+jbOMy0zs@S&1yGcS2$W64soNsu+ZrEJkQ6Y|Jtl#=Ezi}gk@?ZRey zS`a)eSws?#74>FAP9(X9*b>CzpA3O^2qZ(3w7EC|!RhuQdMTJ+-!6^kUt+tTago%8 zne$U)F=Qs0-$Y84JFqusMVSdK#s6tqumc;HT~qB`+&r&)qw=oZZJM%C%{NXzCO%`@ z6dTPoDxjTu2_Uo`n~&?&^TthGFTT+8H|iyMH-@%RDyvtG4j$^2P=d7G4dW^n!Z~JE zimPv|-H|^KfNZ_m<6*Qvc zJeU6lhtl{e$rE(hCeSDOpxy{uncxZB+idhrHe5UkoJERg>chZPWa|1BC z%~|PfFk?sjX(rm579v+Ka&C|lS&Hc03>4$l-{L{iLO#y3_jpJwDt0f;AM)-53kkg> zrn9#=ql{=`K4APqwyXRP%Z2@*QG>J+0@r}4k(pP{aYBWNI5x?J*hj=KaE~*TADptZ zfW|#TEMy9h(%d+mtc>p>$@Y@^J+uZ#2kD$vbl&0FyFBpGq>!#U@^RWmT6{5(XhwFW z*$iI97Fl$bv0-GAi~4V}14eu(+LDy$Fr@kFAMo(IJp2|9qopEeVtu0LI3jN#RN=rr zTFh5xs~@YKtS)owfLO_zc$E2Iu(>n%hR1OjcV-9hgwUOhKetgf4(*D#sjKSiC_eZd z!M=;V-ny8VQ|l3e0VDz1{?ZUXr77Mh4$Z8BH^h&vQzcJ!6u|DBh*6BKYIXVNMbJgM zc~DFlknV+HP^SI5B;{s}3@76x@p}$mAui-(L+6%cavhxJf=13Ipbb-(nEoWVYG(>6 z6o3^}TW+_O5K%|?#IW<(=sSjMwqXs%qXT%P4UMB&lnMMRc(8#9(b!YqGO*Q`Mlj15 z3h7ZxTx2AyaDk(h~_OvoA-ub-F9F2y#&soSM~E?oL-4oMHecA>}>VN|0UM8#&R zT|?e`oEcMJF`}ysil8W9aFqE_7ln1R#qUBvvMqi^T4V_@a&fxlVTPlshm8Bky|L|A zaGpb|#1for6&mQGJ${v;-SYQwro4ZOmrn@Vg%9ac0}>g@asp}q^XN7~LNta!K=r4W z*n{n36%moDvyt=)u5KMp_i`Y6xS7QUK zTi@2q_3yK|@b=%}+27#d+dL#PjW$Ox=B4ZqH+j9y*VA{Ah*qfsJ#yhl2e6_snXVIjRk%-JNVk&Yb{gWGY**`^S z^inNC+^Q9YOYIP=P)@VNhjB8@sl!^qV~((PafpEbuQ4YMg{y-1j8)YxQN0dLs8mK_ zGDcBDK-0pQcGA-(utWFh(r%DwW=v3T!?4h{5Np#cquGMB^~eTqnPrYyM!Tm)pGs6W zTLp%4F#~AL%G!x^1slI8eI!cMWeF$vz>%5;6A$YS?MzyI&tcRfyJI{JQ4>kNy*tJ> zq2jW@68UXqkm{eHz&Jh;Yk!yXNf9_VTXYofEPhhwLKSR3Ko9tm)zs`seMaBbNu(ti zb6x&k+ftK%g~dFEpOcAp#iDL*neZve4_}{_MzmjF90K({`i`P)Gin8)NYAF6`J*Wn zjIcf{*<>N+tGHtFz^J`!UgUg|lllx&@Y5ppTI)`$tMlzY#S)agWnZuC_L5x>+7m*N zUKXj$Zwd>Nr5#tF*MA7$GxI1LzJf!sM6;0n`xN{OGxncNFf7+F1JMwKZ(;t+xkGcG Vo?FMiKQnh??&RE;bDQ(0{};tL37A+4kP!^7ipg~d;h7q7Zivoo%_K6pk=B#8U{84wQ zG*zgReduF2M?Xqmf!AK@b8kI$W@$Nc5HGQ_voo_h-z;Y)+1m0Mj^7_#{Q8&6*x$6- z92Rb#;nY7O0TwafAaWjYT&-Lj)85Xl!j5cCypuacFY0k7d(u7Qk@pjW9=PWW+%pmN zK^(ErTfX#q6ElOZ6%!Dp=$)06EP{se?36w8k|lA*kw8sRAW+wNRJ!5kqo0|k)RhiXORUK*tpu@Ko3_3T<~!1K_7fvT^L}j!`3;@3cQ-* z4eLQXUHt=2{UH+I4U0R9E{@oxm?$y|MeFK1QMCkOs`*^PB_h`{pI$OGK$HLWP8L}X z`zMg;dYotF;?=`f-#v++Jl>bH*}h(Y-d{h!{Eya)f8uPBHEigh2^7|Ng z$S0xb9GR%!7qABlmDE{Pj>#kad3N*UYt=1}4q8y9Ml?7g789NSrl+SCc;b(khgWrh8KI5b# z8T3DAMm~5e4~Jc1E(c{*KU9md#L`=Sa-E~!2fGk_eJu@dMMT+55gp;wltc~w!X2Vw zhk-R>Q|b)%YN^A}-bm|vbQ8rBI*J;o zB0*$7$ClEHLMw{!UBqr28(@!6r@uf#iEr}}Qt#F`pq>ypk`f=Pf zOyq}g{M#bQJB`{RzaJ2xwqj7J9pc`Wpy4Qs6=m6%I5kD!3D5Q%{4666{TA^;mBz86 zQo^2todkPkQlFZ@TQ|p^iGN>F6H%X$jfEm}`hD(N@1O&HNN=SHf$dP>Lowu@^*>Pu BS$6;c literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/options.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/options.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..2ea040a99e3af802653470eae16243e6ff681241 GIT binary patch literal 6307 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/properties.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/properties.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..87141f77b92982ac6cab25c16d647a8e7eb1f1a8 GIT binary patch literal 16378 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 asMcm?W-iP;GX3)Od(L}KW9HGB+W!Ej0P`pS literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/reader.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/reader.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..b77eff77f0e5f0586496b746ffbc1841c508fd9f GIT binary patch literal 5408 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 Y*)kHxB|G6~S>}>CZ=bi9E-t(^b literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/resolver.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/resolver.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..4677be42fa33b98a0bec33c807b345bd6b01e506 GIT binary patch literal 14979 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/servicedefinition.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/servicedefinition.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..fddf603f54ffc7968bc7278d4ac777ce415333fa GIT binary patch literal 8425 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/serviceproxy.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/serviceproxy.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..ac693ddc2c8a6ad38bcb72cba4d1398cbd4a29d2 GIT binary patch literal 2567 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 OtBv0p^mq2g{r>_r2{|SJ literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/sudsobject.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/sudsobject.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..59156aa9aa7b9aa1f65dcc45dc1f26669d4f23cc GIT binary patch literal 10888 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 n^1ezpPky}O7t7H3h_Nq}tL0r$0OmE3cH5w_xHL zI&|nsKKbnLzPs;EOePT{+gyLW7a?Om`{39D3SQ{AD{_*pm<(2d9IOU%xMb5%ToNF9 zHL|S`GNZjvTIm9OiBPH33cI^;utw{Y(V%p0Y%M(9<0t}nE7i$QD20O*Q3Gzh6`4m# zx!!;PhmEkpBjk!IIs?i>CN!ZVi$X$fP2E>_=-Vc4cHlCr8V?)gOVfIyUiS@BX5AR; z|G}+v(1`3q6iAE?t2~aDh$opy1JuSMNF=#c-`laS&(VE6j~_d>m=3!$&ZWsX?=Cn$ zjDdnN=V_}d$@w?4BbsdQesBB7B$dkfxKg^^-fibIK6^;8C=y3aCI=1@)}24q{oJ4T Mt8uhE7LLQ<4^dN*tN;K2 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/__pycache__/wsdl.cpython-39.pyc b/pym/calculate/contrib/suds/__pycache__/wsdl.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..b8aacd76e96c503a5757eac44397b881da2686df GIT binary patch literal 26640 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/bindings/__pycache__/multiref.cpython-39.pyc b/pym/calculate/contrib/suds/bindings/__pycache__/multiref.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..75db1221a03bd16fffcb302a0410d6cfdad553c1 GIT binary patch literal 3634 zcmcIn&2HO95MKUBq~+iA$8C~BStLQKHkJ@HNDCt^6r@2AATf%>Z2uQg zKiy#L4;sv01_mwMaRUu!ZN@dO2ih(@jX)n5Z9`++Y?}`lukh+i#;ZT+?FzS^vbsHP z*1nd}fzL(kbOSGr@!X4~)AK?e_~E`2N8ZpGjDp0MVlQsg{=_1zu4UTCXsr8z7>F>b z>pSCmFG+^m&1T%~iGde44hI3vZA5avNu8z$yAg-VW|vgVUpfXY+%YwRwKaI5bFFP~ zof|J%+vFy%;0f!wg=dx9dsL1IYIX<6PS5Bm9N?}*Smdq~d(_Y=f9fJyNpQX%YKDF30 z_^$2L^{k?t$gDyea57^N?ET85jX8ha?u`6^H#;0gH-PczaO?2%+wSdKO|cKCMm%nI z{E(1}n=^wO!=uc0T|e{_*S$i^n`oF;)y5Yd7n|LfeeaTuvy1w~P-XKCbmnbN*;G%p z6HS8$Q)AZavs81DDf`D7T_kR zi5d#-tLOk&z^NeC`r23Q`?ZO#VAtv0^Nj-Lt$CQgQP!S8`Qb5b=!6bUeuODH5k&L& zmT={emfK5muYqFFeqlkf6b%yX&NVV=*; zSyr0elIO#1WN#Ir%sus5u42n2VOBQ^glYLq>z)Bw$$SR6m|_B3B5+r<@p=hvZqEX? zBw1qn3kIn+MUpwufT+&(5tEx-f67vQs-3Wjk+QyyLv7%@nVRbRE=NcY%tS^}QP`j1N(o50(>YLYz!}H+&XXb5-FBSVN3bb%<=j;i^J8!* zK?06K!EcljMU456G|Nol@s6bIG5%m7pKm+Y;v2N|mdsNm&vc(7gRbn0aUMf9GWS2?IGM=UC8l~T)jHOv2yw-hit zW8=!TxL#E_XEsqxMp2UIqs!PYxk(LWCS)l}JaP?9R>{**j_osXHWA5X2>pONCTV8n zF{(&In-^4z+pa1{> literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/bindings/__pycache__/rpc.cpython-39.pyc b/pym/calculate/contrib/suds/bindings/__pycache__/rpc.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..a3a9fe75b6e5e989d8a3bb1a26d8a3562cdbbfb6 GIT binary patch literal 2755 zcma)8OK;mo5Z>iW6fG-mkOp-wA%dg`^PrNnO ztikN}gxTCa)PqInH<<%{hc7~3XA9fJYmI+)){;m{F5T`>xOtDeH-F#u-0fc;Z@JIj zi7f6U{hW&^nYdBPrb9f9hm5m{yVFluKi!qS<9r0WiAPI%3q)hR((tsh@nfY^nmm1z zN;R4A0Z(&J8{2r!-Sy42vDeGF*B`IgB!YD0Vy8=%_Q{tWJyv%@=*z zk*m<)B%lDF#wc7-WBPj%7#~QNGJ~1#?Z9LfYrvSrY}SNtgE?#gzV-)Vkf4c>l=`n* zYvU^*I?t=C*VlAqevoiK*5*#fHX5)7RicXvazqMxOt;Ai-SlYC-WjrkEE0K`A7oqt zB8KEix3mU4?+w`r5kLp>@BN)oKVh96)|a`T^wZJ)-Tm(#h7Z5)@LfP)#AK%iy8~YF zvxCxsU86zBcvoJ-)0J6t+y=}2*;HJ^11fMwLQJSQCZB-FNlpuLs2ynqEwp28q8Iv+ zo*RrV6Oh_6Io2qFF_Y=Jg`-`1`OFMJW^4)ydwoPPUb-PyYF}+5US6X#+(Ins17o~>U2uB~s`6V34MrzM?YoHyEs9=zLjK&EScQ>m zg?30^5%HkV3S*f}8fhDmDikKibkcwo24H9vjbnXc7d9g!Dqa@mky+Ts6fgudza=b2ic~;Q>2G@TPAx1E~Zr%gE+V29#C5F)YE5%i%YQXykRZDv!u4{dr+vk zyo6TFPo9ZAGy{FA%yrs^SyM4~wodY#qYR7ndu3hk3@=F;bmN2W#74t1n#urK7Y4fO-*LjsKDL~^ilDHKZn3PMi zpJt<6`Lt}})nyjNTwq|82KLXm9^>lK+F!FUz73oYPbi;f-idj)~#ly(^6USU`| zVK^AFQG)GO7$Tz6nMN3b&mbjW5UFe+u3_ss3Z!VcI87TdPm(%ysMx?LsFDaKsH;#V zrWBhRnyt4iyKU<#b;U4vreFxHLX|FvPdz;9(INQg0Mi-*`8xg*uGU$vo=5kl`%8Xt%_MEw2C`*%UK$529c1x zC`q{3f~9q=U7W7=XVdZjHo~LhzfKuf2N9$#G0a3i%DFq``c5Q)|9@;ecNxe35MrMB zHBnyx9ho~yXNG)=tiKKRmEs&*0R;z!rxy_&xShC%;v534`MtMKF|fy%Y7FKTHX%QI zxXUdRw^7_daUaE3C}!KAqO6>~0h1Dgq2iJn+w|IMIs6TPM?JWJ(jV-@E2aKZDIMX% znqWyyjppVs#|59O;rh>jKWzw1gzD{_u9Fe$S;e!8NAVddAj3apZfQTN0_z8SNF@rx Ov{f)J(UxxLOa6a0T!hO2 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/mx/__pycache__/__init__.cpython-39.pyc b/pym/calculate/contrib/suds/mx/__pycache__/__init__.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..759c647310d09c14744b7a09ce8b935310cc2636 GIT binary patch literal 1286 zcmah}UvJYe5VsR2Euk9&CImv7BE%o{fp!vTnh=_X#)QyVnKUFI0);g8x@>9E*-mLo z`oi{##5Z7jLE@Y68S=^#Ux6piZp(^5aMqpUyR-efKTa?+;~=2VpT54iRzm2TT1*px z#VWA44uT>NQA~{(w++w0=nc&l(?kYQ z5+yA+i~}J+B~w>qoleT7+YY$c4dPgtLH%O$NzHM-!-c4d3;StvkA*T+%V{!Uu?j41 zf?&wQfX<-UGh4_bw4{+?&!QH!kC10m1F)5g(i$LPi5z@%T%gVI&5Ub^V1S#IVKwRo z+?7G=p8ITCS=2h z1-t<)mO)5#jB|8?G0I`~jobif=H@XuK@ZXE`B%n}3@vHpC?~mfXkv7*KrzH@3_fUh zI;u{MM*Fj zNXe^qK?I9;xJm|BSt;!Ow*ha70`C{N`vvhCQ2tnKW>HM*O&SSVgGS1Fw|mP={?gq# zYqjbkqoUsK)h9RBI(@D>`v$Pk51{N|8^#?;g9jxlr z7+f7gaCZaYCaJ3u5j8W(+#8~5sl?GJREaBZu>LydDK8w>gSHk?nh37&6|)Z}o3umK zyW;x?SrCscB>zR%CY>ADDfUVW)5P6-8xt7KmW7Am4LCJr&2S*>kU n30D^HoGNWiiB$h4bZcpssl)WyI>_?<5v-Ltb*yRuVpYta!^b=7 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/mx/__pycache__/appender.cpython-39.pyc b/pym/calculate/contrib/suds/mx/__pycache__/appender.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..7f04f0e6b353b22ace00007c1d61d3362f09026c GIT binary patch literal 8806 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/mx/__pycache__/basic.cpython-39.pyc b/pym/calculate/contrib/suds/mx/__pycache__/basic.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..922dfc5124a2ed55a02cadab29fd768a14e4cf6b GIT binary patch literal 1090 zcmZ8gL2uJA6t)wmtx6}s6(QjR63wKgmuW)PggPdKkj6k_2b7C(W48-(l42)Yx3wpB z<-k7}NB&Z-ocIfzcy`*Z;z@q7U!K43d(SrC+36y%%V&3=4_gTRwu@~euo%HG```qM zk-)-J_^kPQ?&~W*BQe3~4H85Iw@3t%eDmW#v_7J+ef_-qK^GUPkcN)ANfY|^Cga+i zbETwS(nN7%q=~wJfC7cM#=GFiaiL{mBirV~Vg$oH1}9OBL6RqM?2AD7g52Vm2oFeG zb@0kkUGH`&*bz`V>Lu-0d3iOHBBb{kBA0ZUSoF08FtNoS!!S?4m1yBDu)yEFrC;JZ zZ-Ey6Pj5*U1o%Au10&>MEFaXHNMmS!#Szl-T+)(H>1A4;yM>v_B%P#E&57{vwldx#0O#xRJ2J2jLBRf2|1$f?{%>NeZ$Yg@cNyQz7JpSE{6` z*+5yjO$uY~#2Jeivj~iBl15IHqcf$x4{KRgIv>)boX#`#eVW@ z^lBf_>cBCFe%wB88l&w|*X>zzPGL|JBh^I13qabQeBEAkux@E-pp;)oKY;k(y>XQ) zF&K-~l#xpFYQ8sralj7t2XZYfVJtH0^>7bg@3@;8t-0|j z(0A6YsJo11g{Ty?rS38Iwc@I2Qr%`u6bWMv)T!BWJ%HEtzS@Uj?4*MUago!or5{27 uY6N+4+xjS*$Gz1gO5mlrhPd=CP+PIK$aUwi5%uyBtV{lXR| literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/mx/__pycache__/core.cpython-39.pyc b/pym/calculate/contrib/suds/mx/__pycache__/core.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..9f8e47455cc409e680476fe96ab4aac008eb9cf7 GIT binary patch literal 4526 zcmcgw&2Jk;6yGne*Bd8kY3UaN7AP$);7ABnC_*SzTB=BCirPpZUzW9JVsBXQy0hyh zb?gf%cTSuW4oLY6xO3vbU$8gCss92e-kX_SZyhHwDq^jjnSJy1-tT?Q*qfiX6?k^8 zAAFmhSCqf-qxk6Xu>x=W2nwP!6rvI>P&Y-b@mde`uF)`5q!~e}Yc@>YE(PVT)v#2B zTC}pSHthQfF-iHkLdyGEV~$vlm0D$R!~TjzPklmTXKkbERPrgOs2y2~Ha(u}B5J%fu#gP+O!*=Ao{T1+oaWP0o??P|uOq z$OWjYUnaBT!wmqTp?GXUL@B*+BZ^T6{H&cYCG`U2|;4787ItZB_n4nd);w1 zJAN#Lcl>TIpeUJ>bN~>T&u4G-!&c%)p%?hcGbh^Oy@fUSpcVhA#~e?>wCvo0`5d{N zRu|)vXFZzJmYwyz34}*{SW5-evIpA;=PJDM0u+fdRQA=O;;KXiVYNYpPeM^QY8pdR zO0A5SBQ-T*8f+aY3@z~QkD7fyAWKc+$4Nc#!~X8ayPw^5Z-2T(+wG;ePvWKS?h;C0 z?>$Q`*Y!g`aoroZIdY-sgL%ZZp7pdi6?@>py$yIduXmx5CZ%RaZ~S`^rdzG1gF%gWqxq!H8Qlj-3yr3Tj**iPv^^ z{G`J_;vQ}JTRtVuQ!nUKryu)a8+-CaqMp#G!`0!3TM_GeND^8?Bv*PK^SYTDm%&ib zCWKCt$mt0-3gh`was(>&VRM^;x#fEf7UUdYX4!r}-l*BB9z^Z5L};@Q6{9gtQXND| zOPukv;=0@~T^AJ*dR^+e4B<^pq2APBQIynlRzYG}?hei)eUz(Q6mxupWZ^^j;HIRM ztE#2iYE?Di9aOny<)9WSGkdUIf|o1yHZ(HD4z)vFs1{l(`(&tW>j%bAg)gD$DUn9!ppm2^W!|L(n~v$~DCb z>=O2(Cy&+22QLFDwxCd~1yJaMI+)|i6kHz*C>T_@F43H17`d5i<`J4A2Y)iq@gO6% z#?2-3s8G zool(E2!N*Os;kmX3x4f@hjV#Cx-&U@(sAYVf?bHsA*zQC6-HCooZ)SQqwmz=)J>_~1hh|A!n$Q9(EEG5FyIsYpX*k%+3)C+U^rm(p; z0i#Lly8^VY3)l(kIq-Y@wkr-9dp`~rueSB0-hY3RgL7CRHgjS~?_%W^?4N5Paq zU3Scb!_Twe08S0(!2bk=<4e5?2BuifFF+tdp`ag2Yk3?hxY1;in(9W=tw2V4eqa!7 zk(6LGtWxkfE@L)&O87V}9i8ZulRV7|Vx9?M)J zPGj-}y|#xjjVJlg4}t56AHcmKt-9`$ zz88pFL|S%TxFo=JqKW`t#sZI=3=eR^zA>4yx3O@rz+k}M#o|3Iu46IQ3vb~SgPBmE zf5aG3EY&DmC2P@|w@k~1A3j*m@o^iqD!U28;D!qK&ITke64$%CjdQY57l&8M_?@i4pf8!?55UR8^}Q+=ujk E04)x8a{vGU literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/mx/__pycache__/encoded.cpython-39.pyc b/pym/calculate/contrib/suds/mx/__pycache__/encoded.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..a6476feed91c63cd57d969de4beb4827eee9f372 GIT binary patch literal 2919 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 BBK80P literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/mx/__pycache__/typer.cpython-39.pyc b/pym/calculate/contrib/suds/mx/__pycache__/typer.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..213e7c31ecd83304419833767565bd8882a723f1 GIT binary patch literal 3249 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/sax/__pycache__/attribute.cpython-39.pyc b/pym/calculate/contrib/suds/sax/__pycache__/attribute.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..a60c05e7cd9734b1d4e69f7a51fec2af12f99ca8 GIT binary patch literal 4982 zcmai2(Qezw73ENrMANdPcsJfnHrvj+HEI=E87Q_v5j2I}#bOa4QG?yID1-tmr5V{& zC{h_xjwMTdaezJ-{eUJwQDD*6{y|^*4SXt4^kMr6`?9@vh8$9oy&)`eNX}f&J@?!* zckFF#IR+em{mZ|8zw@qP{0DE!hXprB@Qd-pjIO~5GXpX*yC%VQC8&(7t~IK5tMc9o zYNL9$PK?hDR%NwU2CH%NveLC#{Y#@|&-R_CB0BRKkLhopJf@E>yd)8RZ<6o@?FU{Q z^SJFeU&F_Y7D*ew4*h<__!Ix!4_jus8IJ=$c`Eq8KTkJ0-iXIzug{^U^^BhOk zDsXcIzxWSu;zpN%2PPxk3cJfH%z8z-7W+`nlXR=B&g@r4x5hS@1J^pY+2$n~5Y}K@ z&~t-rvm5Z-VNG@uuA6L!y#v<<`yP9j-GUxlY?r+UPqx|n>^59)usiGnxHg#yzJEX6 zIL>|bdc-gs3deCManLBxs5j*O1Tet2NB)^7=-3lHOdil@r<{g>2JJ^-;`yN;p3vmf zkEtHrR-=;XnCnrGFL=O5V4(e(x-QD5C6vnaql;*q_)+Ku3mWFo(y{EZWH=ks^B`Cd zyzr!C5C`VwCgF>T7x)98vqdpSX}fGs4Y|_VnHNklbK1ur#Z*2no5=c=Y{)5f`bdEM zz&8Fqg@5x`qtYKC~RGW0(R)Ms%cH}NFWAqqmszN38Z$+liwiLtx9Ue zJQ#=#>{OK&zcR!Y+)Kbz5K|uEEK$YotkLJI8r0wDT@~6JKY?Qn2p8!^D8VkT-B1nwRFnoRhf; z!NSZUvw!OleHug|S6Q)?NhL_j>7?3p5D6FqiG`yTu?kr8{?{au>?n9L5#a-R47oX; z(r8eg0tH#~PeRUU63Nem{AHG&rEdx3!vp&GLL;+KB7h%gSpvaJt1mEKq5*ADhf}K} zHuH8$JQ*l;+Lqm=LqCP4!rp0;8kybDUuetseGnskU>ikWX2~8j0C32Ji6NTMf{bA1 zYsix!J|_dn69_~BZwj=JFoRc9Pl{G zkXp@leAoGgJOE5=n75*^HH`f5E22ZugkNq%Cys*zj6dV`4T%2McZCGWzV?}W6x8U^ zMP^`8GOS~U#ZFlrNI5!bJsY~J2KGs&@-CnpOSRoB3vvE>O%JfE4i5_P5LQgd?mufx zFg5@ksHl=s?UqE!1FXW2`DmO>!Lh zq?KlB;X|d8w_xt8K-9q?LKtWq?Ags@y&z?8*I>}8e;39fOO-4pWC*JetWHom3=JuW z=Ip=PpEc4#+M|fe%C!we9Taew*&Ip-zzz}|u0;=Ivkz;Bw%40duS8$9j!VwqxGeO= z_^gtYSy0wk9iOG?=&$4=d+_K&ePMAALV)vLv^OvM~HlJM@K`mIOB*^S&%gv+5StWsg1& zqnF{;z$sN$K;RV{iIl4JzPdtQi-GnL2rwS2`at7dGMeT6+hc(xfzYuK z$kSZ1WtdhZ8{c2*5P)PuaqwOdf~80oQ;7-NY5?dRqKDl_@yo~qiI zdE0;|aE5o*yb^sfx3F;V_R9MH#7p|86bOEht8+`n0|?I!K@?XWs|+gGn5jIXs><`+ zN};hd@lK@461t^293)8-Cbt$ZFBdvyYZjp6l@Y?Q%7vFiq74GEi*v>#FUqovlxanruFbXPy8MOf zzR{C4cZu`utXc3jcKW??k)#mjp4(x-_yzBn0aH~e_ zZ_CSX-sO77Fkf-g`r45DAQJ6@bL6%8#u%8HgLm-1D%r}q>QH?@ez>K`z!`*)nUtQpMNt#T}Mj~40RpV{fOZsNud>FBzt|UGU6U=``$)#& z#xcf|O{{IF;cVLtyV=~b9ec~(cA9q8uF8I$)`q|xDr|mX8!OPwu8qw$>}chNS*mJx iD}UC;5=PBYGW&`Nr1sC1-@iboWL0cc8?g6nRQ?ZJIqD7o literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/sax/__pycache__/date.cpython-39.pyc b/pym/calculate/contrib/suds/sax/__pycache__/date.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..dfe59ebd8c5213c030b9f52e420f3a93e86d1980 GIT binary patch literal 12727 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/sax/__pycache__/document.cpython-39.pyc b/pym/calculate/contrib/suds/sax/__pycache__/document.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..5c94d2c6752308e749336c18bd118c694727ed8d GIT binary patch literal 4894 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 S2+b-uM1W`jS>7?X@B9}?{+!?d literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/sax/__pycache__/text.cpython-39.pyc b/pym/calculate/contrib/suds/sax/__pycache__/text.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..7ca45d3c563eac4054641cdd29f9ae146a529429 GIT binary patch literal 3401 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 IW6$3D2XewTC;$Ke literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/transport/__pycache__/options.cpython-39.pyc b/pym/calculate/contrib/suds/transport/__pycache__/options.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..49f3fab4fefc1643cad640f3443bb7293f69e4f4 GIT binary patch literal 1593 zcmcIkOK%e~5cWRu&_YWuJWoEM2DJ%7sDcQg@)A^_g4%G&W!c6~y6SelwY};i$*KJx zzzzNhzrj~d{R?nm#+yxpT2)+dWXCi1e)G+YXQH{efWY|n`NyaIIw3z%m>oU{t1#6f zER1vsbC{bro#Nl^kk^EH%s(N_=iaf`^;u<;G^$5;gBMAp6jyXtFrLKefNB|~Dicyu zk?B~Zsu={QfJz#UaqjhSH#=MqR$;1JuyE3Kz`DzvuE$*Foe;3(gQbe8y)V$B6_1dB z!k8%9RzSrveLl>jI5-@`_E}2bbUGiXRZuPH7N;uXy|^E9Mny^`-^;nuYKb!5k5f=a zY6^vLh^0kOByEeaM4Qd#xcS$W!m2*Zc$=;bS=`g(3(f&Q$`jqD!?RQ5s^eWQa*b>^ zxu$xX(~lePAZ$FPlQX)gcu%BEH7+yUPegRN<;VA@ywLJCj~JH>G_>ddjv4#wBIVO_`#_;w_Jw36gKQ%I zUj~*!&w&yv2Ua|E0`eB7+JHrqv8x^CXg4Ou9_(E0X}=FuXeEEDujmRZZd8lipfdJ! z^-FC;M()TPIbVGTdI(f)ZQWFC?U>r+J)d^LlBrEznyHuZH}x_Ojk>9aA?7FyyTMB= z%@~tle0+Pxi&JeX_Q4wuf^YoIojAo$@Lm`;eB&#g^i6eVKavAws!Z%gaN~-tato!t z6L}qY{94({Otq%ntW|ci>`*Si#}8mC+z`ii z183d|@b}xV9xY57Q?ul>-l#}yza|JnXp?yYu9>T0xR*ys;i##FArrkYw9uB^%yI+1 zmC*Ib9hk}{&hc+r4MN`rZFe5oHm7X6*Q^Y|&$!evSMpj3G6Rf3kce*TPYPmB(IZub K#jn<#y7vcZLZICM literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/umx/__pycache__/__init__.cpython-39.pyc b/pym/calculate/contrib/suds/umx/__pycache__/__init__.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..56f0364d685e9cbed4d69edde5691a129e71f634 GIT binary patch literal 1219 zcmZ`&&2H2%5Vjrf59u#ZkP4R^plS|eg;Z6jLRFzu94HGC9MB3BvTL(Vn@zU1vuwB7 z3+;Q*9ystOJVUOW;1RgMOwujO0Y@{o$K%gmK97UBIh#QH^7-5Q-&I1s<7B#Vm~4UR zJKzLq5kUouXpglRB~OX41V1H$OLk(lEKzwy-0En@eyNf{D5Q3JiAW>pJ4tMUFb?Cc z(}@DDA!HIqr~Q7SjGe~4Kn=pxk$i0Nd#c9kkdH1;d z$!QoPhvvU9tHU0EV#+jFxuqR|yheeP1*r}SHE9(XpgjZAkHHyoMl*6wDaoMsnIPb; z!gEu}*je?QoX{ua-O^h&w#MAlGLl&tKd~q|TonXlrA@c4@Q}Rj`*6p`_j8V-<{bYn z=SVB(QK(H`361ROyr!iIj8SeS=UPS|6mrU|2Ok5~)j2)L>EJ6-3lRKuznzAWXtV`v z_n@%?V8tnYge(3pe@*p$Xu^-;B(mt z<;B05*w*61ObiwCrC?zkL^%gfcrL^EgoWUjpM^=x!amCe;(VdSL=+gtUO;zx4XlM`cAkp4CL*X;2Z+kDU?1x@P!)!_ zpathPR_I&c{3BXHUJSk2~Vzq@!}KI{9$i!G*YYJ3XJ-o)^Yp z=6Ro@JLngwP3|s(*Ir5kijqY^Eek4=N8!4Hye8k0AMZ^8iA!40D=P1u)(iSQq2#o_ zK<29S^rgs3ARrRLk1C;1Y%~ai0TW}*12zU)#GFA?E1=CorBRk5%Vk`}_U4vVbwqg| z2yh}|BvvA)rCnXekTq}z0Dcpu?+jVT0rfSw^TyU$xQasLwJzzUf=carA8?hkC)G0cg!N*g(Dp8`7+V?I8>n zG518--?0_r4wk8YEOU4#`b-UyJmRb;v_+}l zmCfWl2E8PSN;l+30K~)@WLdi3>8M~JhQ4Y;JXGSR?L@*A37rnmFyZj@bpDI#nTV29 zbS9rKb{&mI?a`jz?9uM-UT61--gHOAb4|yZZIq9bM0&e5upm~h0gsq9Paz9$=$R2K ziSNrbHt4xSm{;fyv2DYq27Z5A^~x=TLFzgic){a&o;PcH-Z0^Lg#DK1o#uYDkTg7x zCxPe54LlB$S>D0sV{EROfDett6qd-ZPoOGHcbi%byJ0u&O?y*Ix=vl*2LW8B@b0)a lwrzNQ7Cq&Uwf9=L;$gY{%>H_A?en{M2A*hHHnnNX{0EDdWGVmv literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/umx/__pycache__/basic.cpython-39.pyc b/pym/calculate/contrib/suds/umx/__pycache__/basic.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..8e0157e54a40dafa38e9acfa0d162e11d7a0a2dc GIT binary patch literal 899 zcmYjPOOMkq5Vn&v4W$)A;()}(2ZYE$_*ZV+=lu^T3|5Z@?^XFV<3f`;(^*2A zB4~jt0Mh4TZS9m5O>+rm0Yn;3Ej$v{WK7%UyFInSks25Cn=bNOd@l zUG8xA8pR&>fWFuEUK-NX(SU%Rl5&0_lA6q$Omd)q+!Yf>c2i=Y59Y$aRAdUS??I^1 z24CT=Q{x+FgEr202War>r#)&o;I@g-ny}(PmMT^)h!T|&S`;;_vl7_k6!Km+kbi{O4N-i z0Ep;@>%FKBlrmT+WVU{1YxDnP2#+`|iyB~+sX^PXc6STi*3&|sx1N#M_LJSFA4r+j z`V-mej^{knbtJQ*Sw2}lJEq4^$0AL~M#Q+umt)%vQFW<&I7Gm;AwfZaS0npq(Vp%M zo-v@bV7Z{Q9Z;H=ypd)+r1VR}np?52G4gQU)+UEn|aS0;sCy( F`xj&E-%bDk literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/umx/__pycache__/core.cpython-39.pyc b/pym/calculate/contrib/suds/umx/__pycache__/core.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..58dcf01fff331e655f539332379317d7e2139a2f GIT binary patch literal 6747 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/xsd/__pycache__/depsort.cpython-39.pyc b/pym/calculate/contrib/suds/xsd/__pycache__/depsort.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..57c355ba657c1f5cfb184c33787d74fcb0be8aa5 GIT binary patch literal 1793 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 Xf!B-DvhEo5JN4J<>-AcFvtIiTtRtT~ literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/xsd/__pycache__/schema.cpython-39.pyc b/pym/calculate/contrib/suds/xsd/__pycache__/schema.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..b9ac2cb9e1e93e494d81e8c9d5d0aa496c7484b6 GIT binary patch literal 13103 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 qe!ra3u=UcS73Tg}GyfM?bUmE_ literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/xsd/__pycache__/sxbase.cpython-39.pyc b/pym/calculate/contrib/suds/xsd/__pycache__/sxbase.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..579e2c5c77b793eb6c78f974535cf56e438ed643 GIT binary patch literal 21543 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/xsd/__pycache__/sxbasic.cpython-39.pyc b/pym/calculate/contrib/suds/xsd/__pycache__/sxbasic.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..2a743a1b116c871b1e0ffde640afe9cc1eb81ddb GIT binary patch literal 26478 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds/xsd/__pycache__/sxbuiltin.cpython-39.pyc b/pym/calculate/contrib/suds/xsd/__pycache__/sxbuiltin.cpython-39.pyc new file mode 100755 index 0000000000000000000000000000000000000000..f133a78e0dc3d16008d7b2d387ded902eb693707 GIT binary patch literal 9120 zcmcIq-ESPpai6c<9WIw2`mjzX3+KKM`?PoB@Jp6uh9;;Jsf1@~?<~>=Z|uu@xYN5F zYIbI?XZA$yErGx~``K@KF%sz|fc}Dm;Q)cpesCTF8*CGyI}ml)ojrB!5lY{7c0xxW$hZx5x_*b$bl$l53)E%61v; zF}I9%S+>W~9(OBfS7f___Jli$_M~i2pgrYIqdhI#lW3oD&!T-+wx`fO=blIVylhXS z{U!GT+81Q|4B9Wa7ty{b+h@^!(Y=KBrH7h*&NVib>X&=hZuw3W@rViD5j^5S>;)~h z@zGA#^WzyWIAq(KYb{1#mkM2#iJ_RZj+_sYGTq=-3zq+@wMa+jRo zV0MKCq06m?4#fF~>IFQv@I)6;#L6SJuk_Wv_E;ye^_9BjDwsj5-LC3_#wTXI?gd_4 zuiIwe`M$H`^QxX05%-%(FA`pTZ# zS08GJT3>4^O>I+oqSmUKAatUH0;?%f-9(WT8oQuSQkxdE2a>TCkL$AMt7vAFRMg(2 zq-4<9P|=%zs7{Y0g(h=V$-OO!x2mR-5?h8Q(jlKJK#^RO+B4+@0M@D{VmC3fUQf#P zdOLKxKGiGr`UhRd&w5Jrx*Im?b;&j{LD(k;Q;bd~Iq(uqMk_Z}Lo*H2kkAGIBOemN zDxPQw#W7`sI^t{m%z#Q3Xcv=0qE+BU>`~Jl`&fObVyBm}{0eD&82a1^dRI=W=uX;w&- z=us@hIlz<2`hMH5$6>v55buUTqC+zhgBF$OUJ#={?VuqT`9wgW zUZc%Hrz>71_>pqR8tJ`U)eI^TwMauIF|npf_z4{$Hm}lP(y3t`;RZAU8Y1-o8Uj5i zC57!Ztg3hQq!LIw<)RaY>X;&&5Uq}>q-aSmA=*@gB--nJg+$m_9;$mfgnLm6*Vrqd zZy|+mLJfw+S`;q=i@1csHi$a$GOCG5w8UPUCkE97qd`a9l8hn_-o!JI5Tv73R8#Fu z$#ss3=SlIY;(3h_6Q&{TN3tNxLkb*`u_9SO4g_o98TouMIgCmAwy?b3+@FvIt^c{m z!#G_Yg&}#EBoCre%0zq(D?U{a@1XOfAkGaIIw}l7=j&5BUPZ?p!ZpNkf}PIsx6wPQ z`FjOdyRV4XU<+vnKpX8+U~+SBY_DvW0F_=3pyRwUWGyEK)^d$Eyf%!)e?Y8dhRmL_B6;Q<5pT;91<4W!eT%DM4DNw(`oQeKOy89bocWAPiY<53VxL;?`Bh_sL<5Ja|mZiI~TJ z^|x$(?yqM8tdR>2fD^bZU#CNmbQbdF(7{%|#pW#bt^kuGaFf;%gfZCB^xrc zfDWzvFEZ*#{^=Uof;E@FNEBo#Zn<4_fhVP6z*>%W=F9D~s#3yf|W4Ufo}un?do-DvNl>5im_s`yAHc z!V6szsgrXg!{-GqZLm;S>}J5i4)G65fhXjW9z|YD3eoX>sEcc{jdTO#@UZR0nB{7Q z?UgrQA-N&?fTCmcoeT{r2Rs1}zIBWBxCjxPkoM&B<#;nRP2n^$La>aOP|{0RX-^E+ z0+h{=$jWhE;ZZf)7a5+6I*Z*71$5hKcYMCYX6CJh#j9+7;rcgjeDnG@tgl~NTv!C) z&G|X{SaWk%*~0vsmD-J}_8B>ApOH)cryXfJwWT8_tu~^lQYQ5wD^90!VlMkmd&hNF z`e^+h9;J6?do8s~R^B%<7kR>D?Qh|UI`AgbFzB&*2w&lm_E`CWeyAR5hk9R&*xSmF z5FWYei*W7l>(O!y=tIQ7_qAx5`dZ4N0iUGSHy#XPUHonQ9TDdpv^KmYar=>B0Vh86cxhRnqt4C|-{S_Cq2Y&?NHE zTAH8KGy)gs%uTTy2AnF*^>LcV*0gNdut8v5~E2 zu-uI3(aAB1?+*y06Tl6bJV9WBXi=wFK$l0JfYFjeU9uANt~5RaY=fDIK{;u)a3;f%l; zMz-Mk`po>o5L09rCnyW?dv#`Hf0BjJX>ZbV0YzVVfAUa;Z;u%Bdx*C`kVy(@9iBkp zF#=JRX3Zt){&DLtw%p9*-a z^|*_3BhhgVCq<{z;eneJ`99nxH!=1?4*_-C3xMQhLShEIC3i|vOwZ-S%=IoQ!o9$5 zx5s5qy%BbU*sgSdBCdzcCj316!qM4R9~yN`0Lg^`sT8vh^x$tmL39I!GKpAx%v3KU zDo0$do9cO_sLGnDn|cLxQ!N+DS{V_0S)Ep2(l5)}WwrN}&(XB46X`k9dwDJ`qte%8 ztgFg2#tob@H)8FP-p5ITSoad`2TE-qwz`IM3#Sml`*@C$7(>yOpcp?Xt)(ZUcndA$ z@$`ltrP0rkq5EXf)2MPChN@MfT(%N-CM{L^=`sOvb^)TuGOp zH78>OO_Ag!;|)r^eqR29w9O_WDG`F0nNi}zMC4q)iRhVn8+b-OUo3hqZr>&w*qb>e zDw7uSL`=4IdLDz;K9Zth$YZcPUlAZxH7rB@C_+Y3j3_xZDE?OHS zrF42Uya5FNLP&<9VS@dc95lB#(#WRw<|#bHrhRT4d@{sAL3yiF`S|{5zXd z{;VAQHeUWWLNmlcg8i8sENtHigVw2;G#{PMjemmjBd7B0ziF`}Je!iVJ}blS;{E?3 z977Bv*a?QgV^mgYAno(v1dNMxKTKI^dsDi6y|134W2timHp!cjTGe=(tr{|c@|dO= zL)1|G4^2&m111LkJ}M_D{9hfj|^=Y>#lij7;h_gd+P_^t5!htO$-EcuBRnndg z$Tjx89(PkEwY814#Hit>$1Z$F{uFDs#TQ|2h-l-*p zIJ^(%$@HC|)pc4Jvaxn={r0A9uGh9Uwl>x`?Sh2ZMG1J%F4gXCz4Pt$8jz%wO?zyY z@4w{*jySL@J5I!}UrSrkJ|?9s5oM2ekwj@BB?kL#PvzOJ%$VC#xp$TW&ce}qH%o~P z!)loqm%$Q)?3G=~k&|gl3ej#TVtXP7Zpx;ya}e{Rk#C_T-iFk16B>4rSWCT!*8vgl z5?JQ(N$F7QB4>jHj9qTM#~pDOf#9xPkac^kC7Wx`fo-&?ET#avl-*7>bYROrRHx?_ zo``PR5RNN*IKr2+`@Y^U1~JfGr^Bvu;u8XBBbI96oc@b3&#X+l- zTSC6pX)RIGhyql4iLUz61Q`Xkt1{e`W1vxk$+CBw0bXUzE)si`CPc_3XFL8n4QmGd ztZ#q>cS+dXPAkG4=^7T7=x8KbGdQ--lOl*m*D4HgdUZM8o6L0HO1nn5M%IuX$u)}e zh-bKO)?)23C0F3cB9%h6TXjmnIUwj3vWN(nk#$Y4(-|qKOX)=lc14IF7Gz``8oZV9 zB28HnKSr+PkMklQcITtCW^Kv~{KMnuNDNCdFZwirq`e~&5j^e+FnSB5HsnG;x%^ka z5D9|Bxy0^#l>al}Finq-z$|f@3eq~9QzRC7jV8bl_=bh5i79OAk% zflKs(c+$>V^~~`jkA}*_Opucz=-?IP@JYW}UOfpi!Jf6Abi^_822wr| t1y5rK(v<0C{t8{vMz5j3RXid`6L*O6SD&7mJ~KUuZ!}$z-@^3d9|4&|Jazy8 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/__init__.pyc b/pym/calculate/contrib/suds_bak/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..abc072ba578b16baf84949fac75cef49dd0c4774 GIT binary patch literal 6327 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/argparser.pyc b/pym/calculate/contrib/suds_bak/argparser.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5d658de292aafd457ae2ec163168c9842629b70 GIT binary patch literal 17516 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 SY=i2AK}~eOGyh-n@BTlqV`)bK literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/bindings/__init__.pyc b/pym/calculate/contrib/suds_bak/bindings/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e557408d4a18a2d8f8b7ba30f30eb517701ca61d GIT binary patch literal 242 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 aD+tQ?0t@#ccl}Ols&4{YJpE(yNB;|FzN}6F literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/bindings/document.pyc b/pym/calculate/contrib/suds_bak/bindings/document.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df7717b5ac93b8658c5318db3c47c6e09298d8e1 GIT binary patch literal 5307 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/bindings/rpc.pyc b/pym/calculate/contrib/suds_bak/bindings/rpc.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3158ef74d3694b3fd191b93c912f0f77dfa3fc58 GIT binary patch literal 3419 zcmb_eZEqVz5T5f}Y$s`>MvVwa^i)xBN^65e3xo=_4TTmpAvzZdmXNvJt>a7Xt+(se zQSC3J9}&Ny|B)X6&&-|Uv_c3qwX&0aotu5;nVBvBwcLF6!OPz~Dt=}Bzm2B6(cB7Mt(CS1NoJd&vRjY48+P}H zJG=IS=UM7?!oaA^4X3sn`^A)sy~J1k)ZPnXKZy5ryV(r>#;;{TqhWD1?=GNwFW=oN z@fuIu%}<#s`YL`J>r;C}6{*-ToH^ach)W75q|M|(pRxw<`$LY=s2JIVGt z-06r(Fr{M{b7yz!#0PB6T{Qg_gn|zM5@d-z0jPQaq$HgRyMt${FLD!`e?rHIA7S}%i4IC^{G`PFX_+QvIw+F? zTo$eKzY?uu#o~EDhb7>KC9rYr)#YxBzp)cQP{26o6^JW(bLPD+qu64O2s!j9Rhh#y zF-!<>MTJSKOalYg_jfZj2*w4CyjY9twK5LhNIvC=Dn@arTwi4{Cr4biLf=_obrzxU z3YsvMtoN*UtV@>1pJ5}}bb<6GI>2OFd4&wqDve*r4B!=deDkZOX^kcoG5{TjTXaa2 zeb0SNu1^;zUM)N@$zjG8%reKI9C~nifsV^Gt<$8=R6lG`_9soMbbzHgtF&U!Q5^R< zEP8T<9%HrJV%SbONBrP0@DATaAPW(kylr0@3FYWeI3>95B(W04x@oFnzr}~d0ir{; zxY@pzEr-vf%N&ShB})>6D}$rHIP|F-j+A7Q^sGKI>>~~{FNqE8{}@BP20>QMI&ZC6 z7p&#ds&&y?vR15fc|7nP*&1;kp9lWTX~c0?Vl>Ao4`YVN8zLYx6$^;-TRTkfGhbi{ zN-~v(vm1Pg@hp1TO173MC)VCa2RwkK2at$fP(irF_9LGi)+xKeLCaSvBTNz0B?2RW zJD&rqKqRJ~Rph*NxT$FuzweZhGT|rQh*P!Ao@?9RqI%@@qE!@(Nl_&>rq^&F&^G?K zzQk^%PP8QhnagvW{bb~Z!5~n+y>}$@dAhev%oS#4!EK?OouApX@7P*pPXkXCGwu0C zPN^sR9y~AhwYMdsPUrhFWky-ds`xUt%8Sq`MHy?_v>!gdmoH7{)&zh%kBwM=B1uhX z9P6DtkFj64LJ6ybI2{?`gyb-WLZ_~$oQv4y@Ky;1o`0Q4m$7(OB1s_LVuP5nw0Hr8 zU$t61kObTB^OyU5DHi>Hl=!2Nhnz+GeR#azmsB8G&v_rSj?ID<%x#n2n^h^v^_QSc zGv#Ymt<)$tYK?P^vcsvuLz5p5?xJZM;=gM;3O9#`{t$u-ckvprTUvQ0NMifO#_L6# zwR0<>Nl0-JqabpQMV3ZQoY!&QBfi`o7n&u%<;0crAjx2k&YJ-v9*Nvc58W_S*)G01 zO921hTKzkYov?lu$jH`Nl4gNxlwHKzo~sdqKW{&@eZ?=m>~!?ag5?oH!na59+^T;I zm>;9DY&;b)`5TAdBUmgzb2ur#MYxzgr%mf(oC8*GaZz?YV!>WMS&7 zpKPOPetP6I-jQpc;bALJcCl7+1V8f3dHx1E?P%OC(yauFa}^7QX)CLvQ_I(Rh0~3! z%wCD@qT?{1<^422tz9V3^PZ$Ahu^dksc!`=$vn66T=VrR8^(6mN=+oE6;$Vya;?19 F{s-UQ+kpT8 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/builder.pyc b/pym/calculate/contrib/suds_bak/builder.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cd2b4cbe33b3d02abcef5429c563164da148afa7 GIT binary patch literal 3552 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/metrics.pyc b/pym/calculate/contrib/suds_bak/metrics.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f4066420fda73404a7bd67a80abab11ef8555c07 GIT binary patch literal 2073 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 b#+j+kUYNZ!dt>h0+|=Ck+*#z4bJPC?H}m%v literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/mx/basic.pyc b/pym/calculate/contrib/suds_bak/mx/basic.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f450c243b7f6f3eb8b5928eb6a09da38fde63b3 GIT binary patch literal 1239 zcmbtT&2H2%5T5*WK~a$qhzl2dKq6bz>;+Y5RiT!`0cj~H?E!iT+1R^H2VB`ke09*rnJ=p-+gQNH!p}jy8eQxUWQYtIPxh)Iv;i}3T zdzx#lnx!aoZmqIORQ|#ddw9T++3MU7-GjPOZUddSbbc+_ryZR3DH?^6Q3YC`RHNb> zj})dyF{Ng=&_n{qKJv4UrHEVOE@w*i#hsvpg9WeAH9vuD!pmFcing(SgN9ZJaW$FX{=iefc;N zrk3iDqm0VoLlKXzK8?>*;g*ZsT=v%zR`@8qLyvDYVM3UU$txvL7E>@(B3Ok~lf2bV zly(h8a=VZ$<37l;B+CdP%ho}AEQ;x@YwotOC)&mg#l8{qO8=cnL#KvfboE}V3bS6W z4?4OUgyW84cD^h}{d&-qDCI7sjaheTG4+9?UbIS2QgTv;p_o-&T@U?6Sk?g>cD_A-y_4;{8mQ@XU|VSi)qKD`nanOzf_aA1k^`Ghyhq+)$A2H! zx8-pWFREI$8mq+EaCQoo_`pVv~&|qR})Nu1yC+Y lHFxx9hCQ$6sb zNTo-zm!wMeB42BzJFV~^eA*7i8*1LP;zfv?No-VXu8qek4peF%H1OcVq&FGiiS22k zr?1Rb((kL()Ocd53M5GB2e|Y%XcUlui)br^2Q2Sa2^A7*BB-*kKp0RD99&>wk({NT zM&@r9jyJdmI5b&+_bnEdMXbAIIG(*XiF+nYVm}JaU776h(~=Gzv=QF%Q|V{ut;=he&wv(v z9Xrn49jl^mU2YxD0Dr{8dITh06hO|2gqhM_}2({@%VLUl_=it37-j#RPRKLHbCxKoY9jp-~ zo$+1P>Um)t8qXu{X);1od-OwVfi5=MhXA98Z0kKo99M(`+lLk6u!D{v6XJG5q*n#q zE{I`W3>QiEsv>3&F!ZQGE)SdH9)wIyMGRY{W~W`nTl8;e3J9-Css<8 zR)(L!IbM$2NvwDfyJd(Op2zFo^RmFj{z!SAOVKiQG?pMdJ53V9c)Ik!ETYM*<+(wg z3()_6$wN9b58r~w9*f0Qr{!F9E;~(U)#;J1bP-oKY0MUyGLJxm<7!SNx^YDMF;k=} zhBcxHb!KE+DBXimNI)57{({y5d7JoVsIhgJd4D7kPRa^54-s;th@(QP^F|8ZI%1 ziKLC68kczIu2LUG1~sBY6Pjcdx=%tpLu%nStV4$;8${z0NO8$2vLWR(CIm5Kn*LtL zT@gr^mITLYHb>j!h_QlGAyfP;wo>iAfy<`98mB*6RE3o^0JQzKoT`6EUt#NJs(gcT z5C<|^}61-RujvzeusQcjY{PV987_Gf3$CY@}0iEH-ds9Ld9mWZX7 zr!=3E)qNb@wk3s1({^HR=H*ib*V8mfZ5d)hoskusnrJb7f;U;T8~3A4oB-N8Y?S`9 zjI&+bHo;T5&+r@gS~9y;Q1W*M>~c;gkoN~+Z;+>UQaNAC=|R7hqWmCBkX5L>`R)L! z3!ZFbG1yI#NcnNmKP~B`M{hu{qaf!?XeljwMk60RC)qu$AU`lK%-VEX$O#V1&u2(FWBzoX zhLW#w<+<|&#Q(t1BFF4x)zog2v*XXrLrTZID~iJ?D#2*8Cq1P@5XObk(cFS$hdd(C zNRw3Ep|teMM+f!Ua{!gM&M*eH9G)K9DoB26Xnh%|J%17zdqyd_{8&(?{qBPdI1%%W zd{063Gt)A4AWOqjnx9KV_|Fh!vbTL-M5Q@D9Zxq4Kb8r90|eV2D0pvoRMV4UzHh)5 zB0n5XU3yr4uzLoo@dMSnU7B+ujJCql=KCW*(&t#>`8=0<@k0Ssy-j}xxzref)AL42 zFo|$plx*DKA1=Edepv)*js+rXE8mokbiW03nY8s0?GKN(rc4s>U9V90#xgxs;G zBbC~}PM*l0X#b#-AAIehnY_nYypICnGKCql271}JvwFy(dEerGl{VLWMy^*{I3uq* KtCdw}x%w|puIRr2 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/mx/encoded.pyc b/pym/calculate/contrib/suds_bak/mx/encoded.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8a57c2e4d501e8fda1318df25c7b291328d08fff GIT binary patch literal 3691 zcmb_f&u<&Y6@JTKA}Pt1C0mVpD7Hl$&_P2bX&V%35ja(1Ab=seD+6iO1k8AMC6Zb0 zQaeM3Y{W~|Q%^bc)Kl;Mi+b&~#{#{!-}h!IsfPwh9GN@&=Ixs|^M1_tp6mbG?0)|0 zUq6kd`m5vp5Rd&6hD789V<1UQvOu0yRLxU$$?7s`$Vo#2erZV7lu1iYT7KS?Y)vL@ zIcdwJBPSitZAsRZ$-11ZOOS5JcvHr=Bw3To0N>k^Hsln#I`T)6OOfB6+?J#($Gvr) z=>dlB)3SImN>Ur9d0ZrE5`Or_#FTbuvMeo^VVoIjQ`_&3{)4|>fF+K@>z-T#`FP~g z(qx{|1moFanwGs9Mfv@aiCs}HTnqG*=i@YXUbIt*{(6?;D?Mf0LRWm?k8E77F?$Z1J*+~c9_8HR3%zxTr9C+|HCEeElOv@avJZiJZ1|s4Xs;b^b>c8X*)M<;5o!&|BS(j zj03q4xd`O4Cd-;!)TI1U9Ed>1b#V=GO*yUcEBIu#WQ9>TVyXhJv7!hS8AM{In&)# zL2Rtk23Cj2af1q_dz|Mjk09_d4j|Avr#^qzcK&$ zJA-$Ax}Tn%?b}&m_b2mJy!z9HYJDB+>^AkRZ3jOHZU>vePOyh@J&5TR-VxfW0sK3N zn*oILF6$EDHAWhWeAbroH4?|3^)UimXQU7#Mye)z2*?t7*_LICz8^Pa+?3^76=%d2 z@mV6SZN~fpl1GD)H1w&-v!!`*okK@Oo<{txIRreKXv&QI-0AU8FGtiZ0ZyYBPN1E)YO#ByB*A5(H_{*tCXg|+`4lOBOPp~1~|mHOiVsQ>7fUF z1Sy-Nj%oaG9L%h0dAWG#W*+aKK&RcsAc(_`Muj8e(h0VMn0qqcuAt)utcObw5#lvr z9~1n5AnIFq16TleAsU2$hM-gdGX^czPk5fpCa*QzPUpkn;P`7_Q{j#xlP>+)Xe}H|kG_y4kaUlTc#_@iv^D>=gNctrFeB_2`LlPSn z+DqBci!5OqL|ftl9iX;I zH`c2DO8Ovt{KcWK(#xv@JSe6oCE$9WFp?ri1j_9pzdL& zQeARJfr?W*Mgx7z~mk9t^a9iddtfH#qPN*Jdd7t=ckfLCCkv2f*Cv)H$)_5B2pZ<5mcM43V)dz;J^d;v?p5LnMVz&A4Gx>DU+$MdE z+jYWK39r6M=jc!^uCtAP!o@uOci;sL!Y{qs-(?$OX??5K4Z4WmRr+3qPL# AjsO4v literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/mx/literal.pyc b/pym/calculate/contrib/suds_bak/mx/literal.pyc new file mode 100644 index 0000000000000000000000000000000000000000..44d2d3c80c0580d475d613f6bcaaecdeeaa714d8 GIT binary patch literal 9850 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/mx/typer.pyc b/pym/calculate/contrib/suds_bak/mx/typer.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d6e5549512f4a5df6a51cf6d928a2e9f647c199 GIT binary patch literal 3819 zcmb_f-EJF26h31+PU1F7nnKkdR2HeIuGBgLp$bI^722wb)CROJY8wfe$?hcCbUo|t zj2lNuZYbRG2wd<8JOP(H1h2sZz<1899XAz%(mL|gGjrz5`T4$cru9D;T6VhQ6t6kI^}ihH)x{~<_*ecsNbZGCgwAg&QaQ=ABbKM zJ=vJ0be6j9c~<*AhSt|*@jOe7iyn9HM1Fse+3hIFwR6UGTCMCaeA)_vo{y~SzHtMc zn6T8q(nB-yVb;X#tIb`Lct67%`vX(H>b-!aU@CAlrtWgGw6q!2hHfXCxW`=IU z!{d1q^ZL|$7W2l`d=B%OsrmegdF#ad6y4l7O=f}8mc&KT3q>1?EmAX%rgo9Z{EjIjJ@iFi`z(oyGU{tP)H!0z zhi@g%b;$>eTa9jW_#_PzJ$7j_c&F&cbk`g#&B5Uggl+2@)8{?+C?~sj%s9qfg0~Z<%=4XDIF3g z4J(M?QJoHvL%=PZz0YU6VTs2kYe9aG8f34?$ywT+8UC<6O)_#h$95(1D zMT+&cYi#9jz@tQhBlpEPraI5}BWHYsP)q!;x@hFGRf!e?QD&P%Z=y}@Od1uo%E?5} z+QD<356uxyAvt3mkq5l7B#h`pk9LfW#*$IyB5k9g0u6&IAiUR zTh(^|8lQumRpur816}IA7`+-juHX}rE!%ROA+;LaKX7`~F}dj*>pOSDzekh1Zv{=_ z%4!tY2url*OX1gEG0f9w6Yx0>61#ZvvP!|)0SunfUK&3v?P}B=m?YcE5JTt=X z{-c!>GuPXvkx0ShdSQ(~ciVWbC4c|`>oV)Swuy;3;{xZWw%D_B#G(pGIpQBujzoa3 zc7k`PlKoy!a?$I_DnKvb55#LT@MS&8T~G^GM3Fcji-mG~zYS56!QH^G&0&_OE1PNN zd?(NBaCBqz>CN8FPgczK_KF*(Zlyn3VQb3HU|&=-@vq~gdxteGo>q(1UqhX*T~SLa zVG1%cCsh0u6L4u4Mq&gfYjgpH5ENpzfgV_`PwiDw4Y~mOC{PYnkxBeSBxjgK%v9{z zu5ha<+!8K>yx}T7hI=4b-Gg(uC!C&<)8XE+Amqn4GCifX{4q_>?&}hALazxCC#VTU z^(8_+WJ2mRMY#l^OS5H41JtC^0KcNAewn~*a;3vKuCb;}s&%zNsxI<3yumemE2^1PA`$p*0>(jf=< zG5VJL_$dZL-TC%Dw?B{*tk_a?u41QjF3ONbdNAMBk1wNlv%U)s-~*n zyo~t?=mnP<*Hp(avhKrFT20lK-8n3BX|D8MkIZOC51lvZdRuVEX)m=!KUv^k#ufQ< zGYw(J@!e5k20kmSl)q!>#vfo)=#oj_2|*VC56kS0V9PJ}1YgHZiWbhP1@*2vruJLoN`^cW52AK7Emx=7 zYcx}-@*_@Sd=+~VDsfwOitt|mHl&|Q7kwjF`Sv}0gR8Z=n#bQ99A0lTdHo!QUXKd_ zEaSHWOfAx3&Qs=1ua_1{uQy$eQj`&n5kHn=4pb~Phoxh#12H=vfgLh(ZnxQ*h>F{GO_{TnlWk`pl$zw}y4_YDdzn?v9(PtqOpL2X1FEnf7 GNBwWhjc(`w literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/options.pyc b/pym/calculate/contrib/suds_bak/options.pyc new file mode 100644 index 0000000000000000000000000000000000000000..40214ad024d82aff6a05680a3a0908acc93569b6 GIT binary patch literal 6864 zcmc&(ZEqXL5nhtAEXkH%Vqt1WU*CxOI*H3{c zKOOx26MpueXhI*Gxp|6P{c&&=R3Gr5l9}cdIa82kN zJbI-by(z-0Vz0YSQvMRn+FlV_IZ!qVWR|-qORWrIWv#YbYteu4>9#@UE}?m%g0Xg& z@wA)qbGJoP)O_iwi0#uXC=#8zJ(n5nKEX(+hpLEOW5U0>irIamQk!SS`JojI?dhN} zk(>IFWzQ7s98K=$J5l;dn_BC%{$u>?r)V^^4mF@{lkTAm=)1Sa;@Q80U`^svuPM8# zaM@iMGfP=m9ZHwUM5St^d6fPRw3}$1@~f^AS7w8kI&fBgXR=%y7ilY1ir2@P)yD_j zSUDMFsZ&vkS)FV#qhJZrkXp%Vp5SMHLgR#Z(L$_HJV1P>P} zX~~h;^w4E`>RBBRnOR$bqOIJ$TA z^;i9`es^DwM)xgD^L{D8Rz78ciabxthXQrPYqCcsEP69A-wQ852b5$eSMVt3LOn zo96nV+?laU&+7#j1f~BHP38D^7jz_8B?tTbsRCL;gWA7T5NK;n9NvGZcjx(7=0Az60j#@oysD8 zl|nHxfo2J`a%G%tNUv}Lp>_Z*pd7zrbf6?KDA3aAJf3a>v=VUfkO*Bj zm=Wf&YJX$p_j^xwq=juJ3JVOQG-91M=t%{Yt!>W+Sr#w$dWw4XO|e*ybOA%jCNKOR zpZhI-M>{-QA*?;AO7#Jp&4MGX*i=Q79%ewjk!)(B-sb;R8{ewfE`%p_@Qr$G^S&<) znMNoFQ$9*yD{cZZ0ii)IY3QS_Um=p0 zA+j<%)W$?1q6fHGy>Avpg`pvw+@8JY?aaMv>9F1o8L8gU2dgAQm zc4qrkkaV%Lv6;%pT7}x<9Nls>B+D_ve%x+R8pK5iD=+uXB&B#~3$;B{>GWdaOb`WE z+dqbmbRM>hQ0Edc&mm6Fl-_Z+06ViPti6~NxLa{|k{pjJjNPUSmj`_edfuYAk%+Qk zG-NpU$ebuFf5>q{Jx@MzWZmm(qX)Ph)ioTa73%aMWCevtSluQ%w-x#?M3*q-_MxdcTmcM30rYEPWVNT(dC zQ1A#dL@YVT3M6Wb8`bVVviy`)4q}~#%_GpMEr96$JQ(iTr@HoT1@0W~Mop6p0^?b>617^Nb^8`BRRWhBrPZ~ki#@T z_vCMDV%~E%kAhb*dDPihS0mYjnj>HJaWO)6OB;D4bM91m`1z`fk&d3+$uY#-o)Jm+ zoh&GYYx@&_Vl;4Y0U?!@NkASl3yv;`wyA;dDU7$d4j5B60X*-`l59RfN)S-$0jx$=g`|Xt zauR?O4xpcnK-}E8XTV`=d6Zjndni#AAjTm@W4K&$=nly&{Fk2UHBJWh8WGh(8p<#$ zIrKXkC)@jwq{JdR+^w!9Hnc^L@(o~&p=3+N`B!GW{ zoXk*^0k5AjXP>&!)l2y=V@Xz+cQ412n&pDP7}lE^l1Ao*p)2VWXM7*U1XPTpTFB@4 z{TV;|4~(FwHRqxhDsrd;Ih36}6a(9}qY;d>M(x;2=XhY1Q!&~CzZSjU{iElbo zHhjB;Dlygnet|>T<#H|oyM_i(ply_FsW5g*<-vW1@w2jUE)e=06i0#+sS*ILhm|>= zFABmVxJFkcLO48_$s+P+Dhj=srw?>_jG|J0vkIt~z(+c~XdN_gufBqLi;b%-!ir>M zLik(3GA9q;{ODl|=TDLyckyEdL#k}|sNo{x)4J@@!;t8aAM`rZETLif31j(zY8!k4 z4645FN>r4qazzmig34^_m@{hgfO!K5?NM>IM`AM@x`LPur}aFvM|E4ON%s3xgz5LW zB-*2W@V;J6P!93C4T04lCglTj%aV;EdG1e+8)2>`SyiF1L2Ow}?5dzzU|a-xfQ=;^^S( zc!MU6)wHQz&SP8#Ja)QlCq!JEy+2g)1b%_cnNM%Q_sE7@-njjV67xs6L3j8+5o`v% n-(##t@_(oj*e3qq%iw<`|F)N&ohjqCpdAy4~X literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/plugin.pyc b/pym/calculate/contrib/suds_bak/plugin.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c3789c40d4729df3ab76a2c0624965c5795e1852 GIT binary patch literal 9198 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/properties.pyc b/pym/calculate/contrib/suds_bak/properties.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bfaaf1d4a5643ea2dba5ac723435018fb6f36c86 GIT binary patch literal 19774 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 T_^Z`}^TFx*`TE7n7eDwCM;@$M literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/resolver.pyc b/pym/calculate/contrib/suds_bak/resolver.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1485599444225407dcee15759fbd373e09101b6d GIT binary patch literal 17810 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 HIXd&dC)qZE literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/sax/__init__.pyc b/pym/calculate/contrib/suds_bak/sax/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2eb920bec904bb6769021cc9af2cb84ed77261a GIT binary patch literal 3656 zcmcInZEq7t5Z<#BC%Ggfp@J6Cs;ep$=gQawS_&zG@G2pJsV;q?{&GFvt?h&Joprm$ zwn9F^4{3j6e?a@ptY1U{i59TEd%JtPvop^;GrKPTwdsy_|M)!;(@z=C0~CD&RV+jc zwIkw^NFC8HiB?HCsw7_EMOnmU@e++C5#zTa;$`aM)o-n35m&^aw@QL`NZOy(UKrJ>eJOVbOD92EJpBvzQ@-Kpl$u&*-XdXK8@ zCs-i8ht)h*sVvl>P#UkonUFA(j~_me@pMUD((c_nOl1Pe`9f~ys!&gAGRe#^G08JU zEmd^FNXbrK$bOiG-6ZS2B2L%k&D8YrVYdf0mBfO+yz}TGgu6qnV%bxLs^JwjgSpTU zjax^ZusD`&WiY+&x};wg_LUxBFO6-b9>##9Pz!q?YN%;<*nhDqRjLR8X@-LZg7g|n zxPYLOjAfX`tkci_{hCzuZe89#^3It|pR37pJ!1y@jYfZhZuQu851xgER9OTai+y<$ zQwQm=+YQ^PI%bRYKt%~qi+W)ZMo^rPgSr~fu%*D#u5Y*!pIDJBsZ9a3blp8LlYv_7 z@ZjjK-3)stf8*mh;D=d3HGL7$0F@<_+bH@6R7QyBs2%a5B#J$vBf3v3)HWq*KLHh) zqnPl*5r^O0Elt=P@&{pMT~9qS!^2Z>rT5Tk50f-* zwBtmZdYWXz@%izU%faPu8>-uFP@FW7N*Y0sWQhra`e0(#v5GhNkum<7x)oGn{j77^ zF>7cwu@6UEMC0_K-EX1jKT#i1?&vtq4^SYK3^!S`}(d z#3%T-B3?4>S}qT+auRezYn{7mv+f3W-C1{&yX&*=3GQypx?9}coOQQ_f9QQes-8gg zO75teGKR+eRPW+B4e`-vR3BZc=S8=H$&J0MSFbb(XSN?Pg9Td4H_pF!;lds*I*fX% zA6nr$(badDe11lRh*Y9NJKaXnM3m=<+mek+OCgL2kEZc1QL33>1FnbfO$l;;RH)FX z>u70GMU*0X%nEC^i2>3KSp-RiQifHIYEDhD>V(78c(lr=*^FPN-&;W@KSJRaWd2({ z3LRGO8XA+`sd~^8=`H_?6h^{3^TZ}SWV~Oq9kB$(p1Pv=UO0}EIpQ&3J!E{F9J3q+ zbI)>SWK%|$%qn(KS*%Bi>G8C?<4AGl;n2Mordllk@K0j;dz(*=AM5xY9!w8WDm%N* zrnBVCo%AtK(4_nvg*jyz4*wM1`KPJ+l&a5AePFZw4ajVwyv=5!8GHV7G%PEv+XrX4 z3#u{;W;|tDp21v}{Gqj_y!s2uTlsk&FDIwwgv4dh9>JE74inOw6OzJ<{B8-UchGz- zW7&*A2?M7J4l3g0$8!gH99P_hJ5IfYf_E@!QscXbGrf!C-|+o|-GN9VXO$^HDT`S9 zm)QOrbNiR)>4mbB&%UEHzzHx_nNNs(G-LVjO?0N)*k#VY8XMeX<}~fYXY}9oJh7bP z6Iepc;I@&$tbd-N5q_OZW>ai30He;!*tnP^i4#pWUba_j$HTztBje21b* zWW}kJQ24unba=A7wY0U0FY2bp*n8iJ_hZHWv}Fgzls6g;De~j X&|kA)U;hH4HOa4(w##efwe5cZ0DeSl literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/sax/attribute.pyc b/pym/calculate/contrib/suds_bak/sax/attribute.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ff5655b0298ef1e7f9ad44db6ff4d5a29afec8d GIT binary patch literal 5750 zcmb_g-EJI78Lesm&SV^$1wz6K(TQ*vqwE+EtWZQ&&PFQ~HZiMqSb>Gq^i0>-o%D21 zrg|KYoViLQE)n7d;D#G+c>`XA8*aGe0pOgkx@+38H(9MclFQZg^HtS3-(S_jf7eW{*rB7ROzxB zuBiPLd@m{OsR70=tJg}sQtG$+t14bmd!1Fv-$c>+Y@8n@u{Qp19zXIQodv}tfXzY)ovCfLS{*y!PXTZwu=UEXYS&|+2#bIK6H@j}j*`KU?yMp@NnLDHmBjT~aSScF{WaL@&)hF;~P2Gaw}z%317j>-*!0{1-`a z2pf18rXoxTI~RxATJHv9F6#>b;eg%FG7eJEgm&{x7yPms7Kl;Gx3xTu;jRj?a9w;( zIywYYrW>6O0(KQkC}hbFDoP50x;IJEc)J%Trs$?gHaY&__-7x6AO2)p9~^9(No=-F zbiD1L>yD^AEY?FwVzWqS3|sRc((2j@-gPX1UcKP;2ia8{1=#<3>@oXGS2S$_hH4Oshmhev!*EnSN0ka&4_K)#a}L=;VIo`DWH#aDfg<3s?v%&&gjvml_aAAuniE zp9NuwE>0Tx7es!Fie;>Iz0qv+DW892?E(9?QP93%hMs!1s>avk6BNPFo{9yck0TIl z!~*wZ&*l%9=(ziZE-Y+Lb>I~~J{e5XbUO2$*C}0%o3>MdPfsd?&x|F6{Oyz=zv)ug zC#c=swMegEUjff=ErGy4%@N9YY61Gf=mu*LCE!_8SZ}OYQ>e^A`nniIQ-E88DR^r9 zKI?RAp32tQXnmb+L0Q_wKQPY$v?sXgxwD=-TQ_D0S`N=w^F~xs`Sd%(XzKU0Psg%V z(^&Cu<%}Al1d~6<3q8twp||TfRjQySCnm{E5oLWHuuYU*Jhs(y>i)$!U=s2x{Fzl0 zs_i9dWrN+3~-0D8eBuVjA}M)R6)a!^&pz0RXQM8 zS@_Ei_>s(aqb&(=9ahi%7l%3%H&Qnf8RYgsk%y5%UQvKJ3^y99v6a6aA_#{vrb1ys8!Kg8m`MpR2W2b^A=q#ob;Y?VemWXy zQD9QCgp$TTqu&8U8i6t*f(;7}0Rc4vtl0;8I4Y(j1%Nc;K_J`+=0ZA zmU7lv;CgwU>L{!EeePSrGP|r1T%HdS3a}xvm0}?a+Ui-*ZllxcKK!}$??|)Y*!S3K zb1U2)XcXMA`8Ns&!WpB0`(gZ&%)g8L7r8Dyj7Dk&z~N}{e?EfNk|20GdA+G0)y%`D zvZ9lmS8CLJewlQO;@2aEBlXmF+$vS5=sY~JE6nbIH|~43HRoryBSB&wE_nRl8z>6; zi?KF&dZg`@=Msa5+>jiGM_9>*=jN#>;&lG)^jQW=V-WiO1Az{Rz@9-!F(ciV%)h)q zFrkV3XIcItJ0EcC)+~U`j$(}~;~1HcZK_#-_@rv!yIhhxIuvI#vWb=BsV21aM_-CV zhG84>9f!enwAF$RX}++l5}~gksm!Q^vITrollcDu`#wd1AY;?1(e=__q2(FUV99>V zu8*V(Ih9<2ZXhj&iQeESnB{`Xf2m$B!YnD++^WZ_$5GKg^kGb$D$;BThcK>q8xH=B zW^1i;%`X!MGGVVum6UnB@Qdg`MAjG)n(ZX`Os8a(G;=!iIiAl*z`%1^l>o;W=S-cR zHyJ=ta9kbN1Xa1c3-`;FV@g1S~logZKf-l`6e$PN)m2IE9$aXPJn^H{^Z7(AIod=Kf$+ZKa>-?47z-ln-D z>M9jUsP1((&DNGx1&70>M`3~+hTL8l{tfjKhVw33x9c##2gC61Sk5LL-frh> z_$VI=XiH%z_kb`Q=J6!uCwCi$ao!I@>!|tC81UsyE>i)sd3#y-CTrhfL9-Q)8+?bg z@3Qb&+(I$8QmK8##|<$P0&Q3HLtF3G?$u7yB*o!CI;Du z7QB=M_^^lOyGa-CCh}Yp(6dMeQ8jm&XWGNjCN5{^g7(iXz8`%ZV&xvR>}@ozH8vLh E4=g`Yc>n+a literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/sax/date.pyc b/pym/calculate/contrib/suds_bak/sax/date.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0362118724393fbff5da9a4e6de8ffbd3c6789f3 GIT binary patch literal 15213 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/sax/document.pyc b/pym/calculate/contrib/suds_bak/sax/document.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0932b1de97efe1c7d5e3be90ff9e25f9d753f144 GIT binary patch literal 5689 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/sax/enc.pyc b/pym/calculate/contrib/suds_bak/sax/enc.pyc new file mode 100644 index 0000000000000000000000000000000000000000..897ef97ba6e1e5a07f22d8e608aef24db39eee36 GIT binary patch literal 2699 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/sax/text.pyc b/pym/calculate/contrib/suds_bak/sax/text.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f6cac3300fce691f43daac2ec4073b9de630cbb9 GIT binary patch literal 4249 zcmcgvZEqA+6uz^&-FCOdRuQlS$wWXGlr|be3?ZZfzF?s0v<6+paXNFmopw62%)LuX zXg`&Y#`xJ!{xN@rKR}=7+!fKbK`$|_l|G%uJz+AGDe$)X8IR?Ef2da$t7C@UB#B6dKFCEz%W}N8tOp<(27cC zR2w=$hpHUysWwg)<=S;B1})o@DiOunQ&fsG4V6p@(^N@Am}!+Xg_%*wv@pk1u+lol zL;nD2`uKgEkF+n=Hg#S%vGi#q+?_EA^&cdr#iHYP%wIO^);kQBPqbak9YnICUNWfWUo`u*L9 zL=UA5rHjLOLDo(xiB9+B8;AlBTsoPsD}EpsY^ z6Kb3$zNiaF36rzo1*;BN|ozsuc9_Zf2e;@QTx@w zOhrL+&eRl?v=e+0kDGNeFc~lY;;DVi=vaJS) zodF4%+kLggOWmRyOmLOt(KhPege9B!6~>PS+NZ-pK{@G2{Kc1|?ELYlyUAp9hciv%EYX?k&(_yoZ)`B7E4m%pV_ z+g_PF&`9CgN$rLJ`4DEz05s#T6OUK@JC7N){h`>Ai(3)_nlHgbemWS5o}~mp3ooIR z_arw20!C-+!gLE`U7kRYl32X}AgGFS%m?61ld|d!glfi{cVS{a5*HFCZlc?Ph=qR$ z(=(wt@H`h3$}qoy483tnyP)*)BZj44eEuywiJX%>XLv@D37EFQs~{2&CuS@jg3{yM z^E${;kYcAGVBm)9;0-5S5RQ*RFhmN^av?ZC>F^kZ5ggFq00#sJ6$ywqR8km7S1N3o zc1QNOM0$xv$w6hheH#ZFJ}6{VJjkV?F+XAfErE3wf1X+=k_F^aH~YrGDyap|DpX#V zXRsV~wruwe?tV=PtQu7nR#gsxRTKmszTBe*V+fSu$(79_&7X0DB?wZ3tA~y9Sc`yw zp%%v#c0)Ui@>QJ#vsgJ&{9UPzk|Yf8LYBjzcLK$7)_Y@=0IU~+!EeC8TOC&z1&oPw z)N)ZA0B=dPgi}w#nI0V>8Bu;dSQjsI0e;<-a*B<8R~h=o|NerxFPiw*`Uty@P7X`C z>KrLPWF(_*SLcbOP{5WiecO4Az36Bin_vh--j>2}mD1P{75d1mcM5cF)JqsnanSo< zaIF9~cF&9HO5M6YKgcS01LgxIl3~{#%&B`|SL8am?5-SaykTgv!kRFY+T77LvbGdF zjdB4AVzpdBw~mwn(&Iy%Ap*nj2b}M!fLDiwryOvY07Kxshlkw@L+egIWt}r^{-CP7 z2TgSk*)eWja1QT^Rk$`hZB=jqOTpV9FToy2@7uEmf&C&d=eg{VQbUVcuYgDm#C0Xw z)^IrS7lzwK(#!bh@R1ZTt}>$fG}h%?U|ZXbA_*8Sxo-p~$ekjYCpk;<771@6!9|df zUBdnMjw!{0(#=Vb`efa!S7vLC>BbC3tufh{YSg8z2hmQ99r7a#ZeSRypvON)Jo$8} zvTQ%W{NTF;A0_yhU`Cs-K%{L#p!-(X*+}CJKQ(?{Sm}Fxgt{iTx`CDL=#ii1an{4d z=k{ZRVxM>Rx!3K9snB5D+77P&)6vX?V(e%p z9dnMxiq$midD;&zGOm}78i}g~tarfz35Ad9LvV(3Z*mU9kr!|tGq}X)qvwR@ZYY;9 z6}(HrIxv>@+&?-{xEDB;_H;0$2GwhIuTgDOm)+4kQ0|}nwi4WuSr}YmdwI%>oolI- Yb7XDgjBBnMTxT10T2-1}vwCv*Z@9KWSpWb4 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/servicedefinition.pyc b/pym/calculate/contrib/suds_bak/servicedefinition.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29d38eee0e86e105e0b6da067975dd78c8769eea GIT binary patch literal 9322 zcmb_iPi!1l9e%TGue}>PcK$TP=^us=C+p&FlKx4HNu#83N~5MGjNQ68EZgzU*q+Vq z?C!kTWKH4IB|mS`@Najb!vLC?acVi zoA>wkzTfxz-kaqAJz2Vc<|psfRq~U^->bN^kDI5|8t#_za;j;m6{hm4nNy9tTFc9e z5!D<~tx>f$sw}=9Rn3BGjj6RUW%*;uA6JhowN_MKLHQ-Mff8ftL!}-m^|iG_Y;Czb z&hFmCt+cY`+czI*Ke`vxecSUlf-s1KcDQ4AqV~PO^R?~TvEPq-ZqttZPULGpj9nJ7 z+Z%Y7RIQYP|Kg`?q0yMPXO~R6i1d=%@^#0p`-7}aKfcx8-1MXP2nsBl{ui_E>&TQJ zHuV}V{Y~6ppfyYf_Z%&ONzo)ZNsMr2%o$bQh$IR$4Rgk53MR%AQ_wi$l2cM%Q4%mr zNfHyvJ0yuoB=-?R%gK`SW>8%84iyqd9z^OdZ2rr zuE@xel^q^c2R&mf*X(AXV}gho&&9n?(_gU5e3-ZIlv@~S+k1{9oVPmw=3I4dX!=Pb zcLsImE0yZd+=0}MpzrVMDDqowr-LO)Uk(pH&09d{COzMag1N_=)x_$OKl>JoLrj7r-_j?G0Fms0)5+J zYAj2E1d_aBmMTdKjFV%emsh_ zU@k5&MO$gfltqq7s40Nt!Sy^-yp$F<1=&NVx84lugJ*DIR(C?)>#a1SOq|G&wBOut zI5vl4DdRFXeF>@cUeNT;uY2&QN;3$1{pb3xT&i7q@w~sed7j>QKAFe>sg=&QjI>rG z<=1KzG^0-HS5MBt?OTY{8*s+Kuh|TYgARjkFzv_u6-T+pvUj zIxe9bdWcdRe&mM;XKWxfy262Ef8bTF|)rQ&`Q4d98%ruJX;fQL0 zFi;%zMy2c_wNsFENj*f>38qnCBd2!8q$ZZRF{vJcg)C)pY=>22igB3@pc00f2MXR) ztL%rRr-hQbpGOXce?*?V5g>#p(`SYW>Q=jb7i$=`dz)LbvT688kS$>ZY6S?Ww?oiL z4*}TCf{etM0Z;&?$hUpBj_BJH+JxqHAGPVj(qs_ptf>TawyPI1{HAfsysOSt zZ2JZqH_vR{H60*iMZVn z(P})6gN85g|R0e+EN|;$wXw zW<$2brt?|cBsK~noLT0bWgf15$3=%;1SJNE#O8|A*0dVODkn6|06+-J`nupKEE)*7 z|DR-)sltTtzFYdsc-|e%QyD z=y|uGqDGPnZy=8g@9MJ@1|V_s7=16T2_^*}oBCv8kS*ApQ2S+C1hHZ7?*EvU*wy_% z(%i?J##mRoGl=S#7zTogk1GTZkbQKTqm&pH%)rtfQ6r7OhkE@6HHzuIR z#E?IkjGiO!e!&_N3|C-t>V!0;1Ei6maPo|7FbBckv)8w6L9HKi$3xv-k;pDkS}HTd zIwV7fVO64f){KzOQakh=N&%sjz7~?|YfrFeGy$uFZ?K2cG27#&YAGFyc22W0c_YLI z+KgHRMVSaPR3>k;8p2#nxf@E0oMUW*qX^{QJ3y3kPm7gN`bFGSt^h7OMwF|9T+dhq zu-XKk26;19Ava}B<|dIhVMGZ%ArmD($3y?)WP8$}ESyfX3Bml0oa#;@?*s9QZ7D{_ zc)ZL-GCfz2{CdRwy6kXMI#8r%FNwtdrn6?1F2OJnk%ozA1j9rmA%`p^sOfkDr6BfO2g6L03zj>j^7mx*V*tSiO}j3oQh0fHg0w?g_D`QSpdP z$b5Y$(cgioSml?}0Du^_*%GlB^R&BZ_78>4nf*yx|fXX`<_~b(V*$!e;)uGqgYBhlKw4jnT#Pes8mRlwtLSFn(jJ8x#3J`>6I-g=$7w> z)X^pv$5oK4Jg>SR#9Q{c5NemHtWDPrd#!bFztNabH?D^G))(gOP+y$4E0sC)iESmC zrsQ#(kVD?KInqPvAmos;=42=8wd=hW4nPOWMGzS%fI|}?p`P_Lb#@k{{Qj2P)6n1v zjD-7H)Zxje2@g6gZNxIz!f5lz4RJWY8aMiNUjmKnj11LCXkbe`W|Zg<9$<7hkA{DY z%P>vBwk|;FmH@T!fy!m)*I9-KSpB(VKe||bMxX^EF+w*}x!m)K(nVQA8GDw6R6s>3 zdkOF{__EZA1VY*V@Hgl+Tb~p{2|7NheY5Cpm)~}7n!`j&%S7Aus7(iDP-L*kM&Y8w zu2ZU1(ykD=I1l0p_fVZo(#k=>yv@_Z!Rvt(5x4-@zy{12EB*{^oAn>32Bre$U3NKi;yf-{|M!ug+>_4?+`WKGEE^gL-9IqQ+O`!@!>VqE8##P%jCrhLNZlH1AXeQo;iZX0yx_ zI*F4p14gUYjDuRcUhhS6Jm$>tHCT4?jd_(yC;5lg3`=0VjUr>N_~Zz#>ek zZ=3SyZqYO{R1HUeFwFL;bd8R%rrFB!#cKDmH3Bxei>>5eE&Sm5U0iZdXw3Nd^p2)x zlo!T~S7fb9FyjldL)~Lql0{=5;<08jIS!#alUwcnAze7{m<-r6;}nxDmyZ*76pD|L zPWr`k=qn$;bje{%@~xEt>i$;114xRSRvZNcHBCdHeYA;Cu=7e~-(#%!YW} zvYeQujFUg;`|#ML!Uhp&u}X$V4-~ zV|B&5l4!&xFuqwm2=?Zyxbqg?$Z3}B5-S&sZsRzFaK*^`u&-F=GQT?aJJFTDp;?(- z!7S;Vu{t+cD?AoS?8Ql!N@Z>`%n=8NZ%Ce2a^ApAB1O{=jS?a4J2!c|#@je=GBZ-L zi5#4gIqAhgC4{p~)a;Livx80Nc@#0I%I3e1smGkwklX!^16agO6$*$T=MXtgLB<@j zp2$)sk$MtG9R>V7f(UaG2f3409_1z>cGL2w@w5vZ^af2JZyy#hE81syHMG?TJcqn> zL0Je!7S@cgqWYIe%TkqZFu(32Pc}#H9Ic!DFQyn_7!_|>}ti%0<2o8aaBeTbUeHkJcnc6;};1FR?!v7p4li z;uFR3;_>2C@l=sNhw*!~IA`` z*oQiFAmO!uB<(ke-TNC;J0n`}z AxBvhE literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/serviceproxy.pyc b/pym/calculate/contrib/suds_bak/serviceproxy.pyc new file mode 100644 index 0000000000000000000000000000000000000000..467681206ae0185286c60eb644adb2c3688b4776 GIT binary patch literal 2896 zcmcguU2hvj6rHslH*s4P2_XbUXdXavQE&vRDr8WVlJX@&sMe_vc^THbV|&u|u9=yQ z6D4^nulxu88RCIozz=|P@2o$HA|XhHlewPRoxOAKJ?EZv^N-t|`8&V-kc#@##P=?S z>%(M19Kl8+Ylu7&hcs)7ydkDdanux1))KlUM!32meiGuj5Z@ndh^#FJ-5ca%0Mj{~ zXz8>)F{zd_Tb`bgJu#VfGD%bIob;uf>)~RP>vcM@p5;lZGdVo#%l-2-H@fh>J^s4v zm_PC9MsV)QyceczOv4U;3)4Y3@(G=|%#OByis3$n(Z~*=!!{^KB!HZdDNS0GC{2(~ zizn?m$)g)09(3t2_bW_C;`2!6W<2q8O;)-xnaN?|5dKD?WLjo=Tb9FPo%(xg@o|ES z;D%+H>!es7yNsUu1gt0|I}2?CH`PD5 zV^)n!0Z)kf92b3=mU*A=ZeOl~;*j}jUuGut%R2{*b+Sg@-$Gsi;IGd`v9|HW%6uim>K7LxhbmC_fJ21pdQ@c(c|%st1`D!iwQ^6o1OVh zJf)N=j92Pi%pIL8ZrzEPyhKMDdl>Fj7*O>X|B*Ou5R0D^XDJ2uJIpe-FSM6Q0cf31 z3Mf}Ol8Gd;N-hT|R3uZq++I_ht_6f0S{N&fJZ>!D%OW*U!Z+p9`j%oNFiOt zy15aacNzG?Pjd=-2y}S-3*9OL)X&JjwJZNqq^eA#_r!p$P%kC59B)wNWBX z9%~PrLPhUm?FbmL`7d#5t!v9wI2BSC5QbVBuP8k!04257mqDTe2Gk=o3;6wmuQeZx zba3(i!WeI%j4`#~3c2_uEita$TZ9@F;URo25Tk~nvFxndSkP;MJ8RifK_QrBRbfaI znReW7G4bo#0aBJq)y|dr63Y-{=zbzOjXk>lISe`;-H#U)Vl40SlHXfcUP2EV!tQVq ztPO7rAYGJFOB`>oSTw{S!*2^N^MR-AmEs=*o~jRKTkqz^Pgs<6k*yX=k#;J@#Xw0D z@9nAwYfTHCNrhqfcrOW}H^ob;RDH5i{4(FfNg{eXYDYI4U0T#)N+d?8l#^1^GOKc0 zl2{;(GF2+3%`x?KOvuM~$h;1-3X^C5P10j3>|G2;C$u-)jjcOd9sD&9xY+TVxEx+D vP&rQ=Ai3*>7fN^`(UVUD=e{wgreL2hB|5IrC!s12U!${0Iopj+^h)zD>#5O8 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/soaparray.pyc b/pym/calculate/contrib/suds_bak/soaparray.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5644beb0dbd65e851471beb7564a2e2d29a84ca6 GIT binary patch literal 2085 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/transport/__init__.pyc b/pym/calculate/contrib/suds_bak/transport/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..820f7260c7febd3f7e311bad4fabaade551ad406 GIT binary patch literal 6195 zcmd^D&vV>J6>iPglXwzuvVnCKKMHzTvOA&TF;zgIT-27miD6TfI6=-9MGgpAYTI%& z(xBEPHc2>a!htHzoVoK4@PBdR0^j#q)6yic3+wEODXZPxQonxv`g`Ad-Tl9>4xfDY zFTY7t^XudP79RV16sb}VQ3fjQsXS1Vo_g3*0o#3*_tnF`N|%&bQU~Z+Rxg!$q13M) zE~|8)Oiy~x`QCv_&(C{TeD67x4wX4C-(K*&E1Y0&bdh>|55@3iS=4b>SY20fVW(wP z>#V3vbr2^;kCHsL*4S&~;V}Crexm?mYL5P-$dWQOce9hM*sb3}&x5&uovJD;zw91f zeT2t;6@|gFu_F8_^)lcx!@Uu|NS09Wp_OjpvG1d(l{ya8Go_vd>ILlctj9)#vM&`_ zNntfqYInrZ^$Loelf+Ex3=2DtRupALR!5OEj_P_!wQJ6KFm+=%(3pJuim=UFj3SwH#7jp)V?H_YMThMlE$!`pFVKJ$2b8gg0R zz+*Xw3N8mLL8GzLv4|%IIu7wNiY8?`%h{wByJcZyc&mxj&ZG`4_H{g#b{GWpIs6OF zZ)e8Ve&eXJY}^Ja&BkH-dPFAw0`(H8MWsh{5u1If47jH>o&6J}4>f+<9duQ08X$^q zno0F1;T_;^I;(XW*Rh_&r+VM$!|bssbZoWB>LXL>Snr?KMwhJ3900YgtE@P@F4Fcf zKC5MPQP%h*<)GqJCs~!uCbo`?#8{m;%0`Um6hUzfp< zhvm4nIQ4aXIyKkzlcOv*`UxfFF+{&64~xsJlLrBdCJ-5oS+}ysaiwQfzRBf?bq`=Q z&g$(?^KWrp_Z<`w!EWfpSQ{T2H@p;YigVrcYAgo3V@*M_=t|Z5WqLYxazwP3!;Q1g z2=-6cK_=}8r1Lt}1fUv@w10#9$SMTEaYjwdoOEcBB(^~5fd>rO$g5;`U3o8DW-_g=>gQ&XgH01eo2dubLgZV`?j5XJxjw>&OV`P`fU z_6?e+J3&UWQ1h#x{m@b7BcvSmr%3}eI|0I+#lhw3=Qhy zDq_V-kdU&8KE4&~{u&jKa06e7lm|Vvb{MGVt`|(L)T0$u{etoHSeW_+Fzy;0*Hgzr z+vw$s0s@!R@j${Y(M}fMoqYu*th1@F+Tq7L+qZVYJ=SMb@9xgt-uBOTHtQ>BRPmFj z+26?6B%YcXwH}Tnyj(^#TxB5!W2lpe8&3&gsip#L346z7R*1JbTf5L~XLJjX6XW_f%n=8_ZojD8ipx~MJ?>B> zbkt-j@60VITDegB`Q~buwrH}B5WnUxWVdz#FUQ-iGl@3_CmGGNf@_~|%T~S@(Xl7r z?h3*r(r}G!Tx#QcNT7CJp!J3hf;l9)gW%AIcDe_-N<#a4sJs%|n{X{&f>?dfS8L8o zc4wNy?%mpXH9!yN!FhPqhD>@>(3}+$*GR^Ps$oWz&OCk|^dJ4bA z>FDA@N$s3xXCrz>#EBV12NwptmAB+hz+X-z=$9XtEPQkgmCxp*=3u)_V&ak9@+418 z`m?^i{nX!@JRc{N%^1T+HdLd64drEzQWMG0n1;P@rwvKen%(SNvoLGACr2;q&`PWF zj$!QQ9XqG6;dk&#SikA$L?XUwO?;+p<(B<{O3(_t#qc?jU#SF1Su9ZcsVuo+^M7E7 zPs8sa=aU17J8DSPPEC>>WJ0lW712prnqxw9c-_>C5uy2-j?JGt)%tJmJZ%#F=YIMv z7at&}0KfCv0kPi16BjN-M#Xc|X4Bsp$m~gbILYB`Q{TfaMV@!?V0Z`C&AKcP2uRM> zv&l3!6C9mQx+^zVA#K<0m+WGr`GUF~Y*u&pC{D?vL`TVT^ z%9x}qAH6;X_YiUdZn*xHG5b~d$nc7&J)&FQHpL4 z^DnKejwJbIxN#bSJVP{8NCp?j3(3_Xlh}~4L-PG{{}|vEiLG){I}3Zt1@uqd-R_4x VEl3(a=w0qz?5~|$`*7{Oe*wd7{U87U literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/transport/http.pyc b/pym/calculate/contrib/suds_bak/transport/http.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed26bb89be8fa2fbba6f9e5e1283a470bf17d795 GIT binary patch literal 9227 zcmcgy&2t<_74Omat|WiPj-5DUlHg<$>=mULClRSsWZ8vHf^0@IiAANB(M)SKtJ#_L z^sMc*r3&C2xlml-KovLs1Bwe*PEf@k07niSI8mf1F7W%ko}H0oCxD}3UDN96uX+96 z?|t-ZkN$18e)r42_+Frj-zfgRi^u!{MX1yoN=JnwDt1(NM6Hb|hwq~*9#yNXjj4D{ zt&Pd3aTSlN?u1&Ku%pm7sn#Z?5A`XvHZ`o*)LLy=udB8Cus*HUrib+zwKgO52^G(( z?jf~yNICkD(udVUN39)E;iS?>)dr}TQlBXGP^nvM$5dET`k1uV%huy0bfq!Poz0=B zU-C^9xK~$KZ@78pC#IKXxf^wRvF_?5_wy)C+#vRi(WY6iNB_dF;b3Auf#POjwxYzo zv+=cMTd$$Ml%`ve{-&Q*O>LdOpSIgN%V#m*YM%F2ho3C@K7yW0c+3t84ZdSjC`Y(| zY;A3nGGGOq9+k>Cx5SnS6^=^nEM2nJaZ(5*DMr1=;hkT3CT@Amx6@48!e{j6;k-1qe0ZkmNI-ugrY zP{2{c-+A}a1MXq4?68M0u;_p|0{t6lsr2X+#10z0l9KM=8o&3#^WxLG(%q$MP}MmeWMbfPNNpOF9$D zOP|s4hAd`9-oS7rg?Syd^?nqGbL(Mb@@5<*{d?!{y?L>9@xq*Lx93bhG;^idnA?O# zH+ut*rr{hO!#$~)S?8oPtfOX)0LUkq!c=L5iZI4j_Rz65Bs4>o}sja%oexjV6aV%3; z`Lx=Ga$x0g)tQlURy`b5KXg>$s1HL08#xN%mdy-Ga*Vp&IBQ-N5o~Hd)R}1Z=L6K zq}^VI9--qtwfZ<`J;i=f?T2CE;w%02XwAK&EQo*a1dA6@$P5^aVuom=85nR{sXMST zF!t~P8>xJZ?oBEgOpweB;gbq#s5qYP#RDOo))=IT>R*4)JIT(|{2mEeTw1zvWA(~q zSz`HmYw7y(>XqeH?`aMov%043J%hgzDvHVQp2e$ohQ&M!F=Sjz7gF(_V>2gtFQE|Q zmXRFqOL#pXBVr)nYgo=)LZQTj)Zks}c#h#Y0kd+#nMM0?n3hv`YN*f1ziP}0v`=CD zv)1U)IPzJ-V<<#xbQoUQKne;~gi1d{ZyA9shM_wQhRisAWBt?Wg@0S$%Pl zcrRnE7>^Ia)Aq$j_3&yY~J6;VAL0?;+X=@`9^IVg#!k z0(&aJ0WkFyEOQ6XZl+SV8OaG#$#F2Ucer9L92?mTzXOjjR`@))89I(z(j|uhx;<$r z+?zN>@hdRt0`?U;8F``Kk|=9M;s*0ue6_^>bvSd^2i}uJ2MkD`SRMqp`+4}bnm}F9 zc|S`QT%HveOyGpD5ykp^9Bp9*d*pJ{^$rNCBJ`mKZS<;WyE6Cf-~W!kv3JE3@An1N zBx}K6L`@8*jlgu~QO@40Y^G@X^DxyCMVmC((z)oL(Rp#?DBO_uJcc&JOqWV%eE`)b z?}~Lj007aqd>@ZEJ5{G)d;vyr)(IHT@!|IbO5B0fPpIV9l*(Q#!frMq>{04R2!`#5 z!Ujf|QsQ6CvqG8wdpiS zh}q*bzJb#v^(Kz3-ni+;kat7!AIm*A#u1Ezhog!Ec7&s#kHtc_a6zBNjV z7{qY7)MO!v{W@u6&wy9%1zNHJ5?9KxP!F3b-z0O8)yWSi4)fjuoxj9m&C3)cuBQ=Y z!Msqclx1mNzK$1bJRZU?jVNrNuW~%%2_LUGwOW#k zEYcy?G?RaoO_j}dbvG5B1u+vJWOh&D;Gp-#4T2b-Rx8xH7o@#GtMw}^Z&MwxvxhAs z_(?tlw*Z@#9|nS(2a*NS<`f}~l!I+7jKwtgR~kr9Jf0CSwsB%9Q)sUkrl-y^W!BSK zJa8olr$Ypa`$oHWqkOXf=Pu}epj~|r895>!iAiF7&$5O0bp4p;ivjh)ChyAO_-aWV zoPX}a{0xb_auo-E?gZ`mxjH6J3Acu7ljIlCFMYH>pEV5p5J(WIAv6iZGXcl7a;pnTF5o zBId>*-$cIh_2xadI7T&tIKmNhe`>tjhfzkF({d4BFo~FN;SO;OEh!=^@GWp)eSni{ z$!0WHGO%-)|Acz$EP+)YFu;Nka_}%utL64CV>8cwLfOVq5apOxNf>N-1VABC>T`4

qJF>BH)` z?Q+t+575#!gmSrF=0~y#-@R#teHkb4P)p(s5-2P(affY&DWpxwH-z*Mf^&^ruaxTz zA@h|2G!%J&n2NfRCdf6HBMVf{H!pmaz{<}-AA}!%2C=Lov5j26Vw*S5eQX*qP0_8qD)dD#~Apk6o1$M!UU3<2+pGg&R z9idJVXq$vMMT^SZ=ORFvkyj!D8?P`|aR8?N43_!4Z0>K+Z|I%WnN!YkL()d{N3B-k zcXg{JacQg7O~Zc7S7vkJI?@0hOmeYw3*OgQ@FeZ=pwuBzIq)SftV&#j!r1J{I9{rJR4?O1KP_EN20tIr&*&EW6hnMpa@FyXye z-B#%^zzq4(?OnoSm?hGagB`isl9g;S z#kyFKr7vD6-ERPI2VIH$m`>2uAZlPQ#r7tGBvN9OG>T`5J7(^HfdERIbVAsIzz9uz zuVNui5ZE)xSbfc-=W*?m{@%Ay^*k0UEGmy6 zYQiZM=cM+;dVCXW{Rxj8RwgE3-N*26y1|sUd^~54lb50u0^Pz)+~_F1KP9*^KI*Z e-ytpL42p@7BTju}2G;=gYCuY~&5WM>^}hi%qgK=a literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/transport/https.pyc b/pym/calculate/contrib/suds_bak/transport/https.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c4d4349ea35066419beb0de98e5fe50f799cec2 GIT binary patch literal 3749 zcmcgvZEqA+6uz^&-L@+zDx#?9O*C;av;`z64bjqqDFN1Ix(01Xmg&yj?v&Y?aqeB( z75c^c)nDKj|D!)ZpXbcJbOA#GjkCG8_ifIc^PK0Lb6fuVWNq*BzaF;L@G0Z(3YvX@ zE>vm@y{E#GiapijsI20W>Xp@2S$UjSR9sP86&21XQ&t_URMqcF9V+$n){F{gm6?&% zx$$b1FKyQ6`ITGfYHMlYf+(@N9S7DLt2=3~gTCvU#6|7EnNY7cn;Y8YL1MEscRK22 zvFTwua8a7r#ab=;2T$FDILGeGVt5k6b?36?=*@;>J)@TD+*QT)dW3S#Mc4v7f=Idubl(UXTPkCSR0K6=%9Z62>Mk4n70KaBnEH zP1lsr$k00k^)qx%sa;P!RqCmy{_vFNN@}-E@?oh3A9)}eU$TFqm+um^l`P1Eo_@3! zJvVMs4?BXF!IaAG>A!Wcmb+a8b{seMd7k zjT7Jf=-<_8X27~)PuHz!r%7nfPh;@B5}h~=UarNpi&M5xi$3_01U*AFh{$NpK`5aw z!9GofmuX{NK5g$r;V~kOG%?R^{Yq*lY{~>fTO%KXTohh0A>t#69p|sjMfQcNL7Si94=}K|%I9MoKz+1*7eL z6o*UOVPxH693}nzh5c`?wys`TGCMmKNI5d^D!Joxyg2 zRZ&R5SunNp3`ePKn#pBD;&YU=WHPc(NG(J?4hx8i)Hz0$Dm0%8vI|%q*FOZ=0Scjn z8E~cxVaSZaI^z!;qnM*>3X&3<{^enrwUQ-*3;`GV3_W)m9n;M!uPVF)tQW;voI4@5 zKrj+=9EQ^)4KzzlmG_o+)|1QPFfp=rATd(;R;!nW{g_iasMQM7cB>@`%ICgM1{P6C zG<`~*XegssPlNQuM`)J$t6Hm;=HHvI;5R#8b{}Brew2i`!twe^@Wyx9HumHp4Oh|Z z`{-VH*TnUaUy-}Gl!}ef^>HX%*Bi~d_iz&nSUX=>H|4z*R?`&MthH{AT%TrL-1=6H zwZ$b;qJqIW&L9sl8Jr$n{gvtoy}bL$IaNW8c~n#RSIYA|P!0EBFzh!^C7${T833dM z^{|A*gJiQ?6;{e6ZFhFeN5&Uf);Mx;e;0Gw&~S0@2;Z#6`dW}Asa*Vd|IY?6Cs{~v zP!|-a&*6~dA1?ZzaK`L(yT^YRZsj?8=7d}OZ6k3kAs~$KiGM+AVjux50{pX>PWbZb zR3Yykpb1r!SN2Y$)|@JsO%VJK*^x~C$Lx-kr>ww^j?28G s6Q-9IS@{dNL|IbOr_>2FuNO)Z*w+g`ek~|@2ZREmEkaWT6+$pTVge1+mIw9{(%iKROLHN2Q9HGL z8b5^p$PWPfnxsstCL|!$xp%hD{%oJ^{J7>$?|lCpLh(8H{~VXvL&5=$kXpcPh%Fct zI~#Wn2nR+eslhjZGk{M=HQ;sVdkwmM7m52a4wMp#O(Yj_l#H3qf<&b<(@ds1l8I`$ zZuApB&q94oSAS!f>)Fy1`{>Xt|-?K@fg8{esqH|dVm2P%&7`XDuc;oQ4fssqMHq748*ma{+}6YQb{+aJXa!1f{7^Mm1l+<&PFm@ zWg^J27>SO;fFAKhq)k@VoIISg=s=?sUL(WH8rP5%USS9Zyg?|Wp(h?Iy& znug%XG|0xvY`L5Sc;PBJt9&aDk6?)E;BJ^lF>eofq;w0%Wj<@p9(VlCUR#XEZIyG? zuI6XEoS*4wZwIeF!lkYw0jpu}Si9B^{&p<`sz;eJ!T3H-;yk7-5YP9y41M1iSVQ@1 zJoJoi<5HB7#?6L(=usJayGS%)q)=K_D4Osa78W`cnT~|&ky?)o{X1NyT2EIAcy@z) LQjHppYq`!Z9+9*( literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/umx/__init__.pyc b/pym/calculate/contrib/suds_bak/umx/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9f958cd18de992e658900349ce884667a5a95bb GIT binary patch literal 1450 zcmb_cT~E|N6umRMEU>zY(U_n<^g&HEaaR*XLySR@_#mPwBr4I2-R-axy6xJT!V;Dj z@rU^PeDw$Dxif&g_@YiTr*~%V+>di_Tl>*!?q2`)sYgenhW7%dxeG{$)`5Z&NtvL5 zq;*Lmsgahnf!#WNB|0Q}zh0wcf>y%@-&_JT-;~8pnrIUYiloZ$?iIO>(>%@lK`)Dq z!ImuoQw@hjX`59(h)c5>XBjJm?_Mq6YB$rL7@>eU%Z6Wfw{*|iNr;OurgM7|HS0XX zG&cbnQ6o5@q&^U_2@Z6<&UvsfLD6c+nVRo_W`MDf?!;w~7m1z^);6^Z7ajsrRAo=Q zgSJ<+dqcmT50>{$JZkGq51`s!^6!IF_LA7f-d?}I0YXOCRvu0LK9e} zY#j^c+X*X0?gb{n?QjB?V@<6d7*}2%Tcugj=_aYMZS+|+x-)t-r{?Z=bidy*Rbo2TVAMGdusz(1m@jTAa~43NC8pgo zD;$&TnX_2LH17bOye;^jr1Hh_QqXpT%7;wkfg}r>yr%SIt#K~sP+Y$JMN;14bJ)Oo z7W$xkHRL!}%vJW~J3rWr4Vp4wKGJSwb#TLYUOdN1+GCEJxB(t@ZqR!s;$S0Iu;&0z zkMAy(Wl_5CA)4kxSDARABhLC?IkabBM5(^7olS)<^Ld9@|UkvQuLIHI009l=mMnQK|1L#tIeHr1=BD^jj4ug$myw-(6M$2TlPF3 gqEFfkh5H@3#*X;re~H26|JY~zgnb(J-jFl(Usc;j_y7O^ literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/umx/attrlist.pyc b/pym/calculate/contrib/suds_bak/umx/attrlist.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88409719bc02052f46ccc4aff9addc2915c4b66f GIT binary patch literal 2806 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 Z^83Q0Kip(x*nMuPjuN}>tgo(@{{>s#V;TSe literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/umx/typed.pyc b/pym/calculate/contrib/suds_bak/umx/typed.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0558cd246db9769c1c972c6c11787a294603744b GIT binary patch literal 4758 zcmb_gU2_{r6}_Vm+mhwji8l*H0X1xqMY|B0rItV$YAZ`%Yqu(Bwq;0M2O1h(!J;KJJj--29 z=?V~I&whp2s3*~r{yukHqUeVB`853EN}*bXzx(au*YMKuhtuat8I~0Yr;xYf3o}m? z-@1R`Ww}t@cN#vv+6Hi?GGl_f{vJ`4V-!y0I^ZQ=i^M=7z@1Xa{t<=FqplAZ3GlBJ z*ixl9o0+lmI;foL;q{~zmo^>v*5HXM?^U7bP`8P=m)k?JKB(tFiz=Ax-0iTUQ~Rii z7IuKz*>aktCuix@xQjhF>Q{U@vnk%50x5}Ra34Ta@`~}t|2otfmc&rH2@PyWIsk(!vqr;8*9TP4?QyB zq)ZkUxR?cwXL6UgX@Rlx&|R4Da-IRA986zrA?T52FL2J48m=^EOF}XB0*|k3ayc-W znPc(6Z~Wg4#?`fP!fE&vTYhm>ET}?~t+v_p=Hh-rb$yp-i8a;reW~}owLxjzvdonc zfV?{O)^g=~sW)f#3A&>xKPqwu?IYfFL`=1J;h|KqsLNhX;HgzmWyXHyjffH5!my74TK&NG?*zLUO_UI%4mk_YIxPopO37{iivio=4?5M z=&PdJD3m^WvYYA8wSJAy5+4Z;0=4r!)Y+lh@8c{m@|gyeXM0jkNMo-*`&+dC6?hK+ zCqjWg2vnZ!ti^m(fDL)+S%)D2bN(7gj-@d(kQldfx}MOjB)M)=-2QrdxEUBv5Ug5j z$(~&6_G?5Bxb*CntlDyoU#xq`3S!d=>cIJW1^-oT;QOJ3yDhUj6u_38b*uu%GJ8i> zySmh_#CJK}`?uk?(@Fd90xM4}qBbmYqc^3bJD=uhbVz|aDD*B(Sr%nPf3DH$DGY2_ zxX+4Zp6d8tazrbwJqymW1Q`^!b)-Ril^e3SPb)?E0dg` z%@gO!>DkhmkY;o8Jjs?OoaU}T0I%ZLfOh$oKn{5ydtYCp-sB-oSeHEw8EGwc$|sv) zpAYDcZ>;kJ8*2APR+p+o|Myx|*z~J;uDY=549^U9-%du;t!S?6*VF5xZ}I`lK)E?+ z|DOFo)72k^dExG>QyO}ArRKZ`X?j=Ai0-1{JuGSXA}Mod;%MZqOmdqg&ZIs+psgi( zH*vjJpG@(z{0^tEsYs}YP}hDlmi`zE!v4ilBk9tM9XIZ5?2zrww0Ru)<^$Z;f(k zR{rsTk)_2O4g9UKRjJqcq+4(@lCcF|aY&;tkiL=yTcq#=ty#e|^Z!e#VV{KXSI>}J zT|Kez>D0G5tihC-y~a!qzUiqL4R6MQpJ0V6d_Gs)V^pgj5R7Je|8&&2OI+l$j+FP* z@oGrpV*)-(ZyN6F352S**7q=F>n4_#Hb~(8%g0~Z(4R-mqwYC>z%*d)r)M;P?k zG%>l^i3#Z6@mZRxG~hsZ`~6i82sbeXZq3yb5l7{_tM%tfx}Ek;qqEz&)oFFU(P`peyK}qK8}^ya zML$EKjNy|}&&0|AZ%4;dt{a0f{(Hhxu!$Bz~Z*$t_-IR+BqV^ZF=TuzU?f^kl#E_wxzg{g&L=X>@}wlCyV%qsCFt J1EG(a{{>BA27>?q literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/version.pyc b/pym/calculate/contrib/suds_bak/version.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1029c483328335519f007d03f412adb1d9957ee4 GIT binary patch literal 486 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 R!Qr17{&P1l{DI+D{x_eKqgem| literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/wsse.pyc b/pym/calculate/contrib/suds_bak/wsse.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5eaa922a79af06025129c91d2154c7c99642bddd GIT binary patch literal 8342 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 Yu6BAt;hwMh;NA~ZGxhm}`P1|IKMI2%-~a#s literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/xsd/__init__.pyc b/pym/calculate/contrib/suds_bak/xsd/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..093e4cc477e000fcf04970d611b57891fe926256 GIT binary patch literal 2412 zcmb_d-EJF26h5QECf;3aSt)v`G~y3e^UwB2X>s-ElI>de_+* zw~peyp?MIvs>D4{#sie^oL$GxEn(#upP4yx{=YMgf7VuBefr05G1XrK|Bo>2kC+nt z6s1HzG38OJXyDP2M}r0(HArcXPMef8=t|Mi0wqnlB06eO0(yy(7B62D{d}}Y$s!%L zmm$-<#n)D#98aIOJtq0&AR1^pjAHHH!O9L({cc+6*iV}jbU!9pfb zqUcwT$|jWyG!cu=mZ|uYoJSKy4s1>8d-U2PyTdzuMWv#QX#6!VpSA3Ds7!}cg z?>+RtpIuLU8=vSw}$1Bo5uH6P@{4?hmCzIB0gLV+q;3byICVh-j3~E7`krqhYEa`t3@__NXxT z%1XCLhh%7QwF;foatrN7MaB`kPSVW4DG!GnlG&y0nPc}^g}7k2`0a<7Y6se%*?Xd` z4s>$RUc@O17s$vn9SBZVurk(U)x~*3LNA674qQ2!LRw zz8uxeg%u$ZFTjQfI@rdc%$dxEMz{`i{*;e)Tb z`uMnOM~Ur@ZPE=xlNlF=o#BOJ|LP2Hg0!DtqP3RVP^;<=#+q7J@2Zws0=?;h zA;Co!&0}+x_Oi}<1|mFin3kwqDMj%xZ6l;r}U z<#puneTBA2v};nQi^(7AoQ|w{sim-u(*xUPQGyz)(|+&)Rsm!1)=^-$r=|TE zwByJoXPA;u!TvWIhJ4p zn&@%2_GT4Q!!XV>7opXJ;V#xyX5rC>x31dKZz`v`#f71iSr`uTWR&uf8Fr)8>fj?# z0cU$=mQeq#X#|{qDIkt;ORY8zD!FV-m07eJ=~LWuI(Ux)4qw$ix#QFiLGT{$-r`gc3q=RZ}Pw|5yhKZo_7^bF~_KwX>a> zjV+LWxlfQM=sWfS+H+?m+cBh+tk}_fo_p@coNfPow|} zNT`-5BJqNIZBewuqAiZwBBHjSj<}4(aaX90_!HZELUluDOQ@bW8f-Dv2u=ThDk>F~ z*>dbnWeSt)EG?un)=Ryp3R+Oi6|Ocm@&9d2Svx-EDMp^1qloC!6s?7cZOm z5wH6RO)kVmB)kxp=(NQ76R{HFB;w)0%U$t%OI)}6RLZO6rSz5vzA(ZMx96pH zIHGjM4ySf07im@LGM8y7&GdvaFTKHz%oGI%*aZ77VBN6L>~w1*F}b=xFd4bBrXpJ` zLwrfeLOU?Ly+4I)@%a&O|a-c^v;&q0C&5|?*_S$x7Y@qrs0+X*dr%NK`I4_xjr76t}2u;?}hffXF zN#NPg{8s#`o89so|)7Qi%wUy?qd^^#Mc8zmJMS=Q2 zoN(cDV1Ffbj);?5li0W9Yg;~(FF1p^XxI~O+9<&8TfeO6SwL*A(x8oN?zwT~Jxc<% z+i=9Q6eJ9i*a1s}zlY|^m1V*u=zExJ429FUDH%CODqx<{(s!CeZh(Ig8utXfX{`%2 zo+`v>ROqrke|-Mk)8y&5W6JZftCbs{J2i$i1|L<++s1kNGvK&B<38v`+tH`dgDBf* z*p-gG!7?jTBu;z6-e&Y4)v^@m>(3BJwP&1&;DV)}MSc<8# zF()Xb5t@l_O8CgcoYt6Q7&C6ng%O7u;5lR^;neaH_c==;v!Qvf^ad8sf#*I#BU(FA zC%TK@y=W);IO-v@hmD7!C=+F}Bnd8Xsf0@98v%ih!)K0}B}oYhOOp5l3}P;mVC0(U e`?C$6KVKMC7xevyKn_*dYxP_Aqn-Bl7ykmPd?cO# literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/xsd/doctor.pyc b/pym/calculate/contrib/suds_bak/xsd/doctor.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2bf48575785a494c6c091f5ac456858d9f0fec5b GIT binary patch literal 7780 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/xsd/query.pyc b/pym/calculate/contrib/suds_bak/xsd/query.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58704cf488a5ea29864c66d08219fdcd6b59d9b3 GIT binary patch literal 7584 zcmdT}&vP6{8SUBCuC!~(lI29iBtU~>SioK<5FBt)lRw)}xLQ@kRW)2t+Y4$~Q`uR{Dwin%fO~p%U*ihRI<(Y;uP4&=I+h-Gvnp&(t!E1BstT8<)|JA#royvR>uO;=r^2A|5MCgCJDIyC)gWULN!FAl8L{Up_6lj6@X8V$7V?U-Sp`A%eP zyBYl(zm|vIG8SKJRajj_u{R0gsDF^vQIG6iYWl7jpWO|5S&|+&Lj#6^$=*l?1CwSo z-2H?zD*VPCZ{f1vLSf)HY%I!(3Tt%WBkcJC-H5G*r^2dK>U0+^i^|_>aSrw(il)YI zt6al@?grMlrM8>$w8!yyE#P_$m+hm-l-l*w19;O@URKF#xbIZe19{L{Py3xI zRu)yZ#LDghU$b46H8|s}SsFL+;9XCRfW-=YQ{{MXqL8U@vNy&-8VohI@4BYHatGkv zq-NAJx@+hc=a8^nzLy=0jeCuIU)b#$dcR~Z>*2&^cvs$Zh&jch~eX%p3FX zM58F{bi^k~cQ*>La5yu}I8D4Je%^^JeJPFZ2C+5rZfa~2|H6bm-@vk!y0hOi<19)> z(lSeImO8L-pRI}eeiM}zE?3w#YTZc`hgZ8H#%RaUXtIB0|J&C(*Iv4627{}1656Z# zHoPhbZjTRqVvBCJXHlryinr=D|qqdAT@0>4#}zRT7HaMZWLZmCq_s8yfyfI*Gxi(_6v%`T%*OUvE@q@wOUSIPwAkjTW_sFVn~NQ3|y00M=* zsvcI548Z?R=F?Z$cDKf$e<-q^H%F9^=8O!29zutvMYW3Gc)i4tgu|(y z#t=?DPLrOo6rvdv90!cZO8(kRvrhsROO2#w$>V-98HJlg{E%B6*z5X|ZBgL;^DLNM z_!}%J=e~$6Wf^W{K=409YY}aN@z{*QlK=iQc>F{TmL9&3USy)GzU-Zca~p8)bKaV_ z*;>M*Ji3j7p+R)xJUbni{@|9A?R3JV*Xg(w(crJM_$-T~GnBc`6RL=>&*QQjzP?cR zmRA~Q8mls!TL^Wbc)f>*@?&y!3zy~o9Z7jL*}tI>hC02U3XCLk*-nrl zR>7mTKD@nVX|j?h1u&SUn;3#Ozcfd&4Nyn<%3c=e2wSPzY6k_f+RKKEb zzxARzg!0$auFKwJBs66YXVe49@Y45~nZmdisvqO}8O$&+viwzL%jFCYB|qF zBjxVdTmcXaEL{c20%C-)||Is#T<5b^A#25H9( zKMT$Z9Zc>$mz~jjlI0;W7uaL=Na0)?L8frn(Lxv@Ea4RVa~zTWA;08Q&=t~1)uoVT z@5wk$HU_w?MxnfQZw1!|cwYA|poXlkQuCJacNur0sQ%~B&?n*iFR)+_IPLkmo6 zfGM}=c6bDf$1`7}zeMP~Pc#{W6C66$dQ5PVC>z zvh+iouJPDF(25T%)7%1)@)7I{OftAH_Kzq|?tKm!As3ims>&X4g4|G*A@ zjc+?``Nk0S{1;)Ad|c9!AdV%)VB+bdp6qQMQ*U{PvM#BIDdYVd@+}F_tgC*EZOnogfGX>3?0@e~)oz2zI&={bdaHJ_np?yZ>d}^>E3rI4)}3o=npJfR-nB zetr}CSgUWZeG- z_l!B4`;78U)?Q*!WLwAeS{hTYeg0QZsg(1GOP}=mj^1#kX)}cy(W(4Yn3%` Txw`S{#XmCPk=k(*L6-GF$rU2e!B8$8rov{pGo*%^ z-6iMDT4ZPfF6dksxoUx+y(o|X0g50kiX#03Eqc)u2#~u1z3NrbA5b8-?eo0ve37Cf zM|6{xn5Hwy(zOYWqQ+Q zWm;>;O*~_Ivu0&h?tR22lW;Q$ElPeG4f^h2jUC=!T5$FGc1A7n9}1~3b|dSi7~%apx7{=eL-Y@%;?^#P z3gbO?@ZBKn50aiAN8b&D*P4UXjj)?WYf%_T|LP1rh{A^)mqfEc-8%!D=5@DrKk(yW zc)<^Xy=L|rfxEgR56F-lv5Qv-6OvB`L(VAi`*zb$^c~mG)bFA--PsKB&UO$F`Myn= zyq~OxDH_W;%VM;f&FH`J)54;fl$TevI72B4H^V+2=v))!H5*bOfV{ix(UXlFm8gn z6edhCE`^2(CZy0b-cpOxv7b=dT>M;hyTvrfHf5u$T(?+9cDj3?Y>Itr$*+DG23Ydd zujFh+d{ZW5Bm5Xye&UQ(L#mxWdzl9rLZ5`Ew&?n4{I7cmc^ zqT{xu=M~|&Hs9X0!@#zA(_X;J_am;G-P4Xjr+Yt&1IP+##Sw%sn+>L_6TsW>Wt42$ z``fp7l^=VrwcG7`6^i|wv6eK0NO^8zj(I_5)TI*=WdQE*J81(Aj&kw^P&bd(v(n?Y&(-ls2U`Sy=l)Pmw-YXk$N zqqy*qbOMEZ<;G8_X-O+M7EvSf@i)cRF9i^R`ZU^@h`MWW_iZrzb1+5eitb4RH@=_i9|S z4cwzpqg~z`F&~QdJeV-aH>7pcY>e?4v^u)jcmTaG^}o!%8+9|fF)Bps28FNII=GYi zjd8Ovk++Ns0qEtDESCLe%%oVrs{zbfu2d9#Hyw!eE48les`$0+dG}$I-iQ8(J%#YO zso1xITCv(Nl_5nC#xM$e7{E-UDpH{9NWs-orqU{zr6lCtT7^)aSD|E=i1uhvEJiAV z(6=5fpxnTuiC`>3$34nIO8)qpG_KN+3NJ`XSKc*OQ;&4D$@z2uJn#Pnf=S(`Y&TQ=&r_1Isd^nx!_}IU~MI|XYBXS}x z-02&${cI*x3-@L-fr5PP8{=%bW_kO?qV-JP3ZWB`+OMI{W%N0M!l+VMHOuK3g$|}3 zvdbqZ!jLXw_C`(C260AzwvFcU_PyMclVi6Bes1n^8}6r8R=f(nWTeO`LFZjcBuo^>4RBI@FVj5E_ z!vN~jiF%s|Osqs30oanUMzkXytV0$U#jFmsBr|QXPSuG)OSY~l-Bzxe8THed!Ba<-8k0n%x210K%jDQTKj9?Y_?lU8Dz=(GAzu z5J6Ure=fpw!o^cp4hd};d1es^HBMwj9nNAN_=tq)oJ4dB2b3~g>Dv~)fw}~W04%o^ zq4wrjPvH|8hO4-qMQ0uv?@?Gq4&m|pR^-}-sdp09E$Kj2P`VTt>rp;ET5su#868hx zy|W+%K{56VxR}NaL{q&&-8t(#JQHsB8qiL|jj!P>3s}5>j{;QjmpXuT*XE z%?QbipE3Mkc<8>{k2MQ=&%5PP*|Q9ep1)XR1lt7*yMrE6BBVhBl@2wDuUO=ZhnTik zl?S!YeTiTT!WDBSF*ci9>Z4zCF{AUvuvc<OFGKCYd>Dr%iD#?@v10M=h|hd9Q$PwmU}jY1Q+1txbJv5+ zz?dvr<9n(SGK-LyRQ!VX6dNwE4xcBF%RQ3)GknCsnF$*D)6PjX?bKFIfQxFUa7lG> z#a1s#KD?-z0@oi-P-ZIiGRfmj4Q3mOQU_!^ogbm7JlC0VyduWCf*UY-9eDxR{7S~= zg?rB(U@?L_^&Z0OQ)U@_hEoB@MdL|r(bCd2GtDRsx$werHJTdeGByzVrp7K!Bt+gA zME#OOBC$X?hH?5i@JTFhr!(wFUBrBy&W|wzJAsQq0yXP=!4cz~Wmz;0osLB7osQy8 zxYgwh2Hj4_BQrg^cJF0gXh1z?bs`Slms$D>E+qq{^dyO&$4S0|kF0Hdx?XEE8*`0k z8&5Z;8qmGAFz{}SwT#o*a^J7Vkdx16gvTA zqSy%>zG5fM96LE76dLAZV0@EO2D*px6p_7;G2*ldP(LM=GbWgpN{l-rg_DF{=-=!= zL2krER7@&yH$=`k)CQZC`2)X1Puv!;z4M6GbM&L_-qP5$00<-CW{N1ih5&i+V7RFe z-$CRoGdqgDFe%W0w@44vd@D?%%|KuL?RKc3RyzZ?s@Th_Z^K~%7>Dn4YnQisa3r_0 z+yk$t8d4=)JOfNb)Q#=rsQWpRZiPUe(^lghNiL2Ci~#EdQGx}8 zlihUV@B=`mIoeU3d0uzXEwCd64Ie>}5b*Ie1dalA#(%A--;IZab2Y9CgY%CWPKZ2i zB>Hi2@|h`;d(DcfQ_s5XQr|D;%acvM%21t~5X>j9Re4rfC0cZT+$1vzIzaYPRylw9 zDAMHuO|m77V~jG zm3H>b<47ax?{&6@fbj|4t7fjn{yMf0ko3a9^w$yeUC9>sCVB%`_2GK5q*?X`>2< z&hfl3kwc!1yr!AgoX884d0{FqObbc}6Fg=fG)(g2>~`a1=D7*wa4Ptl%d^P3`A~8{ zWRaZ8DJFM(9$?{{#9FfQe{c+>oJxU-C*VTTI?dM-z~(6qhZd%a=^3+uJs#YbfX*}0 zGiw0>Z2>_Hu_Vcl{Z%!K$bgX2PILE$cdCJ6&LoI`tf`i+nhzAVm-d=BVyuDY2V${R zp&=oM$0(j-0d^Z*ifH$@4+Z5|lOMyfJ`NTt=E-Gva)?ORui|40#0#@1st>PQ(NF?M zRi9MMEoC(Ms7gxiUFfnUwob$-6_|+|N)?bOVC7;<;xkf{G#imc6iCjFe@wo64^m*c z(`={uW_*=#in%I0Ma_l>lBdLb$ODBg8Rrzx<(bAL5ax!{oNOZ0o&}!JWiG(AEV85PxS{F5 zpTGz(lSoF8aA=l^0SRqAs{0G=NC=zyH1d0%p$ih*X zXMqkJv9WvvvBexCDu$(E$$oD|`m_B1Ah=LG;hn>@7d1f=4pIVCE|@PN&<%8-wak%J zX4wh>?kHw)Ox|7wu_oA~`D|m(se^YC`AaMk3=1om+WX}mcL0aH<&@!qw<8m{mH?qHkY(%;>q-9)hBqhoAasLuiDwgva zH`pqScUziKAeQhq@1J*vR>Nj&qvu-zmAWx z6I?~fh$F6L#KbwG6^a->ENUJ~)aROSqi(j}u39frA>5{}GY`OE-VKyJvcy~9<=@bG`&;CjYWThZg8hf0 z+_Hg7zM|zp-6Zp7Yc>lhAXP*d1b85>=wwCh%o~W*C3IiTXk!x-aKurxM}_wH%~t#w zXiFrcwBv#{!17O_jmQY|{!g>@^UpvV0-w+O=LKzSseTIWy3oGvY`vTZYQJVppg%e7 zmz{h~0N#HJ?Qx;~Luc!w&p;dMnA85qS%xrymmO##aelJe&Va>*@+sI?8cGQUa0Vnl zLqTm4)K_&9$0)EHmxnF6&kYcrLzRlW7N(mruQ@$1f+Q@)Q;@K&XEO=}zz#QwCQB5z z8fi8QC;_oa=COI2C>VCDfm?T{8%JG?ta)igdo%PGInS@%PN<@~SQl0G7PVG1RlI+c zhCSwhM zTLjMb|It=)@oJX-N|zAXwS?RfjZz*&R=JTYq0HgPl@eI))>h)xHXog+kUgfTOT}1L7?NK%doZQ=g9?lxT^5_o($+<|gIz9{iul64p5X&y@&K&9 zKm!;MB$%FKlNZYKw`S{4M0r3F;nChiwp&ZJfxZB_MWBUT1S8;47A9EO$Ei?G>qK_% zfC>TqY~zMd_CYnuHY}+sn_HpQ~&nFA*_^IA`O% zL^AKQmISxu!Cn+-0Rvj8KWWuV4*W3<5-EO{;zGx1CTG-> zj-bqs2n6LFjHfhAn9b)z8pQ0Vhn&nr;os4%SnhYi6sIIYcrHEX#61u_ubgWu9G7*k z?IPmZ<33Ak8#*fh%25sq56RX;nz%SPwT0U<=gBrj*rNrP`ypG8+AK#9<3?-6kojQQ z9{EilJLMIkS(030s}v;NCe>t^nw`zJ42xtV5#x*A)9HuX>G2pO;7oUD(?RbOvWaSH zniB4C21RP~cenwE;1zcMR5o};Q@MMtSuSH8l#t@W%0QEmD-7T#G}w{!cnR#xAk}5z zF-*ST8kmCWJ)h>`8+ZZOdF{gXf3^8 zBCEgT3*~D18Rh1;DKHt6e-k;e45#m>>E^}x`G*f5wjaLU9>5!cf5fWc0O)@#0HDO zJ|CtKJ$zlvhm5L_jl?-x4DIox*6Uz|A5dQ9;90ZojKJeG9T!&~Ih%7{gg@$1dh?H% znp2#eSQ`i#V-rXw4^?vI>^Cs&LQt*)TL#3zFC6GG4H}U?zWR{uwPh$v39pnE=+-Ww z7FwO4Aa`pQJEKP&(oq2aYEHGlXeyTC$$|c>1PRFAUbHk~=U%mfFG8vD>a<+vERNyQ zb>a9ez6Nz(tfFk6phCWXbUr(yBZm$Jn0O1__4wi+ute+Wy^c%CI5nR922m5C2K>gv4r ziK?-FQD?z*_`K#L2a|qT&SSA9sz(IK;}=W3ui+xByz8&4^OMs~+!#<8nmN1X@z1fu zK-OF3g}%p&c@b&ZV(Ifb21Rr6Q+%w8Oa1wJtzLs?d#f?iIN4}5PUClGa&q$N#_7q) z#>ireVxVtA$>8^C#2(1^rf|$wzIc}3w3z||CzNzkHXVx=Kt|kJ#2Lkzj7%F(w*^TG zJu>njr3_+{Fv448Gezl|(#Wv0+>61GH~U1ksJ_~m=-79nN@pKU{9FE z>_DQC_w-QPooGAi%W*MJY%7{S4-2s~y@_D3MVrSEik%5;=6#ljYeZxzgb| z)R{ffVQ4mu<)BU5q%DdTy#jp-&;~_;q7Oma^oAA)&^+|1FMa7_Q6PQkOJ552`~H7+ zc6qVFhzx|%KBL*$x&HIt=bx?q_weA|lYjJ;x^aJ1{5y%C{RbqmF>^>OChjqfin-=; zJ({bUM%66$nz>$6;hSF5*k_je%v_&7?=y}4X1U+Y^_xo4Z;}CXuVUr~P26Xa17-m& z_M7*Oxo6Cm=7vn%Zx%4tfG-+0@t{eDq~ZZzdeFo}dFik(9Wn7iX+GkM4w?9nnH_tC zYk3jLm9&1ndv-do^`&Gv3R?3wlX_;y(+}`BRzb^* z$r;V=NA|OgWEt(WU;qU((Q;x}qIyykEhgF3*5YE)&W2E7R=R#udiId+#fwY$**{1B z2_OxCAnh?p)g-+H3xN85MS!-iRM?Xj_L;cK<<9NT>-X{%!0npvlg9x9oYeq%0r=bj z6Q3r$Ss73kkk0|IgHjE!6mZW0fB1gQ<8W{`BV zq-oPuGss#Fvx2*6wv<-sli57de5=(+qGoB0&9u>o<{Qa}&mym(W0%Lw+MQ&>aCy~V^UDKUV{;_^`e0=X{Q2tE{;h-8P-CI^ju?Z%n_?c1B!o5zL7Gh^^WP--Nx=aHN503*-O$K04k+U#`CbzlBe?NgsPpDZq(x1HFY@7nmh?ao7H zj<2j{lzVO`*xU{xF(ZAI;mT0uP(|=?A4)hM!NZRt(>7nQlV5iz^QU=OP{T{}IXw-xa*G8?a7S@)IFl3Dvaq77DlF}6T!9;TNsS;#clM7 zW-CrMGa{{4QYidzve8Xwxx$Mw&VD&m_d zrBj!FIc!E0gXBzOY$$LlmgZ2R!x8pJM97*}YTf2Mqy$sYf1_@A7&XF2S?wT_joO1W zyBsxak`Z-tSsxx@^#e#s;&x1i65*FL7Q&-=8y-WlI}Dd`Yc;4}S*>;*-PtFQnErvv zKxL$IxN;mn{ci{*hbwggfgs^T1pD7a1}L=NW4f1!NYgha%$Ix2dR2I9l@k3P76SYO z5ma(X4-^ODqNLXV?}5Y>C*pzpvm#OK|Dt2R&!0=Opw(=wiVTmktewtxvLqlP!r<8| zaC6ZGJy0bdL>(&ItPNFDI)RA=?Qb)tE1UfBjCh8_SVhRRys z29&t67N>1k$Lm3>9W-0bbAHYb6Gs#uCW0~9mJ+7yC5D720q^Z_BOK+67nqzvvP(oD zgUT&}b>vHEa6Cr?G6k|JVGNVVbU#i6P!=$KV^q*Ucmrh|7y$S|kMIV_zA8Dvtf=`F z;t!ux@A^;l&ud81*CZy;(o z%V@X;KX%i#+8%BAW-8v3%_dmG(?~>Ph?=Xi>ERia{IoWlS`s&0*7FB=@SFW)zS*Q= zPstz0gOV|57J?qc3q|%gtnpj@rhT5f%Ocfb@xCc)u(Q?8=&Uw|*9Q z_l5Av`sso?Q!FPpd*NDghtMB5$?HbM8M=N#O z;`wiiZ%NjE*Y3g9D{9q@uvF0;vqPwnE5LcjQc0N1E~iWPw(Gp+r~Q|lSPv4T6K0k_ zneb3vTfOoQ$OlQ{P>!Q)K)Jh134A|o zVc@hc#P7BY^)H3K7PM$Bzy}5`?re~bC*$HG#n#tbjRtfI_=(_>^BsD*a1Fk?AYFh} z%l^&=qR1Bo5IDhd3of;fmPRPyt3^5lRv!ce7Gy(~H6`MoTVk9*`LITZ)L zP%`*pXW(!XN~Q;Rg)omA_XB!f=PVr1Hc{B`0J!3EdQp-5DNJV1(4FEkpVJSKS1j+} zN|rS16w86kL(bOO8C=@Q?GChD_~|?hw;*F)=O=`V!r|q;hDbh}e=R{Ir+MOx&^;v} zAmTvrHz@bZ3lrOF+(|s)l7GtyL$Z(v#X<*+1GUVYdgflhbIXeAP4NA_NfUBA=P(Zk zqI!k{1XQq{m6cXI3r;OXcjzpQq_0y!y<@Z1vhOTi2KV538%74!g8Y*90?yj#3?^G4 z%dvrFwN=bfSAxR^lrP%^%gWDID1e-+x7niq6YlAW;PR#ejGR=oCpj)@Of;^wleyB#UZ!B`Ieiv6qatX&~bSl0lO9*Y$dKuHmx69xem8k z>M$gt2;pq)_Ulm z2+sl($94{c-}|vxQHUEgwIFzGMkl1mTa_T52Tyuw<8s9aY+TXR?n7y%b`Kpkq8s{9qzgL- z((mpVNYEB>S|nDy1h(uHOjLsNh7TW3au`@l=x25gDKh$vDzC>PMm}9xTTZ)442P;a zN>inDPt{YN7s@E1pLUNA5TZ;LGw^%JKxKy~5uP3Uq!`H+##lO!VpZHda5#RPuF`ur za;%D{5$6j&g5xsl%;G44C+qS8eN{B)e9&FjF~(ukkvz_JKP{zwIK3QqF(Ef48btk? z=oze1Vb@8}Xth>2pE{y;I1bM0a6+HnNnjcaPfv=@Kz1FN;-J6M`kj4z8}Q^|&NlNa z8K@#$wJK9TP1lJFv}Heqi;uI)BXIM`FC9e>otLAmzO;D^-_w+L6~cQgr4kKy8k}Q% zaXfhE%9s@LgcnD=w9fhG=A%I8blfg%vpTp9T5fkX?d#?_<-M(O=^RhvBxO9Wc8QU{ z0W(Y8IM3vV+4qw+!GYRU7azGgc6z<=N6qMYwP4X0ePZI7Y`{rE_jRo%P^i_!iz%&U8gU`zcp(|Mn_9HeOl!6Y%QjXC=7*33F(ApT~*A1 zd@ySvzK<{g52LgFm2D<1O3&TY7SnR0=8d;H(#XB?888M^BL_sK6sja)%4~`*=%n}S zo-9+5+ZTZ0%3338E_R|tgz~d_2@r~wlo5){6o|4^iPXr4*&XrgoE=qmo}6HHAncfx!)K33T9%z>48!B;|Uuf-9cmkj12(?fAQfUi6!P2KEf2#K=~WP5v`0A zWV1bNVAU-$_?H2rXt@do9w%KP`U2MeH99Vlg@f7{yvt{|3mO`~Q97K|07*TFBySRI zE1>&8@wGhbDbMXUcK}SB#x3&9hZt}Fz6{K3pglU~C~aZbb+XoaNtSy+^i>xm0CC*LAx;~|st~+5 zzL8jk#_9x5D>Zn~cN(`a9QAcoVtsdMX8jEOz-L7&J7s-y976fVfzvyEZyq>him=Cl z4Wl@B&S_xOzIJNVo}xZ5YG=kIMu-ujAw%9nGCYlzg_Ti?TDZn?V%TDmktkF(qg9q# zuWz{tsWR7Elu*MsneQxykLS&y$gz15pXe$rV2?;Gkp#hpKa1?{I8yjFy7*&~3CA{r zBhb%A5CK75txtYOD^C?6OP+Xcp)#-+!~%*r| zTf=_>=BO775JAabFnn zY@QCO)=+FYB_&{so!fN#Rkva&$a5?uBKRHf`BlXMbQu;iU0K7; zGI9nwO>$8t2f#dQ#sM|Rkuk|-QqAp7ZzNJ1mbRc(gd8K%!HXZ!JPWgQhZlQtixq=| zB|dPBvqt6PG&^gx!S5)o-Gfdy9|mzvcgR!gtMx`&2dB$bo6QUHU5PmLi!5uoQH5N%54(P(5R$411E<`dcz^OsgY~f}WzJdJius@tf7e6H8 zi`jUPk@EWMb+?cXRUQK=q^M@ZcI-#SQvtP8U?MKB7F3`ybW%>7K2LH0p(?T;n??1T zkhhBZ5UeDksyPx%F#R$3#bUWthYHXQ5J!7#Q7_&_LI{H7(>G>${SK6iT6*8ke%su( z!t?ry!gb_vKSd|^XRZRoI>yK4T{Og7jzA(r>+7msPX23j#H9i9sMTi^agQU#%kMd@C?0;rJeDK+hPk$9w2vIkXdV-`b;-Ee2sH_AObRQTPE zSt|X!s^E!0C|ye@sJRwza`L$7tnpGKM;Dk*p`6O?q){8d*JG=g`sf*(@?UsUu^1xS zsC{+RO1vOcgV#=s+7rU|FIeE78Ptd~W+$cnAnLN!tLI1U1t|&6Uziy?h$7Vv=&%?dZ8PCOU8_Aoc+)sB z&<`KmL|KlG$in!W!q1K(0o-BMb{{7Yr*9l0m;nOFzn4(Viz9ear^AfMTH$LtY4#($ zB$U-~_jkD(0<%_wXS-HA#l?_^aWTUTp(h6OhZlvHN%6dd;jAI-?g}CY_YAW+5!~oQ zm$llt5?XUEL~9SyPvU_f#m&7j1!=%DHKLxx?6#k$K&7%FAnw_81^-)U?nPE8Cs?qY zMg4{T35{;UsZ?R$%dHLC$1k3n$7v9cso)JOakjj#{5Z^ZaCij|x3iqQ$(?jXW%P3> z_IyV7maA0(LQK#Avc!BvE>x{4)^s`D~FHZcX;5~ z$f1!#10w??Ln8xK{5v=>ICPNdmj8N3P7FOFr9%Uc4GbN9YGf2o)q&xGzJY4kLC1Cc zAJ zUaUL#j0H*b%G#YYxr?ik)Lt=;`vwRe5Cx61mW6gAhqRmkNm=j2xlgCyI9ce?YQ*e> z3v`s2*gVpYr`wx?WZjhXGcpJatKX9IPGCYr0qlnEgxk%CUq|j2*{*8W!s_^S zkMJ&LP`VKEH9q3E3%YwAt=|Ad^m7P(G;>AN5lDom0ExT>5V{G@p?Z=SanLi`uShw> zi@ZG!p^aQGDgt~j^(aVZK}`;V8)6O#8CqgQSX>4~%n-iOf@MN_NSSPzcwh26J0*!C zV9kvxQU%*8h;QcZr z4=5zbTliWaN$@Bn0XUkW?@_+Be_iwdK~kEdq6*NDdr>O8^8|23sWD4;D|`d^NDn@H zuUb0rDz*8g0x_YS-mCnJygtO%n3C_G8z|H+oCnB`H`v$n=o142u&##j-%;@cy?sfqIdW^|j}yOypQTlr zKuHJ3M=JCLdZ+RZn@YYgN}EcptUfC8++FJ;fwBbN+(f3YC)> zZVG=>?BtV3=%fL0!7WlHeS^@jXVm%Octa!u-r*VF^Mbm;45s4c67-*f1anEfCtuC- zDIjS5NunEfKZY*$2`FpGOye%1!M@#`F!rX;;#QJet$D z0U$yZ$}yc=tKkRSDqOR~rx2v<1Ye9J+2zdW|M(tf#$HV!1^t}3!5-~JZ+%d*yUw!Zk?R6e$=?7~zu68e0#x?vcSH}Ir$|@oR zW^fk3;Q9nd{q7HSbbZ9p^7=rWj%SoSGgve`w9jGbLRsuhc!CY)#UqIbvxP>|H=}Sz!%^h zn{v30xR88A2``j-WlxB2i14}Q>iT#-h^$2WZlud84jr%ZACa`Upf!)rU%=m^t?hUa zy!cwDDHZcu;A$_pwmgoM9*aZkDqu!HPZ4(HCxs_OnPOQ-{{h~6uH|^4pZU(0EGmSY zllsQnEnBLodu1nU-?H>#n9a-Qo6=E~n}s-^q^hF+39L5!7L#uyDNz4`=$SbDFFDrp zD;rw{6}_yGKJc8-10~jWdzx~K;!2HgyzYe|3Ice!ho7HBRq;;odt1|#pR+jX=|0Em zhOusG+Cu0zU)`hG-bQB-X>+!5AHgnH;|q2Uv{=#B#qW7{D$06ITv#N zGa65_b+V^29W{lylj2bmCwL)L)ggoFONJfq!Eu6&@o(I8YD{MEFf>R;we5$e=g56L zJ+Gs3fo_s}Ae{SE^z)A#p5W*^fH1lP`bkXjD#=Ru>0MFXm>Gu@m(K^ugN?f5&O6K- zUV5INzfs9gt)PL=&I3V0G7{BGzr@NzNWP#)ylRmhN{O(a>!3GTr{WdX11 lIm`uuT0(aE5UVx_NFVAsR2ixs`@no)Mjve)J9=#2{{hn{b`1ak literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/xsd/sxbasic.pyc b/pym/calculate/contrib/suds_bak/xsd/sxbasic.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d3bf658ad740599aad5d835dc7dcc1a0188fd88c GIT binary patch literal 33301 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 literal 0 HcmV?d00001 diff --git a/pym/calculate/contrib/suds_bak/xsd/sxbuiltin.pyc b/pym/calculate/contrib/suds_bak/xsd/sxbuiltin.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f136dfc7f2b904260057c6bcb22f66e82d69f29b GIT binary patch literal 11531 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 nnu&zV50yrd`x?bJI%CLqjg`+&o' @@ -188,11 +254,23 @@ class xmlDoc(object): '{type_doc}' ''.format(version=version, type_doc=typeDoc)) - self.doc = minidom.parseString(docTxt) - self.root = self.doc.documentElement + # self.doc = minidom.parseString(docTxt) + # self.root = self.doc.documentElement + # self.body = xpath.Evaluate('child::body', self.root)[0] + + self.doc = ET.XML(bytes(bytearray(docTxt, encoding='utf-8'))) + # self.doc = ET.XML(bytes(docTxt, encoding='utf8')) + # print(ET.tostring(self.doc, pretty_print=True)) + self.root = self.doc + # print(ET.tostring(self.root, pretty_print=True)) self.body = xpath.Evaluate('child::body', self.root)[0] + # print(ET.tostring(self.doc, pretty_print=True)) + # print(ET.tostring(self.body, pretty_print=True)) # установка разделителя областей + + self.sepAreas = self.createField("br", [], "", [], False, False) + # установка разделителя областей разделенных списков # self.sepSplitFields = self.createField("br",[],"",[],False,False) return self.doc @@ -259,24 +337,24 @@ class xmlDoc(object): def setActionField(self, xmlField, actionTxt): """Устанавливает свойство action для XML поля""" xmlActions = xpath.Evaluate('child::action', xmlField) - if xmlActions and xmlActions[0].firstChild: - xmlActions[0].firstChild.nodeValue = actionTxt + if xmlActions and firstChild(xmlActions[0]) is not None: + firstChild(xmlActions[0]).text = actionTxt else: nodeObj = xmlNode() newNode = nodeObj.createNode(self.doc, "action", actionTxt) - xmlField.appendChild(newNode) + xmlField.append(newNode) def setActionArea(self, xmlArea, actionTxt): """Устанавливает свойство action для XML области""" xmlActions = xpath.Evaluate('child::caption/action', xmlArea) xmlCaptions = xpath.Evaluate('child::caption', xmlArea) - if xmlActions and xmlActions[0].firstChild: - xmlActions[0].firstChild.nodeValue = actionTxt + if xmlActions and firstChild(xmlActions[0]) is not None: + firstChild(xmlActions[0]).text = actionTxt else: if xmlCaptions: nodeObj = xmlNode() newNode = nodeObj.createNode(self.doc, "action", actionTxt) - xmlCaptions[0].appendChild(newNode) + xmlCaptions[0].append(newNode) def joinField(self, xmlArea, xmlNewField): """Объединяет XML ноду область и XML ноду поле""" @@ -290,7 +368,7 @@ class xmlDoc(object): if not fieldsOldComp and typeNewField != "seplist": if self.getActionField(xmlNewField) != "drop": self.setActionField(xmlNewField, "append") - xmlArea.appendChild(xmlNewField) + xmlArea.append(xmlNewField) return True newFieldsAction = self.getActionField(xmlNewField) newValues = self.getFieldValues(xmlNewField) @@ -298,15 +376,15 @@ class xmlDoc(object): for nodeFieldOld in fieldsOldComp: if newFieldsAction == "drop": - if nodeFieldOld.nextSibling and \ + if nodeFieldOld.getnext() and \ self.getTypeField( - nodeFieldOld.nextSibling) == "br": - xmlArea.removeChild(nodeFieldOld.nextSibling) - elif nodeFieldOld.previousSibling and \ + nodeFieldOld.getnext()) == "br": + xmlArea.remove(nodeFieldOld.getnext()) + elif nodeFieldOld.getprevious() and \ self.getTypeField( - nodeFieldOld.previousSibling) == "br": - xmlArea.removeChild(nodeFieldOld.previousSibling) - xmlArea.removeChild(nodeFieldOld) + nodeFieldOld.getprevious()) == "br": + xmlArea.remove(nodeFieldOld.getprevious()) + xmlArea.remove(nodeFieldOld) continue oldValues = self.getFieldValues(nodeFieldOld) # Сравнение значений переменной шаблона и файла @@ -335,8 +413,8 @@ class xmlDoc(object): flagCompareSeplist = True break if not flagCompareSeplist: - nextNode = xmlOldField.nextSibling - newInsNode = nodeSeplist.cloneNode(True) + nextNode = xmlOldField.getnext() + newInsNode = deepcopy(nodeSeplist) self.setActionField(newInsNode, "append") if nextNode: @@ -348,7 +426,7 @@ class xmlDoc(object): False, "append")) else: - newInsNode = nodeSeplist.cloneNode(True) + newInsNode = deepcopy(nodeSeplist) if self.getActionField(newInsNode) == "join": self.setActionField(newInsNode, "append") if xmlOldField: @@ -364,8 +442,8 @@ class xmlDoc(object): # nodeSeplist.cloneNode(True), # xmlOldField) - parentNode = nodeSeplist.parentNode - parentNode.removeChild(nodeSeplist) + parentNode = nodeSeplist.getparent() + parentNode.remove(nodeSeplist) insNodesRepl = [] for newNode, nxtNode, app in insSplLst: @@ -384,26 +462,25 @@ class xmlDoc(object): for newNode, nxtNode, app in insNodesRepl: if app == "insert": - xmlArea.insertBefore(newNode, nxtNode) + insertBefore(xmlArea, newNode, nxtNode) elif app == "append": - xmlArea.appendChild(newNode) + xmlArea.append(newNode) if xmlOldField: - parentNode = xmlOldField.parentNode + parentNode = xmlOldField.getparent() if parentNode and newFieldsAction != "join": - parentNode.removeChild(xmlOldField) + parentNode.remove(xmlOldField) for newNode, nxtNode, app in appSplLst: if app == "insert": - xmlArea.insertBefore(newNode, nxtNode) + insertBefore(xmlArea, newNode, nxtNode) elif app == "append": - xmlArea.appendChild(newNode) + xmlArea.append(newNode) if not flagCompare and typeNewField != "seplist": # Устанавливаем action=replace self.setActionField(xmlNewField, "replace") # Если параметры поля не сходятся заменяем поле - xmlArea.replaceChild(xmlNewField.cloneNode(True), - fieldsOldComp[-1]) + xmlArea.replace(fieldsOldComp[-1], deepcopy(xmlNewField)) if newFieldsAction == "join": fieldsOldRemove = [] @@ -415,11 +492,11 @@ class xmlDoc(object): if actionOldNode == "insert" or actionOldNode == "append": pass else: - if nodeFieldOld.nextSibling and \ + if nodeFieldOld.getnext() and \ self.getTypeField( - nodeFieldOld.nextSibling) == "br": - xmlArea.removeChild(nodeFieldOld.nextSibling) - xmlArea.removeChild(nodeFieldOld) + nodeFieldOld.getnext()) == "br": + xmlArea.remove(nodeFieldOld.getnext()) + xmlArea.remove(nodeFieldOld) return True def getSepListToField(self, xmlField): @@ -431,7 +508,7 @@ class xmlDoc(object): nameField = self.getNameField(xmlField) if not nameField: return [] - parentNode = xmlField.parentNode + parentNode = xmlField.getparent() if parentNode: fieldsVal = xpath.Evaluate( "child::field[attribute::type='seplist'][child::name='%s'] " \ @@ -444,11 +521,11 @@ class xmlDoc(object): """Удаляет комментарии в XML области""" fieldNodes = xpath.Evaluate('descendant::field', xmlArea) for fieldNode in fieldNodes: - if fieldNode.hasAttribute("type"): - if fieldNode.getAttribute("type") == "comment" or \ - fieldNode.getAttribute("type") == "br": - parentNode = fieldNode.parentNode - parentNode.removeChild(fieldNode) + if "type" in fieldNode.keys(): + if fieldNode.get("type") == "comment" or \ + fieldNode.get("type") == "br": + parentNode = fieldNode.getparent() + parentNode.remove(fieldNode) else: if self.getActionField(fieldNode) == "drop": pass @@ -459,9 +536,18 @@ class xmlDoc(object): def joinBody(self, baseBody, newBody): """Объединяет две области Body""" + # print("baseBody") + # display(baseBody) + # print("newBody") + # display(newBody) newFields = xpath.Evaluate('child::field', newBody) + # if(newFields): + # print("newFields") + # display(newFields[0]) xmlNewAreas = xpath.Evaluate('child::area', newBody) - for xmlNewArea in xmlNewAreas: + for i, xmlNewArea in enumerate(xmlNewAreas): + # print("xmlNewArea ", i) + # display(xmlNewArea) self.joinArea(baseBody, xmlNewArea) joinNewFields = xpath.Evaluate("child::field[child::action='join']", newBody) @@ -482,7 +568,7 @@ class xmlDoc(object): flagNewNodeSeplist = True nameNewField = self.getNameField(xmNewlField) if nameNewField: - if removeNodesDict.has_key(nameNewField): + if nameNewField in removeNodesDict: return removeNodesDict[nameNewField] else: oldFields = xpath.Evaluate('child::field', baseNode) @@ -509,7 +595,7 @@ class xmlDoc(object): notRemoveNodesDict = {} for notRemNode in joinNewFields: nameField = self.getNameField(notRemNode) - if not notRemoveNodesDict.has_key(nameField): + if nameField not in notRemoveNodesDict: notRemoveNodesDict[nameField] = [] notRemoveNodesDict[nameField].append(notRemNode) else: @@ -534,9 +620,9 @@ class xmlDoc(object): removeNodes = removeNodes[:-2] for removeNode in removeNodes: - xmlOldArea.removeChild(removeNode) + xmlOldArea.remove(removeNode) for node in sepListField: - node.setAttribute("type", "seplist") + node.set("type", "seplist") if not (self.getActionField(node) == "join" or self.getActionField(node) == "drop"): self.setActionField(node, "insert") @@ -544,7 +630,7 @@ class xmlDoc(object): for node in notSepListField: if self.getTypeField(node) == "seplist": self.setActionField(node, "append") - xmlOldArea.appendChild(node) + xmlOldArea.append(node) else: self.joinField(xmlOldArea, node) @@ -554,10 +640,10 @@ class xmlDoc(object): return False areaNodes = xpath.Evaluate('descendant::area', xmlArea) for areaNode in areaNodes: - prevNode = areaNode.previousSibling + prevNode = areaNode.getprevious() if prevNode: - parentNode = areaNode.parentNode - parentNode.insertBefore(self.sepAreas.cloneNode(True), + parentNode = areaNode.getparent() + insertBefore(parentNode, deepcopy(self.sepAreas), areaNode) return True @@ -575,14 +661,14 @@ class xmlDoc(object): dictVar = {} for namesAreaCompare in namesAreaCompareAll: fields = xpath.Evaluate("child::field/child::name", - namesAreaCompare.parentNode) + namesAreaCompare.getparent()) for fieldName in fields: - nodeField = fieldName.parentNode + nodeField = fieldName.getparent() fieldValue = xpath.Evaluate("child::value", nodeField) - name = fieldName.firstChild.nodeValue + name = firstChild(fieldName).text value = "" - if fieldValue and fieldValue[0].firstChild: - value = fieldValue[0].firstChild.nodeValue + if fieldValue and firstChild(fieldValue[0]): + value = firstChild(fieldValue[0]).text dictVar[name] = value if not allVars: break @@ -600,7 +686,7 @@ class xmlDoc(object): for areaComp in namesAreaComare: fieldsVal = xpath.Evaluate( "child::field[child::name='%s'] " - % nameField, areaComp.parentNode) + % nameField, areaComp.getparent()) if fieldsVal: break if not fieldsVal: @@ -609,8 +695,8 @@ class xmlDoc(object): fieldsVal[0]) if not fieldValue: return False - if fieldValue[0].firstChild: - return fieldValue[0].firstChild.nodeValue + if firstChild(fieldValue[0]): + return firstChild(fieldValue[0]).text else: return "" @@ -623,7 +709,7 @@ class xmlDoc(object): namesAreaComare = xpath.Evaluate( "child::area/child::caption[child::name='%s']" % nameArea, xmlArea) - return map(lambda x: x.parentNode, namesAreaComare) + return map(lambda x: x.getparent(), namesAreaComare) def joinArea(self, baseNode, xmlNewArea): """Объединяет область c областью Body (xmlNewArea c baseNode)""" @@ -632,29 +718,36 @@ class xmlDoc(object): fieldsRemove = xpath.Evaluate( "descendant::field[child::action='drop']", xmlNewArea) for rmNode in fieldsRemove: - parentNode = rmNode.parentNode - parentNode.removeChild(rmNode) + parentNode = rmNode.getparent() + parentNode.remove(rmNode) captionAreasRemove = xpath.Evaluate( "descendant::area/child::caption[child::action='drop']", xmlNewArea) for rmNodeCapt in captionAreasRemove: - rmNode = rmNodeCapt.parentNode - parentNode = rmNode.parentNode - parentNode.removeChild(rmNode) + rmNode = rmNodeCapt.getparent() + parentNode = rmNode.getparent() + parentNode.remove(rmNode) self.setActionArea(xmlNewArea, "append") # Добавляем разделитель областей во вложенные области areaNodes = xpath.Evaluate('descendant::area', xmlNewArea) + # print("DEBUG appendArea") + # print(len(areaNodes)) for areaNode in areaNodes: + # display(areaNode) self.setActionArea(areaNode, "append") - parentNode = areaNode.parentNode - parentNode.insertBefore(self.sepAreas.cloneNode(True), + parentNode = areaNode.getparent() + insertBefore(parentNode, deepcopy(self.sepAreas), areaNode) - baseNode.appendChild(xmlNewArea) + baseNode.append(xmlNewArea) # Добавляем разделитель областей - baseNode.insertBefore(self.sepAreas.cloneNode(True), xmlNewArea) + insertBefore(baseNode, deepcopy(self.sepAreas), xmlNewArea) nodesNames = xpath.Evaluate('child::area/caption/name', baseNode) nodesNewArea = xpath.Evaluate('child::caption/name', xmlNewArea) + # print("nodesNames") + # print(nodesNames) + # print('nodesNewArea') + # print(nodesNewArea) if not nodesNames: # Добавляем область if nodesNewArea: @@ -665,43 +758,58 @@ class xmlDoc(object): if not nodesNames or not nodesNewArea: return False nameArea = "" - if nodesNewArea[0].firstChild: - nameArea = nodesNewArea[0].firstChild.nodeValue.strip() + if firstChild(nodesNewArea[0]) is not None: + # print("HELLO") + + nameArea = firstChild(nodesNewArea[0]).text.strip() + # print('nameArea: ', nameArea) + # print(firstChild(nodesNewArea[0])) flagFindArea = False newAreaAction = None baseNodes = [] for oName in nodesNames: + # print("DEBUG in for oName") + # print(oName) + # display(oName) + # print(firstChild(oName)) newAreaAction = self.getActionArea(xmlNewArea) - oArea = oName.parentNode.parentNode + oArea = oName.getparent().getparent() oNameTxt = "" - if oName.firstChild: - oNameTxt = oName.firstChild.nodeValue + + if firstChild(oName) is not None: + + oNameTxt = firstChild(oName).text + # print("BBBBBBBBBB") + # print(oNameTxt) if nameArea == oNameTxt: flagFindArea = True # При использовании удаления if newAreaAction == "drop": - prevNode = oName.parentNode.parentNode.previousSibling + prevNode = oName.getparent().getparent().getprevious() removePrevNodes = [] while prevNode and self.getTypeField(prevNode) == "br": removePrevNodes.append(prevNode) - prevNode = prevNode.previousSibling + prevNode = prevNode.getprevious() for removeNode in removePrevNodes: - baseNode.removeChild(removeNode) - baseNode.removeChild(oName.parentNode.parentNode) + baseNode.remove(removeNode) + baseNode.remove(oName.getparent().getparent()) continue elif newAreaAction == "replace": - oldAreaNode = oName.parentNode.parentNode + oldAreaNode = oName.getparent().getparent() newAreaCaption = xpath.Evaluate('child::caption', xmlNewArea)[0] oldAreaCaption = xpath.Evaluate('child::caption', oldAreaNode)[0] if newAreaCaption and oldAreaCaption: - xmlNewArea.replaceChild(oldAreaCaption, newAreaCaption) + #its was replace(old, new) in legacy code, even though + #the func takes (new, old). Mistake, or on purpose? + #xmlNewArea.replaceChild(oldAreaCaption, newAreaCaption) + + xmlNewArea.replace(newAreaCaption, oldAreaCaption) self.setActionArea(xmlNewArea, "replace") - baseNode.replaceChild(xmlNewArea, - oldAreaNode) + baseNode.replace(oldAreaNode, xmlNewArea) continue - baseNodes.append(oName.parentNode.parentNode) + baseNodes.append(oName.getparent().getparent()) newFields = xpath.Evaluate('child::field', xmlNewArea) joinNewFields = xpath.Evaluate( @@ -710,6 +818,7 @@ class xmlDoc(object): self.addNewFielsOldArea(newFields, joinNewFields, oArea) if not flagFindArea: + # print("FLAG") # Добавляем область if not (newAreaAction == "drop" or newAreaAction == "replace"): appendArea(baseNode, xmlNewArea) @@ -722,59 +831,60 @@ class xmlDoc(object): def joinDoc(self, xmlNewDoc): """Объединяет два документа""" - newRootNode = xmlNewDoc.documentElement + newRootNode = xmlNewDoc.getroottree() newBodyNode = xpath.Evaluate('child::body', newRootNode)[0] - newImportBodyNode = self.doc.importNode(newBodyNode, True) + # newImportBodyNode = self.doc.importNode(newBodyNode, True) + newImportBodyNode = deepcopy(newBodyNode) # Перед объединение области с документом # удаляем комментарии + self.removeComment(newImportBodyNode) self.joinBody(self.body, newImportBodyNode) # расставляем BR self.insertBRtoBody(self.body) + # print("final:") + # display(self.doc) + # print("------------------------") def getQuoteField(self, xmlField): """Выдает текст из поля""" xmlQuotes = xpath.Evaluate('child::quote', xmlField) br = "" - if (xmlField.hasAttribute("type") and - xmlField.getAttribute("type") == "br"): + if (xmlField.get("type") == "br"): br = "\n" if xmlQuotes: field = xmlQuotes[0] - if field.firstChild: - return field.firstChild.nodeValue + br + if firstChild(field) is not None: + return firstChild(field).text + br return "" + br def getFieldsArea(self, xmlArea): """Выдает потомков XML области""" xmlFields = [] - childNodes = xmlArea.childNodes + childNodes = xmlArea.getchildren() for node in childNodes: - if node.nodeType == node.ELEMENT_NODE: - if node.tagName == "area" or node.tagName == "field": - xmlFields.append(node) + # if node.nodeType == node.ELEMENT_NODE: + if node.tag == "area" or node.tag == "field": + xmlFields.append(node) return xmlFields def getTypeField(self, xmlField): """Выдает тип поля""" - if xmlField.hasAttribute("type"): - return xmlField.getAttribute("type") - else: - return False + return xmlField.get("type") def getNameField(self, xmlField): """Выдает имя поля""" xmlNameFields = xpath.Evaluate('child::name', xmlField) - if xmlNameFields and xmlNameFields[0].firstChild: - return xmlNameFields[0].firstChild.nodeValue + if xmlNameFields and firstChild(xmlNameFields[0]) is not None: + return firstChild(xmlNameFields[0]).text else: return False def getNameArea(self, xmlArea): """Выдает имя области""" xmlNameAreas = xpath.Evaluate('child::caption/name', xmlArea) - if xmlNameAreas and xmlNameAreas[0].firstChild: - return xmlNameAreas[0].firstChild.nodeValue + if xmlNameAreas and firstChild(xmlNameAreas[0]): + return firstChild(xmlNameAreas[0]).text else: return False @@ -785,8 +895,8 @@ class xmlDoc(object): quotes = [] xmlQuotes = xpath.Evaluate('child::caption/quote', xmlArea) for node in xmlQuotes: - if node.firstChild: - quotes.append(node.firstChild.nodeValue) + if firstChild(node) is not None: + quotes.append(firstChild(node).text) if len(quotes) == 0: quotes.append("") quotes.append("") @@ -795,14 +905,14 @@ class xmlDoc(object): return quotes for i in xmlAreas: - if i.tagName == "area": + if i.tag == "area": quotesI = getQuotesArea(i) startAreaI = quotesI[0] endAreaI = quotesI[1] text.append(startAreaI) xmlFieldsI = self.getFieldsArea(i) for f in xmlFieldsI: - if f.tagName == "area": + if f.tag == "area": quotesF = getQuotesArea(f) startAreaF = quotesF[0] endAreaF = quotesF[1] @@ -821,8 +931,8 @@ class xmlDoc(object): def getActionField(self, xmlField): """Выдает свойство action XML поля""" xmlActions = xpath.Evaluate('child::action', xmlField) - if xmlActions and xmlActions[0].firstChild: - return xmlActions[0].firstChild.nodeValue + if xmlActions and firstChild(xmlActions[0]) is not None: + return firstChild(xmlActions[0]).text else: return False @@ -832,24 +942,24 @@ class xmlDoc(object): xmlValues = xpath.Evaluate('child::value', xmlField) if xmlValues: for node in xmlValues: - if node.firstChild: - vals.append(node.firstChild.nodeValue) + if firstChild(node) is not None: + vals.append(firstChild(node).text) return vals def getActionArea(self, xmlArea): """Выдает свойство action XML области""" xmlActions = xpath.Evaluate('child::caption/action', xmlArea) - if xmlActions and xmlActions[0].firstChild: - return xmlActions[0].firstChild.nodeValue + if xmlActions and firstChild(xmlActions[0]) is not None: + return firstChild(xmlActions[0]).text else: return False def delActionNodeArea(self, xmlArea): """Удаляет свойство action XML области""" xmlActions = xpath.Evaluate('child::caption/action', xmlArea) - if xmlActions and xmlActions[0].firstChild: - parentNode = xmlActions[0].parentNode - parentNode.removeChild(xmlActions[0]) + if xmlActions and firstChild(xmlActions[0]) is not None: + parentNode = xmlActions[0].getparent() + parentNode.remove(xmlActions[0]) return True else: return False @@ -857,9 +967,9 @@ class xmlDoc(object): def delActionNodeField(self, xmlField): """Удаляет свойство action XML поля""" xmlActions = xpath.Evaluate('child::action', xmlField) - if xmlActions and xmlActions[0].firstChild: - parentNode = xmlActions[0].parentNode - parentNode.removeChild(xmlActions[0]) + if xmlActions and firstChild(xmlActions[0]) is not None: + parentNode = xmlActions[0].getparent() + parentNode.remove(xmlActions[0]) return True else: return False @@ -872,15 +982,15 @@ class xmlDoc(object): # содержит списки нод полей с одинаковыми именами в одной области fieldsSeplist = {} for node in childNodes: - if node.tagName == "area": + if node.tag == "area": self.postParserListSeplist(node) else: fieldName = False xmlFieldNameNodes = xpath.Evaluate('child::name', node) - if xmlFieldNameNodes and xmlFieldNameNodes[0].firstChild: - fieldName = xmlFieldNameNodes[0].firstChild.nodeValue + if xmlFieldNameNodes and firstChild(xmlFieldNameNodes[0]): + fieldName = firstChild(xmlFieldNameNodes[0]).text if fieldName: - if fieldsSeplist.has_key(fieldName): + if fieldName in fieldsSeplist: fieldsSeplist[fieldName].append(node) else: fieldsSeplist[fieldName] = [] @@ -888,7 +998,7 @@ class xmlDoc(object): for listNodes in fieldsSeplist.values(): if len(listNodes) > 1: for node in listNodes: - node.setAttribute("type", "seplist") + node.set("type", "seplist") def insertBRtoBody(self, xmlArea): """Добавляет необходимые переводы строк @@ -897,33 +1007,31 @@ class xmlDoc(object): childNodes = self.getFieldsArea(xmlArea) # нода BR fieldXMLBr = self.createField("br", [], "", [], False, False) + # Предыдущая нода - lastNode = False + lastNode = None lenChildNodes = len(childNodes) for i in range(lenChildNodes): + # print(lastNode) node = childNodes[i] lastTmpNode = node # Нода area - if node.tagName == "area": + if node.tag == "area": if self.getActionArea(node) == "append" or \ self.getActionArea(node) == "join": self.delActionNodeArea(node) - if lastNode and lastNode.hasAttribute("type") and \ - lastNode.getAttribute("type") == "br" or \ - lastNode and lastNode.hasAttribute( - "type") and \ - lastNode.getAttribute( - "type") == "comment": + if lastNode is not None and lastNode.get("type") == "br" or \ + lastNode is not None and lastNode.get("type") == "comment": indNext = i + 1 if indNext == lenChildNodes: - xmlArea.appendChild(fieldXMLBr.cloneNode(True)) + xmlArea.append(deepcopy(fieldXMLBr)) else: nextNode = childNodes[indNext] - lastTmpNode = xmlArea.insertBefore( - fieldXMLBr.cloneNode(True), + lastTmpNode = insertBefore(xmlArea, + deepcopy(fieldXMLBr), nextNode) else: - xmlArea.insertBefore(fieldXMLBr.cloneNode(True), + insertBefore(xmlArea, deepcopy(fieldXMLBr), node) self.insertBRtoBody(node) # Нода field @@ -931,23 +1039,18 @@ class xmlDoc(object): if self.getActionField(node) == "append" or \ self.getActionField(node) == "join": self.delActionNodeField(node) - if lastNode and lastNode.hasAttribute("type") and \ - lastNode.getAttribute("type") == "br" or \ - lastNode and lastNode.hasAttribute( - "type") and \ - lastNode.getAttribute( - "type") == "comment": + if lastNode is not None and lastNode.get("type") == "br" or \ + lastNode is not None and lastNode.get("type") == "comment": indNext = i + 1 if indNext == lenChildNodes: - xmlArea.appendChild(fieldXMLBr.cloneNode(True)) + xmlArea.append(deepcopy(fieldXMLBr)) else: nextNode = childNodes[indNext] - lastTmpNode = xmlArea.insertBefore( - fieldXMLBr.cloneNode(True), + lastTmpNode = insertBefore(xmlArea, + deepcopy(fieldXMLBr), nextNode) else: - xmlArea.insertBefore(fieldXMLBr.cloneNode(True), - node) + insertBefore(xmlArea, deepcopy(fieldXMLBr), node) lastNode = lastTmpNode def postParserList(self): @@ -964,31 +1067,32 @@ class xmlDoc(object): for xmlField in xmlFields: xmlNames = xpath.Evaluate('child::name', xmlField) xmlVals = xpath.Evaluate('child::value', xmlField) - if xmlField.hasAttribute("type") and \ - xmlField.getAttribute("type") == "br": + # if xmlField.hasAttribute("type") and \ + # xmlField.getAttribute("type") == "br": + if xmlField.get("type") == "br": lenBrArea += 1 continue if not xmlNames and not xmlVals: flagListXml = False break - if xmlNames and xmlNames[0].firstChild and \ - xmlNames[0].firstChild.nodeValue: + if xmlNames and firstChild(xmlNames[0]) and \ + firstChild(xmlNames[0]).text: flagListXml = False break - if not (xmlVals and xmlVals[0].firstChild and - xmlVals[0].firstChild.nodeValue): + if not (xmlVals and firstChild(xmlVals[0]) and + firstChild(xmlVals[0]).text): flagListXml = False break else: - fieldValues.append(xmlVals[0].firstChild.nodeValue) + fieldValues.append(firstChild(xmlVals[0]).text) if lenXmlFields == lenBrArea: flagListXml = False if flagListXml: nameNode = xpath.Evaluate('child::caption/name', xmlArea)[0] fieldName = "" - if nameNode.firstChild: - fieldName = nameNode.firstChild.nodeValue + if firstChild(nameNode) is not None: + fieldName = firstChild(nameNode).text listArea = [] self.xmlToText([xmlArea], listArea) fieldQuote = "".join(listArea) @@ -1004,8 +1108,8 @@ class xmlDoc(object): areaAction = self.getActionArea(xmlArea) if areaAction: self.setActionField(fieldXML, areaAction) - parentNode = xmlArea.parentNode - parentNode.insertBefore(fieldXML, xmlArea) + parentNode = xmlArea.getparent() + insertBefore(parentNode, fieldXML, xmlArea) if fieldXMLBr: - parentNode.insertBefore(fieldXMLBr, xmlArea) - parentNode.removeChild(xmlArea) + insertBefore(parentNode, fieldXMLBr, xmlArea) + parentNode.remove(xmlArea) diff --git a/pym/calculate/lib/format/apache.py b/pym/calculate/lib/format/apache.py index fd43490..be225ce 100644 --- a/pym/calculate/lib/format/apache.py +++ b/pym/calculate/lib/format/apache.py @@ -56,7 +56,7 @@ class apache(bind): xmlFields = xpath.Evaluate("child::fields", self.docObj.body) if not (xmlFields and self.docObj.getTypeField(xmlFields[-1]) == "br"): - self.docObj.body.appendChild(self.docObj.createField("br", + self.docObj.body.append(self.docObj.createField("br", [], "", [], False, False)) xmlAreas = xpath.Evaluate("child::area", self.docObj.body) @@ -64,9 +64,7 @@ class apache(bind): xmlFields = xpath.Evaluate("child::field", xmlArea) if not (xmlFields and self.docObj.getTypeField(xmlFields[-1]) == "br"): - xmlArea.appendChild(self.docObj.createField("br", - [], "", [], - False, False)) + xmlArea.append(self.docObj.createField("br", [], "", [], False, False)) def join(self, apacheObj): """Объединяем конфигурации""" diff --git a/pym/calculate/lib/format/bind.py b/pym/calculate/lib/format/bind.py index bd365e3..91d4f25 100644 --- a/pym/calculate/lib/format/bind.py +++ b/pym/calculate/lib/format/bind.py @@ -219,14 +219,14 @@ class bind(objShare): self.createXML(f.fields, areaXMLChild, docObj) - areaXML.appendChild(areaXMLChild) + areaXML.append(areaXMLChild) else: self.createXML(f.fields, areaXML, docObj) if "\n" in f.end: fieldXMLBr = docObj.createField("br", [], "", [], False, False) - areaXML.appendChild(fieldXMLBr) + areaXML.append(fieldXMLBr) else: if not f: continue @@ -237,19 +237,19 @@ class bind(objShare): field.value, field.br, docObj) - areaXML.appendChild(fieldXML) + areaXML.append(fieldXML) if field.br[-1] == "\n": fieldXMLBr = docObj.createField("br", [], "", [], False, False) - areaXML.appendChild(fieldXMLBr) + areaXML.append(fieldXMLBr) elif field.comment is not False: fieldXML = docObj.createField("comment", [field.comment], "", [], False, False) - areaXML.appendChild(fieldXML) + areaXML.append(fieldXML) elif field.br is not False: brText = field.br.replace("\n", "") if brText: @@ -262,14 +262,14 @@ class bind(objShare): [], "", [], False, False) - areaXML.appendChild(fieldXML) + areaXML.append(fieldXML) if i.header and i.start: - rootNode.appendChild(areaXML) + rootNode.append(areaXML) if "\n" in i.end: fieldXMLBr = docObj.createField("br", [], "", [], False, False) - rootNode.appendChild(fieldXMLBr) + rootNode.append(fieldXMLBr) else: fields = self.splitToFields(i) @@ -278,17 +278,17 @@ class bind(objShare): fieldXML = self.createFieldTerm(field.name, field.value, field.br, docObj) - rootNode.appendChild(fieldXML) + rootNode.append(fieldXML) if field.br[-1] == "\n": fieldXMLBr = docObj.createField("br", [], "", [], False, False) - rootNode.appendChild(fieldXMLBr) + rootNode.append(fieldXMLBr) elif field.comment is not False: fieldXML = docObj.createField("comment", [field.comment], "", [], False, False) - rootNode.appendChild(fieldXML) + rootNode.append(fieldXML) elif field.br is not False: brText = field.br.replace("\n", "") if brText: @@ -298,8 +298,8 @@ class bind(objShare): else: fieldXML = docObj.createField('br', [], "", [], False, False) - rootNode.appendChild(fieldXML) - # rootNode.appendChild(areaXML) + rootNode.append(fieldXML) + # rootNode.append(areaXML) def textToXML(self): """Преобразуем текст в XML""" diff --git a/pym/calculate/lib/format/dovecot.py b/pym/calculate/lib/format/dovecot.py index cf84327..9767cac 100644 --- a/pym/calculate/lib/format/dovecot.py +++ b/pym/calculate/lib/format/dovecot.py @@ -46,7 +46,7 @@ class dovecot(bind): if xmlFields and not ( self.docObj.getTypeField(xmlFields[-1]) == "br" or self.docObj.getTypeField(xmlFields[-1]) == "comment"): - xmlArea.appendChild(self.docObj.createField("br", + xmlArea.append(self.docObj.createField("br", [], "", [], False, False)) xmlAreas = xpath.Evaluate("child::area", xmlArea) diff --git a/pym/calculate/lib/format/generic.py b/pym/calculate/lib/format/generic.py index 7cbe385..2fd5dfa 100644 --- a/pym/calculate/lib/format/generic.py +++ b/pym/calculate/lib/format/generic.py @@ -48,7 +48,7 @@ class objShare(TemplateFormat): if name[0] == "!": fieldAction = "drop" elif name[0] == "+": - fieldXML.setAttribute("type", "seplist") + fieldXML.set("type", "seplist") fieldAction = "join" else: fieldXML = docObj.createField("var", @@ -83,13 +83,13 @@ class objShare(TemplateFormat): def getConfig(self, joinChar=""): """Выдает конфигурационный файл""" listConfigTxt = [] - childNodes = self.docObj.getNodeBody().childNodes + childNodes = self.docObj.getNodeBody().getchildren() for node in childNodes: - if node.nodeType == node.ELEMENT_NODE: - if node.tagName == "field": - listConfigTxt.append(self.docObj.getQuoteField(node)) - elif node.tagName == "area": - self.docObj.xmlToText([node], listConfigTxt) + # if node.nodeType == node.ELEMENT_NODE: + if node.tag == "field": + listConfigTxt.append(self.docObj.getQuoteField(node)) + elif node.tag == "area": + self.docObj.xmlToText([node], listConfigTxt) return "%s\n" % joinChar.join(listConfigTxt).rstrip("\n ") def splitToFields(self, txtBloc): @@ -112,7 +112,6 @@ class objShare(TemplateFormat): z = 0 lenLines = len(linesBlocTmp) for i in linesBlocTmp: - if self.reComment.split(i)[0]: findCooment = self.reComment.search(i) comment = False diff --git a/pym/calculate/lib/format/kde.py b/pym/calculate/lib/format/kde.py index 8debbe2..6cef4ee 100644 --- a/pym/calculate/lib/format/kde.py +++ b/pym/calculate/lib/format/kde.py @@ -132,11 +132,11 @@ class kde(samba): area = docObj.createArea() if areaAction: docObj.setActionArea(area, areaAction) - rootNode.appendChild(area) + rootNode.append(area) else: fieldsNodes = docObj.tmpFields.getFields() for fieldNode in fieldsNodes: - rootNode.appendChild(fieldNode) + rootNode.append(fieldNode) docObj.clearTmpFields() z += 1 return docObj diff --git a/pym/calculate/lib/format/ldap.py b/pym/calculate/lib/format/ldap.py index 1434774..a5faf54 100644 --- a/pym/calculate/lib/format/ldap.py +++ b/pym/calculate/lib/format/ldap.py @@ -161,7 +161,7 @@ class ldap(samba): docObj.setActionField(xmlField, "drop") elif f.name[0] == "+": # Добавляем уникальное поле - xmlField.setAttribute("type", "seplist") + xmlField.set("type", "seplist") docObj.setActionField(xmlField, "join") else: docObj.createField("var", [f.br.replace("\n", "")], @@ -175,11 +175,11 @@ class ldap(samba): area = docObj.createArea() if areaAction: docObj.setActionArea(area, areaAction) - rootNode.appendChild(area) + rootNode.append(area) else: fieldsNodes = docObj.tmpFields.getFields() for fieldNode in fieldsNodes: - rootNode.appendChild(fieldNode) + rootNode.append(fieldNode) docObj.clearTmpFields() z += 1 return docObj diff --git a/pym/calculate/lib/format/patch.py b/pym/calculate/lib/format/patch.py index 066fbde..350df8a 100644 --- a/pym/calculate/lib/format/patch.py +++ b/pym/calculate/lib/format/patch.py @@ -16,9 +16,10 @@ import sys import re -import xml.dom.minidom +# import xml.dom.minidom +from lxml import etree from calculate.lib.cl_template import TemplateFormat - +from calculate.lib.cl_xml import firstChild from calculate.lib.cl_lang import setLocalTranslate _ = lambda x: x @@ -38,7 +39,7 @@ class patch(TemplateFormat): # Создаем XML документ self.doc = self.textToXML() if self.doc: - self.rootNode = self.doc.documentElement + self.rootNode = self.doc.getroottree() self.reFlags = 0 def textToXML(self): @@ -50,7 +51,8 @@ class patch(TemplateFormat): text = ('\n%s' % self.text) try: - self.doc = xml.dom.minidom.parseString(text) + # self.doc = xml.dom.minidom.parseString(text) + self.doc = etree.XML(bytes(bytearray(text, encoding='utf-8'))) except Exception: return False return self.doc @@ -63,7 +65,7 @@ class patch(TemplateFormat): def processingFile(self, textConfigFile, rootPath=None, nameFile=None): """Обработка конфигурационного файла""" - if not self.doc: + if self.doc is None: self.setError(_("Failed to convert the text template to XML")) return False retTextConfigFile = textConfigFile @@ -71,54 +73,54 @@ class patch(TemplateFormat): dataList = [] tagsIndex = 0 regex = False - for node in self.rootNode.childNodes: - if node.nodeType == node.ELEMENT_NODE: - if not node.tagName == tags[tagsIndex]: - self.setError(_("Incorrect template text")) - return False - if tagsIndex == 1: - tagsIndex = 0 - else: - tagsIndex += 1 - # регулярное выражение - if node.tagName == "reg": - if node.firstChild: - reText = node.firstChild.nodeValue - if reText is None: - textNode = node.toxml().encode("UTF8") - self.setError( - _("Incorrect template text") + ": \n" + - "%s" % textNode) - return False - else: - self.setError( - _("Incorrect text of template ''")) - return False - if not reText.strip(): + for node in self.rootNode.getchildren(): + # if node.nodeType == node.ELEMENT_NODE: + if not node.tag == tags[tagsIndex]: + self.setError(_("Incorrect template text")) + return False + if tagsIndex == 1: + tagsIndex = 0 + else: + tagsIndex += 1 + # регулярное выражение + if node.tag == "reg": + if firstChild(node) is not None: + reText = firstChild(node).text + if reText is None: + textNode = node.toxml() self.setError( - _("Incorrect text of template '%s'") - % reText.encode("UTF8")) + _("Incorrect template text") + ": \n" + + "%s" % textNode) return False - try: - regex = re.compile(reText, self.reFlags) - except re.error: + else: + self.setError( + _("Incorrect text of template ''")) + return False + if not reText.strip(): + self.setError( + _("Incorrect text of template '%s'") + % reText) + return False + try: + regex = re.compile(reText, self.reFlags) + except re.error: + self.setError( + _("Incorrect text of template '%s'") + % reText) + return False + elif node.tag == "text" and regex: + if firstChild(node) is not None: + text = firstChild(node).text + if text is None: + textNode = node.toxml() self.setError( - _("Incorrect text of template '%s'").decode('utf-8') - % reText.encode("UTF8")) + _("Incorrect template text") + ": \n" + + "%s" % textNode) return False - elif node.tagName == "text" and regex: - if node.firstChild: - text = node.firstChild.nodeValue - if text is None: - textNode = node.toxml().encode("UTF8") - self.setError( - _("Incorrect template text") + ": \n" + - "%s" % textNode) - return False - else: - text = "" - dataList.append((regex, text.encode('utf-8'))) - regex = False + else: + text = "" + dataList.append((regex, text)) + regex = False for regex, text in dataList: # Замены в тексте конфигурационного файла retTextConfigFile = regex.sub(text, retTextConfigFile) diff --git a/pym/calculate/lib/format/plasma.py b/pym/calculate/lib/format/plasma.py index e30682c..3ed9bdf 100644 --- a/pym/calculate/lib/format/plasma.py +++ b/pym/calculate/lib/format/plasma.py @@ -17,7 +17,8 @@ import re import types import copy -from calculate.lib.cl_xml import xpath, xmlDoc +from calculate.lib.cl_xml import xpath, xmlDoc, firstChild +from copy import deepcopy from calculate.lib.cl_template import blocText from calculate.lib.format.samba import samba @@ -86,26 +87,25 @@ class xmlDocPlasma(xmlDoc): fieldsRemove = xpath.Evaluate( "descendant::field[child::action='drop']", xmlNewArea) for rmNode in fieldsRemove: - parentNode = rmNode.parentNode - parentNode.removeChild(rmNode) + parentNode = rmNode.getparent() + parentNode.remove(rmNode) captionAreasRemove = xpath.Evaluate( "descendant::area/child::caption[child::action='drop']", xmlNewArea) for rmNodeCapt in captionAreasRemove: - rmNode = rmNodeCapt.parentNode - parentNode = rmNode.parentNode - parentNode.removeChild(rmNode) + rmNode = rmNodeCapt.getparent() + parentNode = rmNode.getparent() + parentNode.remove(rmNode) self.setActionArea(xmlNewArea, "append") # Добавляем разделитель областей во вложенные области areaNodes = xpath.Evaluate('descendant::area', xmlNewArea) for areaNode in areaNodes: self.setActionArea(areaNode, "append") - parentNode = areaNode.parentNode - parentNode.insertBefore(self.sepAreas.cloneNode(True), - areaNode) - baseNode.appendChild(xmlNewArea) + parentNode = areaNode.getparent() + parentNode.insertBefore(deepcopy(self.sepAreas), areaNode) + baseNode.append(xmlNewArea) # Добавляем разделитель областей - baseNode.insertBefore(self.sepAreas.cloneNode(True), xmlNewArea) + baseNode.insertBefore(deepcopy(self.sepAreas), xmlNewArea) nodesNames = xpath.Evaluate('child::area/caption/name', baseNode) nodesNewArea = xpath.Evaluate('child::caption/name', xmlNewArea) @@ -119,55 +119,54 @@ class xmlDocPlasma(xmlDoc): if not nodesNames or not nodesNewArea: return False nameArea = "" - if nodesNewArea[0].firstChild: - nameArea = nodesNewArea[0].firstChild.nodeValue.strip() + if firstChild(nodesNewArea[0]) is not None: + nameArea = firstChild(nodesNewArea).text.strip() flagFindArea = False baseNodes = [] newAreaAction = None for oName in nodesNames: newAreaAction = self.getActionArea(xmlNewArea) - oArea = oName.parentNode.parentNode + oArea = oName.getparent().getparent() oNameTxt = "" - if oName.firstChild: - oNameTxt = oName.firstChild.nodeValue + if firstChild(oName) is not None: + oNameTxt = firstChild(oName).text if nameArea == oNameTxt: flagFindArea = True # При использовании удаления if newAreaAction == "drop": - prevNode = oName.parentNode.parentNode.previousSibling + prevNode = oName.getparent().getparent().getprevious() removePrevNodes = [] while prevNode and self.getTypeField(prevNode) == "br": removePrevNodes.append(prevNode) - prevNode = prevNode.previousSibling + prevNode = prevNode.getprevious() for removeNode in removePrevNodes: - baseNode.removeChild(removeNode) - baseNode.removeChild(oName.parentNode.parentNode) + baseNode.remove(removeNode) + baseNode.remove(oName.getparent().getparent()) continue elif newAreaAction == "replace": - oldAreaNode = oName.parentNode.parentNode + oldAreaNode = oName.getparent().getparent() newAreaCaption = xpath.Evaluate('child::caption', xmlNewArea)[0] oldAreaCaption = xpath.Evaluate('child::caption', oldAreaNode)[0] if newAreaCaption and oldAreaCaption: - xmlNewArea.replaceChild(oldAreaCaption, newAreaCaption) + xmlNewArea.replace(newAreaCaption, oldAreaCaption) self.setActionArea(xmlNewArea, "replace") - baseNode.replaceChild(xmlNewArea, - oldAreaNode) + baseNode.replace(oldAreaNode, xmlNewArea) continue - baseNodes.append(oName.parentNode.parentNode) + baseNodes.append(oName.getparent().getparent()) # Заменяем QUOTE - oldAreaNode = oName.parentNode.parentNode + oldAreaNode = oName.getparent().getparent() oldAreaQuote = xpath.Evaluate('child::caption/quote', oldAreaNode)[0] - if oldAreaQuote and not oldAreaQuote.firstChild: + if oldAreaQuote and firstChild(oldAreaQuote) is None: newAreaQuote = xpath.Evaluate('child::caption/quote', xmlNewArea)[0] oldAreaCaption = xpath.Evaluate('child::caption', oldAreaNode)[0] - if newAreaQuote and oldAreaCaption: - oldAreaCaption.replaceChild(newAreaQuote, oldAreaQuote) + if newAreaQuote is not None and oldAreaCaption is not None: + oldAreaCaption.replace(oldAreaQuote, newAreaQuote) newFields = xpath.Evaluate('child::field', xmlNewArea) @@ -400,14 +399,14 @@ class plasma(samba): self.createXML(f.fields, areaXMLChild, docObj) - areaXML.appendChild(areaXMLChild) + areaXML.append(areaXMLChild) else: self.createXML(f.fields, areaXML, docObj) if "\n" in f.end: fieldXMLBr = docObj.createField("br", [], "", [], False, False) - areaXML.appendChild(fieldXMLBr) + areaXML.append(fieldXMLBr) else: if not f: continue @@ -416,16 +415,16 @@ class plasma(samba): if field.name is not False: fieldXML = self.createFieldTerm( field.name, field.value, field.br, docObj) - areaXML.appendChild(fieldXML) + areaXML.append(fieldXML) if field.br[-1] == "\n": fieldXMLBr = docObj.createField( "br", [], "", [], False, False) - areaXML.appendChild(fieldXMLBr) + areaXML.append(fieldXMLBr) elif field.comment is not False: fieldXML = docObj.createField( "comment", [field.comment], "", [], False, False) - areaXML.appendChild(fieldXML) + areaXML.append(fieldXML) elif field.br is not False: brText = field.br.replace("\n", "") if brText: @@ -434,16 +433,16 @@ class plasma(samba): else: fieldXML = docObj.createField( 'br', [], "", [], False, False) - if areaXML and hasattr(areaXML, "appendChild"): - areaXML.appendChild(fieldXML) + if areaXML and hasattr(areaXML, "append"): + areaXML.append(fieldXML) if i.header: - rootNode.appendChild(areaXML) + rootNode.append(areaXML) if "\n" in i.end: fieldXMLBr = docObj.createField("br", [], "", [], False, False) - rootNode.appendChild(fieldXMLBr) + rootNode.append(fieldXMLBr) else: if not i: @@ -454,15 +453,15 @@ class plasma(samba): fieldXML = self.createFieldTerm(field.name, field.value, field.br, docObj) - rootNode.appendChild(fieldXML) + rootNode.append(fieldXML) if field.br[-1] == "\n": fieldXMLBr = docObj.createField("br", [], "", [], False, False) - rootNode.appendChild(fieldXMLBr) + rootNode.append(fieldXMLBr) elif field.comment is not False: fieldXML = docObj.createField( "comment", [field.comment], "", [], False, False) - rootNode.appendChild(fieldXML) + rootNode.append(fieldXML) elif field.br is not False: brText = field.br.replace("\n", "") if brText: @@ -471,8 +470,8 @@ class plasma(samba): else: fieldXML = docObj.createField( 'br', [], "", [], False, False) - rootNode.appendChild(fieldXML) - # rootNode.appendChild(areaXML) + rootNode.append(fieldXML) + # rootNode.append(areaXML) def createTxtConfig(self, strHeader, dictVar): """Cоздает область с заголовком @@ -516,8 +515,8 @@ class plasma(samba): quotes = [] xmlQuotes = xpath.Evaluate('child::caption/quote', xmlArea) for node in xmlQuotes: - if node.firstChild: - quotes.append(node.firstChild.nodeValue) + if firstChild(node): + quotes.append(firstChild(node).text) if len(quotes) == 0: quotes.append("") quotes.append("") @@ -529,27 +528,27 @@ class plasma(samba): for xmlArea in xmlAreas: # Перед пустой областью и после нее удаляем переводы строк if getQuotesArea(xmlArea) == ["", ""]: - if (xmlArea.previousSibling and + if (xmlArea.getprevious() and self.docObj.getTypeField( - xmlArea.previousSibling) == "br"): - parentNode = xmlArea.previousSibling.parentNode - prev_prev_sbl = xmlArea.previousSibling.previousSibling + xmlArea.getprevious()) == "br"): + parentNode = xmlArea.getprevious().getparent() + prev_prev_sbl = xmlArea.getprevious().getprevious() if (prev_prev_sbl and self.docObj.getTypeField( prev_prev_sbl) == "br"): - parentNode.removeChild( - xmlArea.previousSibling.previousSibling) - parentNode.removeChild(xmlArea.previousSibling) - if (xmlArea.nextSibling and + parentNode.remove( + xmlArea.getprevious().getprevious()) + parentNode.remove(xmlArea.getprevious()) + if (xmlArea.getnext() and self.docObj.getTypeField( - xmlArea.nextSibling) == "br"): - parentNode = xmlArea.nextSibling.parentNode - next_next_sbl = xmlArea.nextSibling.nextSibling + xmlArea.getnext()) == "br"): + parentNode = xmlArea.getnext().getparent() + next_next_sbl = xmlArea.getnext().getnext() if (next_next_sbl and self.docObj.getTypeField( next_next_sbl) == "br"): - parentNode.removeChild(xmlArea.nextSibling.nextSibling) - parentNode.removeChild(xmlArea.nextSibling) + parentNode.remove(xmlArea.getnext().getnext()) + parentNode.remove(xmlArea.getnext()) continue # Собираем поля в кучку @@ -558,23 +557,23 @@ class plasma(samba): childNodes = self.docObj.getFieldsArea(xmlArea) firstChildArea = xmlChildAreas[0] - if (firstChildArea.previousSibling and + if (firstChildArea.getprevious() and self.docObj.getTypeField( - firstChildArea.previousSibling) == "br"): + firstChildArea.getprevious()) == "br"): prev_prev_sbl = ( - firstChildArea.previousSibling.previousSibling) + firstChildArea.getprevious().getprevious()) if prev_prev_sbl: if self.docObj.getTypeField(prev_prev_sbl) == "br": - firstChildArea = firstChildArea.previousSibling + firstChildArea = firstChildArea.getprevious() flagFoundArea = False it = 0 lenChild = len(childNodes) for node in childNodes: it += 1 - if node.tagName == "area": + if node.tag == "area": flagFoundArea = True continue - if flagFoundArea and node.tagName == "field": + if flagFoundArea and node.tag == "field": if self.docObj.getTypeField(node) == "var": xmlArea.insertBefore(node, firstChildArea) if it < lenChild: @@ -585,9 +584,9 @@ class plasma(samba): firstChildArea) # Добавление перевода строк в если его нет между полями if (self.docObj.getTypeField(node) == "var" and - node.previousSibling and + node.getprevious() and not (self.docObj.getTypeField( - node.previousSibling) in ("br", "comment"))): + node.getprevious()) in ("br", "comment"))): xmlArea.insertBefore(self.docObj.createField( "br", [], "", [], False, False), node) @@ -607,9 +606,9 @@ class plasma(samba): for node in xmlFields: # Добавление перевода строк в если его нет между полями if (self.docObj.getTypeField(node) == "var" and - node.previousSibling and + node.getprevious() and not (self.docObj.getTypeField( - node.previousSibling) in ("br", "comment"))): + node.getprevious()) in ("br", "comment"))): xmlArea.insertBefore(self.docObj.createField("br", [], "", [], False, @@ -617,36 +616,36 @@ class plasma(samba): node) # Если последним полем BR, удаляем его if xmlFields and self.docObj.getTypeField(xmlFields[-1]) == "br": - if not xmlFields[-1].nextSibling: - xmlArea.removeChild(xmlFields[-1]) + if not xmlFields[-1].getnext(): + xmlArea.remove(xmlFields[-1]) # Если предыдущим полем не (BR или комментарий) - добавляем BR - if (xmlArea.previousSibling and + if (xmlArea.getprevious() and not (self.docObj.getTypeField( - xmlArea.previousSibling) == "br" or + xmlArea.getprevious()) == "br" or self.docObj.getTypeField( - xmlArea.previousSibling) == "comment")): - parentNode = xmlArea.parentNode + xmlArea.getprevious()) == "comment")): + parentNode = xmlArea.getparent() parentNode.insertBefore(self.docObj.createField( "br", [], "", [], False, False), xmlArea) # Если есть предыдущее поле, и поле предыдущеее предыдущему # не равно BR или комментарий то добавляем BR - if xmlArea.previousSibling: - prPrSibling = xmlArea.previousSibling.previousSibling + if xmlArea.getprevious(): + prPrSibling = xmlArea.getprevious().getprevious() if (prPrSibling and not (self.docObj.getTypeField( prPrSibling) == "br" or self.docObj.getTypeField( prPrSibling) == "comment")): - parentNode = xmlArea.parentNode + parentNode = xmlArea.getparent() parentNode.insertBefore(self.docObj.createField( "br", [], "", [], False, False), xmlArea) # Если после есть BR а за ним ничего нет, удаляем BR - if (xmlArea.nextSibling and - self.docObj.getTypeField(xmlArea.nextSibling) == "br"): - if not xmlArea.nextSibling.nextSibling: - parentNode = xmlArea.nextSibling.parentNode - parentNode.removeChild(xmlArea.nextSibling) + if (xmlArea.getnext() and + self.docObj.getTypeField(xmlArea.getnext()) == "br"): + if not xmlArea.getnext().getnext(): + parentNode = xmlArea.getnext().getparent() + parentNode.remove(xmlArea.getnext()) def join(self, kdeObj): """Объединяем конфигурации""" diff --git a/pym/calculate/lib/format/procmail.py b/pym/calculate/lib/format/procmail.py index 1fdaf32..0c6906f 100644 --- a/pym/calculate/lib/format/procmail.py +++ b/pym/calculate/lib/format/procmail.py @@ -44,8 +44,8 @@ class procmail(objShare): for node in xmlFields: # Добавление перевода строк в если его нет между полями if (self.docObj.getTypeField(node) == "var" and - node.previousSibling and - (self.docObj.getTypeField(node.previousSibling) not in + node.getprevious() is not None and + (self.docObj.getTypeField(node.getprevious()) not in ("br", "comment"))): self.docObj.body.insertBefore(self.docObj.createField( "br", [], "", [], False, False), node) @@ -99,15 +99,15 @@ class procmail(objShare): fieldXML = self.createFieldTerm(field.name, field.value, field.br, docObj) - nodeBody.appendChild(fieldXML) + nodeBody.append(fieldXML) if field.br[-1] == "\n": fieldXMLBr = docObj.createField( "br", [], "", [], False, False) - nodeBody.appendChild(fieldXMLBr) + nodeBody.append(fieldXMLBr) elif field.comment is not False: fieldXML = docObj.createField( "comment", [field.comment], "", [], False, False) - nodeBody.appendChild(fieldXML) + nodeBody.append(fieldXML) elif field.br is not False: brText = field.br.replace("\n", "") if brText: @@ -116,7 +116,7 @@ class procmail(objShare): else: fieldXML = docObj.createField( 'br', [], "", [], False, False) - nodeBody.appendChild(fieldXML) + nodeBody.append(fieldXML) return docObj def join(self, procmailObj): diff --git a/pym/calculate/lib/format/samba.py b/pym/calculate/lib/format/samba.py index 4f4f1a4..5ee4e0e 100644 --- a/pym/calculate/lib/format/samba.py +++ b/pym/calculate/lib/format/samba.py @@ -53,8 +53,8 @@ class samba(objShare): if not xmlFields: removeList.append(xmlArea) for xmlArea in removeList: - parentNode = xmlArea.parentNode - parentNode.removeChild(xmlArea) + parentNode = xmlArea.getparent() + parentNode.remove(xmlArea) # Для добавления перевода строки между областями если его нет xmlAreas = xpath.Evaluate("child::area", self.docObj.body) @@ -64,9 +64,9 @@ class samba(objShare): if not (xmlFields and ( self.docObj.getTypeField(xmlFields[-1]) == "br" or self.docObj.getTypeField(xmlFields[-1]) == "comment")): - if xmlArea.nextSibling: - parentNode = xmlArea.parentNode - nextNode = xmlArea.nextSibling + if xmlArea.getnext() is not None: + parentNode = xmlArea.getparent() + nextNode = xmlArea.getnext() parentNode.insertBefore(self.docObj.createField( "br", [], "", [], False, False), nextNode) # Добавление переводов строк между полями @@ -74,9 +74,9 @@ class samba(objShare): for node in xmlFields: # Добавление перевода строк в если его нет между полями if (self.docObj.getTypeField(node) == "var" and - node.previousSibling and + node.getprevious() is not None and not (self.docObj.getTypeField( - node.previousSibling) in ("br", "comment"))): + node.getprevious()) in ("br", "comment"))): xmlArea.insertBefore(self.docObj.createField( "br", [], "", [], False, False), node) @@ -85,7 +85,7 @@ class samba(objShare): lenBr = 0 removeBrNodes = [] for node in childNodes: - if (node.tagName == "field" and + if (node.tag == "field" and self.docObj.getTypeField(node) == "br"): lenBr += 1 if lenBr > 2: @@ -94,15 +94,15 @@ class samba(objShare): lenBr = 0 # Удаление for rmNode in removeBrNodes: - self.docObj.body.removeChild(rmNode) + self.docObj.body.remove(rmNode) # Если после есть BR а за ним ничего нет, удаляем BR - if xmlArea: - if (xmlArea.nextSibling and - self.docObj.getTypeField(xmlArea.nextSibling) == "br"): - if not xmlArea.nextSibling.nextSibling: - parentNode = xmlArea.nextSibling.parentNode - parentNode.removeChild(xmlArea.nextSibling) + if xmlArea is not None: + if (xmlArea.getnext() is not None and + self.docObj.getTypeField(xmlArea.getnext()) == "br"): + if not xmlArea.getnext().getnext(): + parentNode = xmlArea.getnext().getparent() + parentNode.remove(xmlArea.getnext()) def join(self, sambaObj): """Объединяем конфигурации""" @@ -289,11 +289,11 @@ class samba(objShare): area = docObj.createArea() if areaAction: docObj.setActionArea(area, areaAction) - rootNode.appendChild(area) + rootNode.append(area) else: fieldsNodes = docObj.tmpFields.getFields() for fieldNode in fieldsNodes: - rootNode.appendChild(fieldNode) + rootNode.append(fieldNode) docObj.clearTmpFields() z += 1 return docObj diff --git a/pym/calculate/lib/format/xml_gconf.py b/pym/calculate/lib/format/xml_gconf.py index 39b1e8d..f73f801 100644 --- a/pym/calculate/lib/format/xml_gconf.py +++ b/pym/calculate/lib/format/xml_gconf.py @@ -18,10 +18,12 @@ import sys import time import re from calculate.lib.cl_xml import xpath -import xml.dom.minidom +# import xml.dom.minidom +from lxml import etree from calculate.lib.format.xml_xfce import xml_xfce from calculate.lib.cl_lang import setLocalTranslate from collections import Iterable +from copy import deepcopy _ = lambda x: x setLocalTranslate('cl_lib3', sys.modules[__name__]) @@ -71,21 +73,23 @@ class xml_gconf(xml_xfce): if not self.text.strip(): self.text = '''''' try: - self.doc = xml.dom.minidom.parseString(self.text) + # self.doc = xml.dom.minidom.parseString(self.text) + self.doc = etree.XML(bytes(bytearray(self.text, encoding='utf-8'))) except Exception: self.setError(_("The template content is not XML")) return False - self.rootNode = self.doc.documentElement - self.bodyNode = self.rootNode + self.rootNode = self.doc.getroottree() + self.bodyNode = self.rootNode #? a mistake, maybe? return self.doc def cmpListsNodesEntry(self, listXmlA, listXmlB): """Сравнение содержимого двух списков XML нод""" def getTextsNodes(listXml): - for node in (x.cloneNode(True) - for x in listXml if x.nodeType == x.ELEMENT_NODE): - if node.hasAttribute("mtime"): - node.removeAttribute("mtime") + for node in (deepcopy(x) + for x in listXml):# if x.nodeType == x.ELEMENT_NODE): + if "mtime" in node.keys(): + # node.removeAttribute("mtime") + del node.attrib["mtime"] text = node.toxml() yield text.replace(" ", "").replace("\t", "").replace("\n", "") if set(getTextsNodes(listXmlA)) == set(getTextsNodes(listXmlB)): @@ -97,166 +101,161 @@ class xml_gconf(xml_xfce): if levelNumber > 1: return True xmlNode = xmlNewNode - childNodes = xmlNode.childNodes + childNodes = xmlNode.getchildren() nextOldNode = xmlOldNode - if xmlNode.nodeType == xmlNode.ELEMENT_NODE: - n = xmlNode - tagName = n.tagName - nAction = u'' - nType = u'' - nValue = u'' - nSchema = u'' - attrName = '' - if flagRootNode: - if not tagName == "gconf": - self.setError(_("The text is not a valid gconf-XML format \ + # if xmlNode.nodeType == xmlNode.ELEMENT_NODE: + n = xmlNode + tagName = n.tag + nAction = u'' + nType = u'' + nValue = u'' + nSchema = u'' + attrName = '' + if flagRootNode: + if not tagName == "gconf": + self.setError(_("The text is not a valid gconf-XML format \ (not found '...')")) - return False - flagType = False - flagValue = False - flagSchema = False - else: - if not tagName == "entry": - self.setError(_("The text is not a valid gconf-XML format \ + return False + flagType = False + flagValue = False + flagSchema = False + else: + if not tagName == "entry": + self.setError(_("The text is not a valid gconf-XML format \ (found '<%(tag)s>..')") % {'tag': tagName}) + return False + if "name" not in n.keys(): + self.setError( + _("Attribute \"name\" not found in the tag entry")) + return False + flagType = "type" in n.keys() + flagValue = False + flagSchema = "schema" in n.keys() + if flagSchema: + nSchema = n.get("schema") + if not flagType and not flagSchema: + self.setError( + _("Attribute \"type\" not found in the tag entry")) + return False + nName = n.get("name") + attrName = u"attribute::name='%s'" % nName + if flagType: + flagValue = "value" in n.keys() + nType = n.get("type") + # Проверка правильности аттрибута type + if nType not in self.supportEntryTypes: + self.setError(_("Incorrect \"type\" attribute " + ": ") % nType) return False - if not n.hasAttribute("name"): - self.setError( - _("Attribute \"name\" not found in the tag entry")) - return False - flagType = n.hasAttribute("type") - flagValue = False - flagSchema = n.hasAttribute("schema") - if flagSchema: - nSchema = n.getAttribute("schema") - if not flagType and not flagSchema: - self.setError( - _("Attribute \"type\" not found in the tag entry")) + if flagValue: + nValue = n.get("value") + if "action" in n.keys(): + nAction = n.get("action") + if nAction not in ("join", "replace", "drop"): + textError = _("In the text of the XML template, " + "reserved attribute 'action' comes with an " + "incorrect value.\n" + "Valid values of the 'action' attribute are: " + '(action="join", action="replace",' + 'action="drop")') + self.setError(textError) + return False + if xmlOldNode.getparent(): + findAttrStr = "" + if attrName: + findAttrStr = "[%s]" % attrName + findPath = u"child::%s%s" % (tagName, findAttrStr) + # Рабочая нода + if flagRootNode: + workNode = xmlOldNode.getparent() + else: + workNode = xmlOldNode + oldNodes = xpath.Evaluate(findPath, workNode) + # По умолчанию - объединение + flagJoin = True + flagReplace = False + flagDrop = False + # Замещаем ноду + if nType == "string" or nAction == "replace": + flagJoin = False + flagReplace = True + # Замещаем ноду в случае массива + elif nType == "list" or nType == "pair": + flagJoin = False + flagReplace = True + # Удаляем ноду + elif nAction == "drop": + flagJoin = False + flagDrop = True + if flagRootNode: + textError = _('Incorrect action="drop" in ' + 'the root node') + self.setError(textError) return False - nName = n.getAttribute("name") - attrName = u"attribute::name='%s'" % nName - if flagType: - flagValue = n.hasAttribute("value") - nType = n.getAttribute("type") - # Проверка правильности аттрибута type - if nType not in self.supportEntryTypes: - self.setError(_("Incorrect \"type\" attribute " - ": ") % nType) - return False - if flagValue: - nValue = n.getAttribute("value") - if n.hasAttribute("action"): - nAction = n.getAttribute("action") - if nAction not in ("join", "replace", "drop"): - textError = _("In the text of the XML template, " - "reserved attribute 'action' comes with an " - "incorrect value.\n" - "Valid values of the 'action' attribute are: " - '(action="join", action="replace",' - 'action="drop")') + if oldNodes: + if len(oldNodes) > 1: + textError = _("Ambiguity in this template: the same " + "nodes are on a same level") self.setError(textError) return False - if xmlOldNode.parentNode: - findAttrStr = "" - if attrName: - findAttrStr = "[%s]" % attrName - findPath = u"child::%s%s" % (tagName, findAttrStr) - # Рабочая нода - if flagRootNode: - workNode = xmlOldNode.parentNode - else: - workNode = xmlOldNode - oldNodes = xpath.Evaluate(findPath, workNode) - # По умолчанию - объединение - flagJoin = True - flagReplace = False - flagDrop = False - # Замещаем ноду - if nType == "string" or nAction == "replace": - flagJoin = False - flagReplace = True - # Замещаем ноду в случае массива - elif nType == "list" or nType == "pair": - flagJoin = False - flagReplace = True - # Удаляем ноду - elif nAction == "drop": - flagJoin = False - flagDrop = True - if flagRootNode: - textError = _('Incorrect action="drop" in ' - 'the root node') - self.setError(textError) - return False - if oldNodes: - if len(oldNodes) > 1: - textError = _("Ambiguity in this template: the same " - "nodes are on a same level") - self.setError(textError) - return False - nextOldNode = oldNodes[0] - # Объединение нод - if flagJoin: - if flagType and flagValue: - flagChange = False - foundValue = nextOldNode.hasAttribute("value") - if foundValue: - oValue = nextOldNode.getAttribute("value") - if nValue != oValue: - flagChange = True - else: + nextOldNode = oldNodes[0] + # Объединение нод + if flagJoin: + if flagType and flagValue: + flagChange = False + if "value" in nextOldNode.keys(): + oValue = nextOldNode.get("value") + if nValue != oValue: flagChange = True - if flagChange: - nextOldNode.setAttribute("mtime", - self.currentTime) - nextOldNode.setAttribute("value", nValue) - elif flagSchema: - flagChange = False - foundValue = nextOldNode.hasAttribute("schema") - if foundValue: - oSchema = nextOldNode.getAttribute("schema") - if nSchema != oSchema: - flagChange = True - else: + else: + flagChange = True + if flagChange: + nextOldNode.set("mtime", self.currentTime) + nextOldNode.set("value", nValue) + elif flagSchema: + flagChange = False + if "schema" in nextOldNode.keys(): + oSchema = nextOldNode.get("schema") + if nSchema != oSchema: flagChange = True - if flagChange: - nextOldNode.setAttribute("mtime", - self.currentTime) - nextOldNode.setAttribute("schema", nSchema) - # Замещение ноды - elif flagReplace: - replaceXmlNode = xmlNode.cloneNode(True) - # Сравнение содержимого нод - if not self.cmpListsNodesEntry([replaceXmlNode], - [nextOldNode]): - replaceXmlNode.setAttribute("mtime", - self.currentTime) - if not self._removeDropNodesAndAttrAction( - replaceXmlNode): - return False - workNode.replaceChild(replaceXmlNode, - nextOldNode) - childNodes = False - # Удаление ноды - elif flagDrop: - workNode.removeChild(nextOldNode) - childNodes = False - else: - # Добавление ноды - childNodes = False - if not flagDrop: - appendXmlNode = xmlNode.cloneNode(True) - appendXmlNode.setAttribute("mtime", self.currentTime) + else: + flagChange = True + if flagChange: + nextOldNode.set("mtime", self.currentTime) + nextOldNode.set("schema", nSchema) + # Замещение ноды + elif flagReplace: + replaceXmlNode = deepcopy(xmlNode) + # Сравнение содержимого нод + if not self.cmpListsNodesEntry([replaceXmlNode], + [nextOldNode]): + replaceXmlNode.set("mtime", + self.currentTime) if not self._removeDropNodesAndAttrAction( - appendXmlNode): + replaceXmlNode): return False - workNode.appendChild(appendXmlNode) - if isinstance(childNodes, Iterable): - for node in childNodes: - levelNumber += 1 - if not self._join(node, nextOldNode, False, levelNumber): + workNode.replace(nextOldNode, replaceXmlNode) + childNodes = False + # Удаление ноды + elif flagDrop: + workNode.remove(nextOldNode) + childNodes = False + else: + # Добавление ноды + childNodes = False + if not flagDrop: + appendXmlNode = deepcopy(xmlNode) + appendXmlNode.set("mtime", self.currentTime) + if not self._removeDropNodesAndAttrAction( + appendXmlNode): return False - levelNumber -= 1 + workNode.append(appendXmlNode) + if isinstance(childNodes, Iterable): + for node in childNodes: + levelNumber += 1 + if not self._join(node, nextOldNode, False, levelNumber): + return False + levelNumber -= 1 return True def join(self, xml_gconfObj): @@ -283,7 +282,7 @@ class xml_gconf(xml_xfce): else: return s - data = self.doc.toprettyxml().split("\n") + data = self.doc.toxml().split("\n") data = map(lambda x: expandStartTabs(x), filter(lambda x: x.strip(), data)) dataOut = [] diff --git a/pym/calculate/lib/format/xml_gconf_tree.py b/pym/calculate/lib/format/xml_gconf_tree.py index 4353882..a4ffecc 100644 --- a/pym/calculate/lib/format/xml_gconf_tree.py +++ b/pym/calculate/lib/format/xml_gconf_tree.py @@ -19,6 +19,7 @@ from calculate.lib.cl_xml import xpath from calculate.lib.format.xml_gconf import xml_gconf from calculate.lib.cl_lang import setLocalTranslate from collections import Iterable +from copy import deepcopy _ = lambda x: x setLocalTranslate('cl_lib3', sys.modules[__name__]) @@ -30,11 +31,11 @@ class xml_gconf_tree(xml_gconf): def _join(self, xmlNewNode, xmlOldNode, flagRootNode=True, **kw): """Объединение корневой ноды шаблона и корневой ноды файла""" xmlNode = xmlNewNode - childNodes = xmlNode.childNodes + childNodes = xmlNode.getchildren() nextOldNode = xmlOldNode if xmlNode.nodeType == xmlNode.ELEMENT_NODE: n = xmlNode - tagName = n.tagName + tagName = n.tag tagNameStr = tagName.encode("UTF-8") nAction = u'' attrName = '' @@ -48,15 +49,15 @@ class xml_gconf_tree(xml_gconf): self.setError(_("The text is not a valid gconf-XML format \ (found '<%(tag)s>..')") % {'tag': tagNameStr}) return False - if not n.hasAttribute("name"): + if "name" not in n.keys(): self.setError( _('Not found attribute "name" in %(tag)s') % {'tag': tagNameStr}) return False - nName = n.getAttribute("name") + nName = n.get("name") attrName = u"attribute::name='%s'" % nName - if n.hasAttribute("action"): - nAction = n.getAttribute("action") + if "action" in n.keys(): + nAction = n.get("action") if nAction not in ("join", "replace", "drop"): textError = _("In the text of the XML template, " "reserved attribute 'action' comes with an " @@ -66,14 +67,14 @@ class xml_gconf_tree(xml_gconf): 'action="drop")') self.setError(textError) return False - if xmlOldNode.parentNode: + if xmlOldNode.getparent() is not None: findAttrStr = "" if attrName: findAttrStr = "[%s]" % attrName findPath = u"child::%s%s" % (tagName, findAttrStr) # Рабочая нода if flagRootNode: - workNode = xmlOldNode.parentNode + workNode = xmlOldNode.getparent() else: workNode = xmlOldNode oldNodes = xpath.Evaluate(findPath, workNode) @@ -102,25 +103,23 @@ class xml_gconf_tree(xml_gconf): nextOldNode = oldNodes[0] # Объединение аттрибутов нод if flagJoin: - listOldAttributes = nextOldNode.attributes.items() + listOldAttributes = nextOldNode.attrib.items() if listOldAttributes: listOldAttributes = filter( lambda x: x[0] != "mtime", listOldAttributes) # Замена содержимого - if xmlNode.tagName == "entry": - replaceXmlNode = xmlNode.cloneNode(True) + if xmlNode.tag == "entry": + replaceXmlNode = deepcopy(xmlNode) # Сравнение содержимого нод if not self.cmpListsNodesEntry([replaceXmlNode], [nextOldNode]): - replaceXmlNode.setAttribute("mtime", - self.currentTime) + replaceXmlNode.set("mtime", self.currentTime) if not self._removeDropNodesAndAttrAction( replaceXmlNode): return False - workNode.replaceChild(replaceXmlNode, - nextOldNode) + workNode.replace(nextOldNode, replaceXmlNode) childNodes = False - listNewAttributes = xmlNode.attributes.items() + listNewAttributes = xmlNode.attrib.items() if listNewAttributes: listNewAttributes = filter( lambda x: x[0] not in ("action", "mtime"), @@ -128,41 +127,40 @@ class xml_gconf_tree(xml_gconf): if set(listNewAttributes) != set(listOldAttributes): # Объединение аттрибутов for attrName, attrValue in listNewAttributes: - nextOldNode.setAttribute(attrName, attrValue) - if nextOldNode.tagName == "entry": - nextOldNode.setAttribute("mtime", + nextOldNode.set(attrName, attrValue) + if nextOldNode.tag == "entry": + nextOldNode.set("mtime", self.currentTime) # Замещение ноды elif flagReplace: - replaceXmlNode = xmlNode.cloneNode(True) + replaceXmlNode = deepcopy(xmlNode) # Сравнение содержимого нод if not self.cmpListsNodesEntry([replaceXmlNode], [nextOldNode]): - if replaceXmlNode.tagName == "entry": - replaceXmlNode.setAttribute("mtime", + if replaceXmlNode.tag == "entry": + replaceXmlNode.set("mtime", self.currentTime) if not self._removeDropNodesAndAttrAction( replaceXmlNode): return False - workNode.replaceChild(replaceXmlNode, - nextOldNode) + workNode.replace(nextOldNode, replaceXmlNode) childNodes = False # Удаление ноды elif flagDrop: - workNode.removeChild(nextOldNode) + workNode.remove(nextOldNode) childNodes = False else: # Добавление ноды childNodes = False if not flagDrop: - appendXmlNode = xmlNode.cloneNode(True) - if appendXmlNode.tagName == "entry": - appendXmlNode.setAttribute("mtime", + appendXmlNode = deepcopy(xmlNode) + if appendXmlNode.tag == "entry": + appendXmlNode.set("mtime", self.currentTime) if not self._removeDropNodesAndAttrAction( appendXmlNode): return False - workNode.appendChild(appendXmlNode) + workNode.append(appendXmlNode) if isinstance(childNodes, Iterable): for node in childNodes: if not self._join(node, nextOldNode, False): diff --git a/pym/calculate/lib/format/xml_xfce.py b/pym/calculate/lib/format/xml_xfce.py index faedea6..9138417 100644 --- a/pym/calculate/lib/format/xml_xfce.py +++ b/pym/calculate/lib/format/xml_xfce.py @@ -16,11 +16,12 @@ import sys from calculate.lib.cl_xml import xpath -import xml.dom.minidom +# import xml.dom.minidom +from lxml import etree from calculate.lib.cl_template import TemplateFormat from calculate.lib.cl_lang import setLocalTranslate from collections import Iterable - +from copy import deepcopy _ = lambda x: x setLocalTranslate('cl_lib3', sys.modules[__name__]) @@ -58,7 +59,7 @@ class xml_xfce(TemplateFormat): """Устанавливает название для корневой ноды документа""" if not self.bodyNode: return False - self.bodyNode.setAttribute("name", name) + self.bodyNode.set("name", name) return True def textToXML(self): @@ -70,11 +71,12 @@ class xml_xfce(TemplateFormat): ''' try: - self.doc = xml.dom.minidom.parseString(self.text) + # self.doc = xml.dom.minidom.parseString(self.text) + self.doc = etree.XML(bytes(bytearray(self.text, encoding='utf-8'))) except Exception: self.setError(_("The template content is not XML")) return False - self.rootNode = self.doc.documentElement + self.rootNode = self.doc self.bodyNode = self.rootNode return self.doc @@ -93,28 +95,28 @@ class xml_xfce(TemplateFormat): Также удаляет аттрибут action у всех нод """ - childNodes = xmlNode.childNodes - if xmlNode.nodeType == xmlNode.ELEMENT_NODE: - if xmlNode.hasAttribute("action"): - nAction = xmlNode.getAttribute("action") - if nAction not in ("join", "replace", "drop"): - textError = _("In the text of the XML template, " - "reserved attribute 'action' comes with an " - "incorrect value.\n" - "Valid values of the 'action' attribute are: " - '(action="join", action="replace",' - 'action="drop")') - self.setError(textError) + childNodes = xmlNode.getchildren() + # if xmlNode.nodeType == xmlNode.ELEMENT_NODE: + if "action" in xmlNode.keys(): + nAction = xmlNode.get("action") + if nAction not in ("join", "replace", "drop"): + textError = _("In the text of the XML template, " + "reserved attribute 'action' comes with an " + "incorrect value.\n" + "Valid values of the 'action' attribute are: " + '(action="join", action="replace",' + 'action="drop")') + self.setError(textError) + return False + xmlNode.removeAttribute("action") + if nAction == "drop": + parentNode = xmlNode.getparent() + if parentNode: + parentNode.remove(xmlNode) + if childNodes: + for node in childNodes: + if not self._removeDropNodesAndAttrAction(node): return False - xmlNode.removeAttribute("action") - if nAction == "drop": - parentNode = xmlNode.parentNode - if parentNode: - parentNode.removeChild(xmlNode) - if childNodes: - for node in childNodes: - if not self._removeDropNodesAndAttrAction(node): - return False return True def postXML(self): @@ -125,114 +127,112 @@ class xml_xfce(TemplateFormat): def _join(self, xmlNewNode, xmlOldNode, flagRootNode=True): """Объединение корневой ноды шаблона и корневой ноды файла""" xmlNode = xmlNewNode - childNodes = xmlNode.childNodes + childNodes = xmlNode.getchildren() nextOldNode = xmlOldNode - if xmlNode.nodeType == xmlNode.ELEMENT_NODE: - n = xmlNode - nType = u'' - nValue = u'' - nAction = u'' - attrName = '' - attrType = '' - path = n.tagName - if n.hasAttribute("name"): - nName = n.getAttribute("name") - attrName = u"attribute::name='%s'" % nName - if n.hasAttribute("type"): - nType = n.getAttribute("type") - attrType = u"attribute::type='%s'" % nType - if n.hasAttribute("value"): - nValue = n.getAttribute("value") - if n.hasAttribute("action"): - nAction = n.getAttribute("action") - if not nAction in ("join", "replace", "drop"): - textError = _( - "In the text of the XML template, " - "reserved attribute 'action' comes with an " - "incorrect value.\n" - "Valid values of the 'action' attribute are: " - '(action="join", action="replace", action="drop")') + # if xmlNode.nodeType == xmlNode.ELEMENT_NODE: + n = xmlNode + nType = u'' + nValue = u'' + nAction = u'' + attrName = '' + attrType = '' + path = n.tag + if "name" in n.keys(): + nName = n.get("name") + attrName = u"attribute::name='%s'" % nName + if "type" in n.keys(): + nType = n.get("type") + attrType = u"attribute::type='%s'" % nType + if "value" in n.keys(): + nValue = n.get("value") + if "action" in n.keys(): + nAction = n.get("action") + if not nAction in ("join", "replace", "drop"): + textError = _( + "In the text of the XML template, " + "reserved attribute 'action' comes with an " + "incorrect value.\n" + "Valid values of the 'action' attribute are: " + '(action="join", action="replace", action="drop")') + self.setError(textError) + return False + if xmlOldNode.getparent(): + strAttr = [attrName, attrType] + findAttr = filter(lambda x: x, strAttr) + findAttrStr = '' + if findAttr: + strAttr = u' and '.join(findAttr) + findAttrStr = "[%s]" % strAttr + findPath = u"child::%s%s" % (path, findAttrStr) + # Рабочая нода + if flagRootNode: + workNode = xmlOldNode.getparent() + else: + workNode = xmlOldNode + oldNodes = xpath.Evaluate(findPath, workNode) + # Новая нода список + flagArray = nType == "array" + flagDrop = False + flagJoin = True + flagReplace = False + if nAction == "replace": + flagJoin = False + flagReplace = True + elif nAction == "drop": + flagJoin = False + flagDrop = True + if flagRootNode: + textError = _('Incorrect action="drop" in ' + 'the root node') self.setError(textError) return False - if xmlOldNode.parentNode: - strAttr = [attrName, attrType] - findAttr = filter(lambda x: x, strAttr) - findAttrStr = '' - if findAttr: - strAttr = u' and '.join(findAttr) - findAttrStr = "[%s]" % strAttr - findPath = u"child::%s%s" % (path, findAttrStr) - # Рабочая нода - if flagRootNode: - workNode = xmlOldNode.parentNode - else: - workNode = xmlOldNode - oldNodes = xpath.Evaluate(findPath, workNode) - # Новая нода список - flagArray = nType == "array" - flagDrop = False - flagJoin = True - flagReplace = False - if nAction == "replace": - flagJoin = False - flagReplace = True - elif nAction == "drop": + if oldNodes: + if len(oldNodes) > 1: + textError = _("Ambiguity in this template: " + "the same nodes are on a same level") + self.setError(textError) + return False + nextOldNode = oldNodes[0] + # Замещаем ноду в случае массива + if flagArray and not flagDrop: + replaceXmlNode = deepcopy(xmlNode) + if nAction: + del replaceXmlNode.attrib["action"] + workNode.replace(nextOldNode, replaceXmlNode) flagJoin = False - flagDrop = True - if flagRootNode: - textError = _('Incorrect action="drop" in ' - 'the root node') - self.setError(textError) - return False - if oldNodes: - if len(oldNodes) > 1: - textError = _("Ambiguity in this template: " - "the same nodes are on a same level") - self.setError(textError) + flagReplace = False + childNodes = False + # Объединение нод + if flagJoin: + if "value" in nextOldNode.keys(): + oValue = nextOldNode.getAttribute("value") + if nValue != oValue: + nextOldNode.setAttribute("value", nValue) + # Замещение ноды + elif flagReplace: + replaceXmlNode = deepcopy(xmlNode) + if not self._removeDropNodesAndAttrAction( + replaceXmlNode): return False - nextOldNode = oldNodes[0] - # Замещаем ноду в случае массива - if flagArray and not flagDrop: - replaceXmlNode = xmlNode.cloneNode(True) - if nAction: - replaceXmlNode.removeAttribute("action") - workNode.replaceChild(replaceXmlNode, - nextOldNode) - flagJoin = False - flagReplace = False - childNodes = False - # Объединение нод - if flagJoin: - if nextOldNode.hasAttribute("value"): - oValue = nextOldNode.getAttribute("value") - if nValue != oValue: - nextOldNode.setAttribute("value", nValue) - # Замещение ноды - elif flagReplace: - replaceXmlNode = xmlNode.cloneNode(True) - if not self._removeDropNodesAndAttrAction( - replaceXmlNode): - return False - workNode.replaceChild(replaceXmlNode, - nextOldNode) - childNodes = False - # Удаление ноды - elif flagDrop: - workNode.removeChild(nextOldNode) - childNodes = False - else: - # Добавление ноды + workNode.replace(nextOldNode, replaceXmlNode) + childNodes = False + # Удаление ноды + elif flagDrop: + workNode.remove(nextOldNode) childNodes = False - if not flagDrop: - appendXmlNode = xmlNode.cloneNode(True) - if not self._removeDropNodesAndAttrAction( - appendXmlNode): - return False - workNode.appendChild(appendXmlNode) - if isinstance(childNodes, Iterable): - for node in childNodes: - if not self._join(node, nextOldNode, False): + else: + # Добавление ноды + childNodes = False + if not flagDrop: + appendXmlNode = deepcopy(xmlNode) + if not self._removeDropNodesAndAttrAction( + appendXmlNode): return False + workNode.append(appendXmlNode) + if isinstance(childNodes, Iterable): + for node in childNodes: + if not self._join(node, nextOldNode, False): + return False return True def joinDoc(self, doc): @@ -246,7 +246,7 @@ class xml_xfce(TemplateFormat): # Импортируем корневую ноду нового документа в текущий документ # newImportBodyNode = self.doc.importNode(doc.documentElement, True) # Объединение корневой ноды шаблона и корневой ноды файла - if not self._join(doc.documentElement, self.bodyNode): + if not self._join(doc, self.bodyNode): return False return True diff --git a/pym/calculate/lib/format/xml_xfcepanel.py b/pym/calculate/lib/format/xml_xfcepanel.py index b3fdeab..403d40b 100644 --- a/pym/calculate/lib/format/xml_xfcepanel.py +++ b/pym/calculate/lib/format/xml_xfcepanel.py @@ -16,10 +16,11 @@ import sys from calculate.lib.cl_xml import xpath -import xml.dom.minidom +# import xml.dom.minidom +from lxml import etree from calculate.lib.format.xml_xfce import xml_xfce from collections import Iterable - +from copy import deepcopy from calculate.lib.cl_lang import setLocalTranslate _ = lambda x: x @@ -43,11 +44,12 @@ class xml_xfcepanel(xml_xfce): ''' try: - self.doc = xml.dom.minidom.parseString(self.text) + # self.doc = xml.dom.minidom.parseString(self.text) + self.doc = etree.XML(bytes(bytearray(self.text, encoding='utf-8'))) except Exception: self.setError(_("The template content is not XML")) return False - self.rootNode = self.doc.documentElement + self.rootNode = self.doc.getroottree() self.bodyNode = self.rootNode return self.doc @@ -58,132 +60,130 @@ class xml_xfcepanel(xml_xfce): def _join(self, xmlNewNode, xmlOldNode, flagRootNode=True, levelNumber=0): """Объединение корневой ноды шаблона и корневой ноды файла""" xmlNode = xmlNewNode - childNodes = xmlNode.childNodes + childNodes = xmlNode.getchildren() nextOldNode = xmlOldNode - if xmlNode.nodeType == xmlNode.ELEMENT_NODE: - n = xmlNode - flagArray = False - nValue = u'' - nAction = u'' - attrName = '' - path = n.tagName - if path == "items": - flagArray = True - if not flagArray: - if n.hasAttribute("name"): - nName = n.getAttribute("name") - attrName = u"attribute::name='%s'" % nName - if n.hasAttribute("value"): - nValue = n.getAttribute("value") - if n.hasAttribute("action"): - nAction = n.getAttribute("action") - if not nAction in ("join", "replace", "drop"): - textError = _("In the text of the XML template, " - "reserved attribute 'action' comes with an " - "incorrect value.\n" - "Valid values of the 'action' attribute are: " - '(action="join", action="replace", ' - 'action="drop")') + # if xmlNode.nodeType == xmlNode.ELEMENT_NODE: + n = xmlNode + flagArray = False + nValue = u'' + nAction = u'' + attrName = '' + path = n.tag + if path == "items": + flagArray = True + if not flagArray: + if "name" in n.keys(): + nName = n.get("name") + attrName = u"attribute::name='%s'" % nName + if "value" in n.keys(): + nValue = n.get("value") + if "action" in n.keys(): + nAction = n.get("action") + if not nAction in ("join", "replace", "drop"): + textError = _("In the text of the XML template, " + "reserved attribute 'action' comes with an " + "incorrect value.\n" + "Valid values of the 'action' attribute are: " + '(action="join", action="replace", ' + 'action="drop")') + self.setError(textError) + return False + if xmlOldNode.getparent() is not None: + findAttrStr = "" + if attrName: + findAttrStr = "[%s]" % attrName + findPath = u"child::%s%s" % (path, findAttrStr) + # Рабочая нода + if flagRootNode: + workNode = xmlOldNode.getparent() + else: + workNode = xmlOldNode + oldNodes = xpath.Evaluate(findPath, workNode) + flagDrop = False + flagJoin = True + flagReplace = False + flagAppend = False + if nAction == "replace": + flagJoin = False + flagReplace = True + elif nAction == "drop": + flagJoin = False + flagDrop = True + if flagRootNode: + textError = _('Incorrect action="drop" ' + 'in the root node') self.setError(textError) return False - if xmlOldNode.parentNode: - findAttrStr = "" - if attrName: - findAttrStr = "[%s]" % attrName - findPath = u"child::%s%s" % (path, findAttrStr) - # Рабочая нода - if flagRootNode: - workNode = xmlOldNode.parentNode + if path == "panel": + flagJoin = False + if levelNumber in self.panelNumbers.keys(): + self.panelNumbers[levelNumber] += 1 else: - workNode = xmlOldNode - oldNodes = xpath.Evaluate(findPath, workNode) - flagDrop = False - flagJoin = True - flagReplace = False - flagAppend = False - if nAction == "replace": - flagJoin = False - flagReplace = True - elif nAction == "drop": - flagJoin = False - flagDrop = True - if flagRootNode: - textError = _('Incorrect action="drop" ' - 'in the root node') - self.setError(textError) - return False + self.panelNumbers[levelNumber] = 0 + if oldNodes: + if len(oldNodes) > 1 and path != "panel": + textError = _("Ambiguity in this template: the " + "same nodes are on a same level") + self.setError(textError) + return False if path == "panel": - flagJoin = False - if levelNumber in self.panelNumbers.keys(): - self.panelNumbers[levelNumber] += 1 - else: - self.panelNumbers[levelNumber] = 0 - if oldNodes: - if len(oldNodes) > 1 and path != "panel": - textError = _("Ambiguity in this template: the " - "same nodes are on a same level") - self.setError(textError) - return False - if path == "panel": - if len(oldNodes) <= self.panelNumbers[levelNumber]: - nextOldNode = oldNodes[-1] - # Добавляем ноду - if not flagDrop: - flagAppend = True - flagReplace = False - childNodes = False - else: - nextOldNode = oldNodes[ - self.panelNumbers[levelNumber]] + if len(oldNodes) <= self.panelNumbers[levelNumber]: + nextOldNode = oldNodes[-1] + # Добавляем ноду + if not flagDrop: + flagAppend = True + flagReplace = False + childNodes = False else: - nextOldNode = oldNodes[0] - # Замещаем ноду в случае массива - if flagArray and not flagDrop: - replaceXmlNode = xmlNode.cloneNode(True) - if nAction: - replaceXmlNode.removeAttribute("action") - workNode.replaceChild(replaceXmlNode, - nextOldNode) - flagJoin = False - flagReplace = False - childNodes = False - # Объединение нод - if flagJoin: - if nextOldNode.hasAttribute("value"): - oValue = nextOldNode.getAttribute("value") - if nValue != oValue: - nextOldNode.setAttribute("value", nValue) - # Замещение ноды - elif flagReplace: - replaceXmlNode = xmlNode.cloneNode(True) - if not self._removeDropNodesAndAttrAction( - replaceXmlNode): - return False - workNode.replaceChild(replaceXmlNode, - nextOldNode) - childNodes = False - # Удаление ноды - elif flagDrop: - workNode.removeChild(nextOldNode) - childNodes = False + nextOldNode = oldNodes[ + self.panelNumbers[levelNumber]] else: - flagAppend = True - flagDrop = False - if flagAppend and not flagDrop: - # Добавление ноды + nextOldNode = oldNodes[0] + # Замещаем ноду в случае массива + if flagArray and not flagDrop: + replaceXmlNode = deepcopy(xmlNode) + if nAction: + del replaceXmlNode.attrib["action"] + workNode.replace(nextOldNode, replaceXmlNode) + flagJoin = False + flagReplace = False childNodes = False - if not flagDrop: - appendXmlNode = xmlNode.cloneNode(True) - if not self._removeDropNodesAndAttrAction( - appendXmlNode): - return False - workNode.appendChild(appendXmlNode) - if isinstance(childNodes, Iterable): - for node in childNodes: - levelNumber += 1 - if not self._join(node, nextOldNode, False, levelNumber): + # Объединение нод + if flagJoin: + if "value" in nextOldNode.keys(): + oValue = nextOldNode.get("value") + if nValue != oValue: + nextOldNode.set("value", nValue) + # Замещение ноды + elif flagReplace: + replaceXmlNode = deepcopy(xmlNode) + if not self._removeDropNodesAndAttrAction( + replaceXmlNode): return False - levelNumber -= 1 + workNode.replace(nextOldNode, replaceXmlNode) + childNodes = False + # Удаление ноды + elif flagDrop: + workNode.remove(nextOldNode) + childNodes = False + else: + flagAppend = True + flagDrop = False + if flagAppend and not flagDrop: + # Добавление ноды + childNodes = False + if not flagDrop: + appendXmlNode = deepcopy(xmlNode) + if not self._removeDropNodesAndAttrAction( + appendXmlNode): + return False + workNode.append(appendXmlNode) + if isinstance(childNodes, Iterable): + for node in childNodes: + levelNumber += 1 + if not self._join(node, nextOldNode, False, levelNumber): + return False + levelNumber -= 1 return True def join(self, xml_xfceObj):