diff --git a/setup.py b/setup.py index 39173e0..b13453a 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ 'PyYAML >= 3.11', 'pycrypto >= 2.6.1', 'xmlsec >= 0.3.1', - 'suds-jurko >= 0.7.dev0', + 'suds-jurko >= 0.6', 'requests >= 2.8.1' # Additionally requires LaTex if you pretend to use printing. diff --git a/src/sii/__init__.py b/src/sii/__init__.py index d407605..19d8910 100644 --- a/src/sii/__init__.py +++ b/src/sii/__init__.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- try: __import__('pkg_resources').declare_namespace(__name__) except ImportError: diff --git a/src/sii/lib/__init__.py b/src/sii/lib/__init__.py index 331d9c3..305e691 100644 --- a/src/sii/lib/__init__.py +++ b/src/sii/lib/__init__.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ CNS Common Library for SII stuff. """ diff --git a/src/sii/lib/exchange.py b/src/sii/lib/exchange.py index be07e7e..3eaff6c 100644 --- a/src/sii/lib/exchange.py +++ b/src/sii/lib/exchange.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Document Exchange Tooling TODO missing parametrizability diff --git a/src/sii/lib/helpers.py b/src/sii/lib/helpers.py index 07954ea..d4c0d62 100644 --- a/src/sii/lib/helpers.py +++ b/src/sii/lib/helpers.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Common Local Utilities. """ import re diff --git a/src/sii/lib/lib/fileio.py b/src/sii/lib/lib/fileio.py index f48b9a9..785cbe1 100644 --- a/src/sii/lib/lib/fileio.py +++ b/src/sii/lib/lib/fileio.py @@ -1,4 +1,5 @@ -""" Input/Output Functions. +""" +Input/Output Functions. """ import os import shutil @@ -39,14 +40,16 @@ def read_create(path, templ_path, encoding=None): try: shutil.copyfile(templ_path, path) - except FileNotFoundError as exc: - raise FileNotFoundError( - "Read/Create could not find or read template file at {0}".format(templ_path) - ) from exc + except IOError as exc: + raise IOError( + "Read/Create could not find or read template file at {0}".format( + templ_path) + ) with open(path, 'r', encoding=encoding) as fh: return fh.read() + def write(buff, path, encoding=None): """ Normal write to file after path user expansion. diff --git a/src/sii/lib/lib/output.py b/src/sii/lib/lib/output.py index 8861d1a..09e0b40 100644 --- a/src/sii/lib/lib/output.py +++ b/src/sii/lib/lib/output.py @@ -1,6 +1,14 @@ """ Common Output and Printing Utilities """ -from itertools import zip_longest +from __future__ import print_function + +import itertools +import sys + +if sys.version_info < (3, 0): + zip_longest = itertools.izip_longest +else: + zip_longest = itertools.izip_longest __all__ = [ 'print_tabular', diff --git a/src/sii/lib/lib/xml.py b/src/sii/lib/lib/xml.py index 137d6e1..9c2ea0c 100644 --- a/src/sii/lib/lib/xml.py +++ b/src/sii/lib/lib/xml.py @@ -70,12 +70,12 @@ def __setattr__(self, name, value): # private methods if name.startswith('_'): - super().__setattr__(attrname, value) + super(XML, self).__setattr__(attrname, value) return # children to append if isinstance(value, XML): - super().__setattr__(attrname, value) + super(XML, self).__setattr__(attrname, value) self._node.append(value._node) return @@ -85,7 +85,7 @@ def __setattr__(self, name, value): node._node.text = str(value) except AttributeError: node = XML(name=name, text=value) - super().__setattr__(attrname, node) + super(XML, self).__setattr__(attrname, node) self._node.append(node._node) def __getitem__(self, key): @@ -223,7 +223,7 @@ def dump_xml(xml_node, **kwargs): return buff -def print_xml(xml, file=sys.stdout.buffer, end='\n', encoding='UTF-8'): +def print_xml(xml, file=sys.stdout, end='\n', encoding='UTF-8'): if isinstance(xml, XML): xml = dump_etree(xml) diff --git a/src/sii/lib/printing/Document.py b/src/sii/lib/printing/Document.py index 8af813c..9113318 100644 --- a/src/sii/lib/printing/Document.py +++ b/src/sii/lib/printing/Document.py @@ -1,4 +1,6 @@ -""" Containing Document Structure +# -*- coding: utf-8 -*- +""" +Containing Document Structure """ from sii.lib.lib import xml diff --git a/src/sii/lib/printing/SectionBarcode.py b/src/sii/lib/printing/SectionBarcode.py index ba3f6a9..25c5bf3 100644 --- a/src/sii/lib/printing/SectionBarcode.py +++ b/src/sii/lib/printing/SectionBarcode.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Barcode Section of the Document Contains: diff --git a/src/sii/lib/printing/SectionDisclaimer.py b/src/sii/lib/printing/SectionDisclaimer.py index 0c27bcc..75a2faf 100644 --- a/src/sii/lib/printing/SectionDisclaimer.py +++ b/src/sii/lib/printing/SectionDisclaimer.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Disclaimer Section of the Document (you might want to subclass this one) Contains: diff --git a/src/sii/lib/printing/SectionEmitter.py b/src/sii/lib/printing/SectionEmitter.py index edb2150..cd18c71 100644 --- a/src/sii/lib/printing/SectionEmitter.py +++ b/src/sii/lib/printing/SectionEmitter.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Emitter Section of the Document Contains: diff --git a/src/sii/lib/printing/SectionItems.py b/src/sii/lib/printing/SectionItems.py index cf409f8..235d65b 100644 --- a/src/sii/lib/printing/SectionItems.py +++ b/src/sii/lib/printing/SectionItems.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Items Section of the Document Contains: @@ -72,7 +73,7 @@ def __init__(self, column_layout, table_margins=False, draft=False, provider=Fal '%s', '%s', '%s', '%s', '%s' ) - def append_row(self, row: tuple): + def append_row(self, row): """ Expecting the column tuple to be in the expected order the column layout was set up at init time. """ diff --git a/src/sii/lib/printing/SectionPayments.py b/src/sii/lib/printing/SectionPayments.py index ec0a980..8bd9b9b 100644 --- a/src/sii/lib/printing/SectionPayments.py +++ b/src/sii/lib/printing/SectionPayments.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Payments Section of the Document Contains: diff --git a/src/sii/lib/printing/SectionPreamble.py b/src/sii/lib/printing/SectionPreamble.py index 86e38ec..5cda55a 100644 --- a/src/sii/lib/printing/SectionPreamble.py +++ b/src/sii/lib/printing/SectionPreamble.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ LaTeX document configuration preamble """ import sys diff --git a/src/sii/lib/printing/SectionReceiver.py b/src/sii/lib/printing/SectionReceiver.py index 4aac30e..9c9dd49 100644 --- a/src/sii/lib/printing/SectionReceiver.py +++ b/src/sii/lib/printing/SectionReceiver.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Receiver Section in the Document Contains: diff --git a/src/sii/lib/printing/SectionReferences.py b/src/sii/lib/printing/SectionReferences.py index 091bbce..1d9ca61 100644 --- a/src/sii/lib/printing/SectionReferences.py +++ b/src/sii/lib/printing/SectionReferences.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ References Section of the Document Contains: diff --git a/src/sii/lib/printing/SectionSignature.py b/src/sii/lib/printing/SectionSignature.py index ee88cfc..66241cc 100644 --- a/src/sii/lib/printing/SectionSignature.py +++ b/src/sii/lib/printing/SectionSignature.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Signature Section of the Document Contains: diff --git a/src/sii/lib/printing/SectionSiiPatch.py b/src/sii/lib/printing/SectionSiiPatch.py index c7cbd35..2322099 100644 --- a/src/sii/lib/printing/SectionSiiPatch.py +++ b/src/sii/lib/printing/SectionSiiPatch.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII Document Patch. Contains: diff --git a/src/sii/lib/printing/SectionTotals.py b/src/sii/lib/printing/SectionTotals.py index 1c29179..914bba1 100644 --- a/src/sii/lib/printing/SectionTotals.py +++ b/src/sii/lib/printing/SectionTotals.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Totals Section of the Document Contains: diff --git a/src/sii/lib/printing/TemplateElement.py b/src/sii/lib/printing/TemplateElement.py index 4f56bd3..02b33db 100644 --- a/src/sii/lib/printing/TemplateElement.py +++ b/src/sii/lib/printing/TemplateElement.py @@ -25,19 +25,19 @@ def resources(self): return [] @property - def carta(self) -> str: + def carta(self): """ Create TeX Template for printable medium: "US Letter" """ raise NotImplementedError @property - def oficio(self) -> str: + def oficio(self): """ Create TeX Template for printable medium: "American Foolscap" """ raise NotImplementedError @property - def thermal80mm(self) -> str: + def thermal80mm(self): """ Create TeX Template for printable medium: "Thermal endless 80mm width" """ raise NotImplementedError diff --git a/src/sii/lib/printing/__init__.py b/src/sii/lib/printing/__init__.py index ace2af7..242618f 100644 --- a/src/sii/lib/printing/__init__.py +++ b/src/sii/lib/printing/__init__.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII Document Templating and Printing Submodule. """ from .Document import Document diff --git a/src/sii/lib/printing/barcode/Barcode.py b/src/sii/lib/printing/barcode/Barcode.py index 25d1659..f1284c3 100644 --- a/src/sii/lib/printing/barcode/Barcode.py +++ b/src/sii/lib/printing/barcode/Barcode.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Barcode Creation (PDF417) """ import os diff --git a/src/sii/lib/printing/barcode/PDF417.py b/src/sii/lib/printing/barcode/PDF417.py index bf5f0f0..e98ee8d 100644 --- a/src/sii/lib/printing/barcode/PDF417.py +++ b/src/sii/lib/printing/barcode/PDF417.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ PDF417 Barcode Generator. """ import os diff --git a/src/sii/lib/printing/barcode/__init__.py b/src/sii/lib/printing/barcode/__init__.py index dc96099..bff5b7c 100644 --- a/src/sii/lib/printing/barcode/__init__.py +++ b/src/sii/lib/printing/barcode/__init__.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Barcode Generation for the SII Document Printing Submodule. """ from .PDF417 import PDF417 diff --git a/src/sii/lib/printing/helpers.py b/src/sii/lib/printing/helpers.py index 3743e5a..40a14c6 100644 --- a/src/sii/lib/printing/helpers.py +++ b/src/sii/lib/printing/helpers.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Printing specific helpers. """ import re diff --git a/src/sii/lib/printing/printing.py b/src/sii/lib/printing/printing.py index 105b67d..5bd3918 100644 --- a/src/sii/lib/printing/printing.py +++ b/src/sii/lib/printing/printing.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII Document Printable Template Generation and Printing """ import re diff --git a/src/sii/lib/ptcl/Seed.py b/src/sii/lib/ptcl/Seed.py index 68e4704..292ee70 100644 --- a/src/sii/lib/ptcl/Seed.py +++ b/src/sii/lib/ptcl/Seed.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII WebService Authentication Seed. """ import re diff --git a/src/sii/lib/ptcl/Token.py b/src/sii/lib/ptcl/Token.py index 0faa5e4..a462927 100644 --- a/src/sii/lib/ptcl/Token.py +++ b/src/sii/lib/ptcl/Token.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII WebService Authentication Token. """ import re @@ -47,7 +48,7 @@ def __init__(self, seed, key_path, cert_path, sii_host="https://palena.sii.cl/DT self._token_etree = self._prepare_token_xml(self._token_xml) self._token_values = self._parse_token_xml(self._token_etree) - def _build_token_request_xml(self, seed: str) -> str: + def _build_token_request_xml(self, seed): """ diff --git a/src/sii/lib/ptcl/__init__.py b/src/sii/lib/ptcl/__init__.py index 4f7f822..6d80a21 100644 --- a/src/sii/lib/ptcl/__init__.py +++ b/src/sii/lib/ptcl/__init__.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII Protocol Objects. """ from .Seed import Seed diff --git a/src/sii/lib/ptcl/helpers.py b/src/sii/lib/ptcl/helpers.py index 491cfde..f0397e9 100644 --- a/src/sii/lib/ptcl/helpers.py +++ b/src/sii/lib/ptcl/helpers.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Protocol Helpers. """ import time diff --git a/src/sii/lib/schemas.py b/src/sii/lib/schemas.py index ef75896..047a95d 100644 --- a/src/sii/lib/schemas.py +++ b/src/sii/lib/schemas.py @@ -1,7 +1,10 @@ +# -*- coding: utf-8 -*- """ Schema Providers. """ from datetime import datetime +import sys + from . import lib from . import types @@ -53,7 +56,7 @@ def resolve_schema(xml): try: path = SCHEMA_FILES[root.tag] except KeyError as exc: - raise KeyError("Could not find schema for root tag '{0}'".format(root.tag)) from exc + raise KeyError("Error: {}\nCould not find schema for root tag '{0}'".format(exc, root.tag)) else: return path diff --git a/src/sii/lib/signature.py b/src/sii/lib/signature.py index 390d97b..3de0568 100644 --- a/src/sii/lib/signature.py +++ b/src/sii/lib/signature.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII Document Signing Process Functions """ import xmlsec diff --git a/src/sii/lib/stamping.py b/src/sii/lib/stamping.py index abb7d7e..6ad5f56 100644 --- a/src/sii/lib/stamping.py +++ b/src/sii/lib/stamping.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Creation and management of SII Digital Stamp Utilities """ import re diff --git a/src/sii/lib/upload.py b/src/sii/lib/upload.py index 1b24fc8..b23b3c5 100644 --- a/src/sii/lib/upload.py +++ b/src/sii/lib/upload.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII Documents Upload Utilities """ import requests diff --git a/src/sii/lib/validation.py b/src/sii/lib/validation.py index 980152a..0b14e2a 100644 --- a/src/sii/lib/validation.py +++ b/src/sii/lib/validation.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ SII Document Signature Verification Process Functions """ from io import BytesIO