From 1152699c05513b76b50d46102f91dd90a4f17d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Tue, 7 Apr 2020 19:38:41 -0400 Subject: [PATCH 01/10] requirements: update dependencies of some packages i.e. dependencies' dependencies. --- requirements/base.txt | 10 +++++----- requirements/release.txt | 11 +++++++---- requirements/test.txt | 8 ++++++-- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 231da77b..37a1e64b 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -35,13 +35,13 @@ signxml==2.6.0 # - six asn1crypto==1.3.0 attrs==19.3.0 -certifi==2019.11.28 -cffi==1.13.2 +certifi==2020.4.5.1 +cffi==1.14.0 eight==0.4.2 future==0.16.0 importlib-metadata==0.23 -pycparser==2.19 -pyrsistent==0.15.7 +pycparser==2.20 +pyrsistent==0.16.0 # setuptools six==1.14.0 -zipp==2.1.0 +zipp==3.1.0 diff --git a/requirements/release.txt b/requirements/release.txt index 9a0d0dbe..2acf1abd 100644 --- a/requirements/release.txt +++ b/requirements/release.txt @@ -21,9 +21,11 @@ wheel==0.34.2 # - pkginfo # - readme-renderer: # - bleach +# - six # - webencodings # - docutils # - Pygments +# - six # - requests: # - certifi # - chardet @@ -40,14 +42,15 @@ wheel==0.34.2 # idna importlib-metadata==0.23 # jeepney -keyring==21.1.0 +keyring==21.2.0 pkginfo==1.5.0.1 # Pygments -readme-renderer==24.0 -requests==2.22.0 +readme-renderer==25.0 +requests==2.23.0 requests-toolbelt==0.9.1 # SecretStorage -tqdm==4.42.0 +# six +tqdm==4.45.0 # urllib3 # webencodings # zipp diff --git a/requirements/test.txt b/requirements/test.txt index b26df23b..33f70de2 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -35,15 +35,19 @@ tox==3.13.1 # - py # - toml # - virtualenv +# - appdirs +# - distlib +# appdirs # certifi # chardet +# distlib entrypoints==0.3 filelock==3.0.12 # idna importlib-metadata==0.23 mccabe==0.6.1 mypy-extensions==0.4.3 -packaging==20.1 +packaging==20.3 pluggy==0.13.1 py==1.8.1 pycodestyle==2.5.0 @@ -53,5 +57,5 @@ pyflakes==2.1.1 toml==0.10.0 typed-ast==1.4.1 # urllib3 -virtualenv==16.7.9 +virtualenv==20.0.16 # zipp From 6994111882b259e71d2aa2f099bd75cd9e2d871a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Tue, 7 Apr 2020 19:40:50 -0400 Subject: [PATCH 02/10] requirements: update 'setuptools' (release) (no explanation necessary) --- requirements/release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/release.txt b/requirements/release.txt index 2acf1abd..724b754e 100644 --- a/requirements/release.txt +++ b/requirements/release.txt @@ -4,7 +4,7 @@ # Required packages: bumpversion==0.5.3 -setuptools==45.1.0 +setuptools==46.1.3 twine==3.1.1 wheel==0.34.2 From 3bb9e8515a393c1ae5dcf4c2da079219e56037ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Wed, 8 Apr 2020 10:16:20 -0400 Subject: [PATCH 03/10] requirements: update 'tox' (test) Because the new 'tox' version no longer requires `importlib-metadata<1` we can update that dependency as well. Changelog: - 3.14.6 (2020-03-25) https://github.com/tox-dev/tox/blob/3.14.6/docs/changelog.rst#v3146-2020-03-25 ... - 3.14.0 (2019-09-03) https://github.com/tox-dev/tox/blob/3.14.6/docs/changelog.rst#v3132-2019-07-01 - 3.13.2 (2019-07-01) https://github.com/tox-dev/tox/blob/3.14.6/docs/changelog.rst#v3132-2019-07-01 Code diff: https://github.com/tox-dev/tox/compare/3.13.1...3.14.6 --- requirements/base.txt | 2 +- requirements/release.txt | 2 +- requirements/test.txt | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 37a1e64b..4319cf1f 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -39,7 +39,7 @@ certifi==2020.4.5.1 cffi==1.14.0 eight==0.4.2 future==0.16.0 -importlib-metadata==0.23 +importlib-metadata==1.6.0 pycparser==2.20 pyrsistent==0.16.0 # setuptools diff --git a/requirements/release.txt b/requirements/release.txt index 724b754e..84a17473 100644 --- a/requirements/release.txt +++ b/requirements/release.txt @@ -40,7 +40,7 @@ wheel==0.34.2 # cryptography # docutils # idna -importlib-metadata==0.23 +importlib-metadata==1.6.0 # jeepney keyring==21.2.0 pkginfo==1.5.0.1 diff --git a/requirements/test.txt b/requirements/test.txt index 33f70de2..03b4972f 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -7,7 +7,7 @@ codecov==2.0.15 coverage==4.5.3 flake8==3.7.7 mypy==0.711 -tox==3.13.1 +tox==3.14.6 # Packages dependencies: # - codecov: @@ -33,10 +33,14 @@ tox==3.13.1 # - pyparsing # - pluggy # - py +# - six # - toml # - virtualenv # - appdirs # - distlib +# - filelock +# - importlib-metadata +# - six # appdirs # certifi # chardet @@ -44,7 +48,7 @@ tox==3.13.1 entrypoints==0.3 filelock==3.0.12 # idna -importlib-metadata==0.23 +importlib-metadata==1.6.0 mccabe==0.6.1 mypy-extensions==0.4.3 packaging==20.3 @@ -54,6 +58,7 @@ pycodestyle==2.5.0 pyflakes==2.1.1 # pyparsing # requests +# six toml==0.10.0 typed-ast==1.4.1 # urllib3 From 9c02394bfb5cd2aaf5fe8067c1e9021f1f7bb8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Tue, 7 Apr 2020 20:27:24 -0400 Subject: [PATCH 04/10] libs.csv_utils: prepare for 'mypy' update It is required for upgrading 'mypy' from 0.711 to 0.770. --- cl_sii/libs/csv_utils.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/cl_sii/libs/csv_utils.py b/cl_sii/libs/csv_utils.py index c3a910d9..f8fa0a47 100644 --- a/cl_sii/libs/csv_utils.py +++ b/cl_sii/libs/csv_utils.py @@ -22,14 +22,7 @@ def create_csv_dict_reader( :return: a CSV DictReader """ - # note: mypy wrongly complains: it does not accept 'fieldnames' to be None but that value - # is completely acceptable, and it even is the default! - # > error: Argument "fieldnames" to "DictReader" has incompatible type "None"; expected - # > "Sequence[str]" - # note: mypy wrongly complains: - # > Argument "dialect" to "DictReader" has incompatible type "Type[Dialect]"; - # > expected "Union[str, Dialect]" - csv_reader = csv.DictReader( # type: ignore + csv_reader = csv.DictReader( text_stream, fieldnames=None, # the values of the first row will be used as the fieldnames restkey=row_dict_extra_fields_key, @@ -38,6 +31,10 @@ def create_csv_dict_reader( if expected_fields_strict: if expected_field_names: + if csv_reader.fieldnames is None: + raise Exception( + "Programming error: when a 'csv.DictReader' instance is created with" + "'fieldnames=None', the attribute will be set to the values of the first row.") if tuple(csv_reader.fieldnames) != expected_field_names: raise ValueError( "CSV file field names do not match those expected, or their order.", From 836985d2ba2718e5bfb77ad1d516a7aff249d187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Wed, 8 Apr 2020 10:21:24 -0400 Subject: [PATCH 05/10] requirements: update 'mypy' (test) (plus some dependencies) Changelog: - 0.770 (2020-03-10) http://mypy-lang.blogspot.com/2020/03/mypy-0770-released.html - 0.761 (2019-12-19) N/A - 0.760 (2019-12-17) http://mypy-lang.blogspot.com/2019/12/mypy-0760-released.html - 0.750 (2019-11-29) http://mypy-lang.blogspot.com/2019/11/mypy-0.html - 0.740 (2019-10-16) http://mypy-lang.blogspot.com/2019/10/mypy-0740-released.html - 0.730 (2019-09-26) http://mypy-lang.blogspot.com/2019/09/mypy-730-released.html - 0.720 (2019-07-12) http://mypy-lang.blogspot.com/2019/07/mypy-0720-released.html Code diff: https://github.com/python/mypy/compare/v0.711...v0.770 --- requirements/test.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/requirements/test.txt b/requirements/test.txt index 03b4972f..b452143d 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -6,7 +6,7 @@ codecov==2.0.15 coverage==4.5.3 flake8==3.7.7 -mypy==0.711 +mypy==0.770 tox==3.14.6 # Packages dependencies: @@ -25,6 +25,7 @@ tox==3.14.6 # - mypy: # - mypy-extensions # - typed-ast +# - typing-extensions # - tox: # - filelock # - importlib-metadata @@ -61,6 +62,7 @@ pyflakes==2.1.1 # six toml==0.10.0 typed-ast==1.4.1 +typing-extensions==3.7.4.2 # urllib3 virtualenv==20.0.16 # zipp From 0588c88e261ef29068f1d03b676c831d3aa3c0bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Wed, 8 Apr 2020 10:22:37 -0400 Subject: [PATCH 06/10] requirements: update 'flake8' (test) Changelog: - 3.7.9 (2019-10-28) https://gitlab.com/pycqa/flake8/-/blob/3.7.9/docs/source/release-notes/3.7.9.rst - 3.7.8 (2919-07-08) https://gitlab.com/pycqa/flake8/-/blob/3.7.8/docs/source/release-notes/3.7.8.rst Code diff: https://gitlab.com/pycqa/flake8/compare/3.7.7...3.7.9 --- requirements/test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/test.txt b/requirements/test.txt index b452143d..2af3ca8f 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -5,7 +5,7 @@ # Required packages: codecov==2.0.15 coverage==4.5.3 -flake8==3.7.7 +flake8==3.7.9 mypy==0.770 tox==3.14.6 From 549a1f13592c4d7995ef064e366799584f43142e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Wed, 8 Apr 2020 10:22:46 -0400 Subject: [PATCH 07/10] requirements: update 'codecov' (test) Changelog: - 2.0.22 (2020-03-18) https://github.com/codecov/codecov-python/blob/v2.0.22/CHANGELOG.md#2022 ... - 2.0.16 (2020-02-24) https://github.com/codecov/codecov-python/blob/v2.0.22/CHANGELOG.md#2016 Code diff: https://github.com/codecov/codecov-python/compare/v2.0.15...v2.0.22 --- requirements/test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/test.txt b/requirements/test.txt index 2af3ca8f..afdfb56c 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -3,7 +3,7 @@ -r extras.txt # Required packages: -codecov==2.0.15 +codecov==2.0.22 coverage==4.5.3 flake8==3.7.9 mypy==0.770 From f9bad92a36cc6d6287cbc9da8de67486d38e8791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Wed, 8 Apr 2020 18:57:40 -0400 Subject: [PATCH 08/10] libs.crypto_utils: prepare tests for 'cryptography' update It is required for upgrading 'cryptography' from 2.8 to 2.9. In version 2.9 the value returned by `cryptography.x509.Certificate.subject.rfc4514_string()` has changed, but we shouldn't really care (the sections order in the string has been reversed). --- tests/test_libs_crypto_utils.py | 62 --------------------------------- 1 file changed, 62 deletions(-) diff --git a/tests/test_libs_crypto_utils.py b/tests/test_libs_crypto_utils.py index 2ed1ac72..95fb7f05 100644 --- a/tests/test_libs_crypto_utils.py +++ b/tests/test_libs_crypto_utils.py @@ -80,11 +80,6 @@ def test_load_der_x509_cert_ok(self) -> None: ####################################################################### self.assertEqual(len(x509_cert.issuer.rdns), 3) - self.assertEqual( - x509_cert.issuer.rfc4514_string(), - 'C=US,' - 'O=Google Trust Services,' - 'CN=Google Internet Authority G3') self.assertEqual( x509_cert.issuer.get_attributes_for_oid(oid.NameOID.COUNTRY_NAME)[0].value, 'US') @@ -100,13 +95,6 @@ def test_load_der_x509_cert_ok(self) -> None: ####################################################################### self.assertEqual(len(x509_cert.subject.rdns), 5) - self.assertEqual( - x509_cert.subject.rfc4514_string(), - 'C=US,' - 'ST=California,' - 'L=Mountain View,' - 'O=Google LLC,' - 'CN=*.google.com') self.assertEqual( x509_cert.subject.get_attributes_for_oid(oid.NameOID.COUNTRY_NAME)[0].value, 'US') @@ -257,15 +245,6 @@ def test_load_der_x509_cert_ok_cert_real_dte_1(self) -> None: ####################################################################### self.assertEqual(len(x509_cert.issuer.rdns), 7) - self.assertEqual( - x509_cert.issuer.rfc4514_string(), - 'C=CL,ST=Region Metropolitana,' - 'L=Santiago,' - 'O=E-CERTCHILE,' - 'OU=Autoridad Certificadora,' - 'CN=E-CERTCHILE CA FIRMA ELECTRONICA SIMPLE,' - '1.2.840.113549.1.9.1=sclientes@e-certchile.cl') - self.assertEqual( x509_cert.issuer.get_attributes_for_oid(oid.NameOID.COUNTRY_NAME)[0].value, 'CL') @@ -293,15 +272,6 @@ def test_load_der_x509_cert_ok_cert_real_dte_1(self) -> None: ####################################################################### self.assertEqual(len(x509_cert.subject.rdns), 7) - self.assertEqual( - x509_cert.subject.rfc4514_string(), - 'C=CL,' - 'ST=VALPARAISO\\ ,' - 'L=Quillota,' - 'O=Servicios Bonilla y Lopez y Cia. Ltda.,' - 'OU=Ingeniería y Construcción,' - 'CN=Ramon humberto Lopez Jara,' - '1.2.840.113549.1.9.1=enaconltda@gmail.com') self.assertEqual( x509_cert.subject.get_attributes_for_oid(oid.NameOID.COUNTRY_NAME)[0].value, 'CL') @@ -482,14 +452,6 @@ def test_load_der_x509_cert_ok_cert_real_dte_3(self) -> None: ####################################################################### self.assertEqual(len(x509_cert.issuer.rdns), 5) - self.assertEqual( - x509_cert.issuer.rfc4514_string(), - 'C=CL,' - 'O=E-Sign S.A.,' - 'OU=Terms of use at www.esign-la.com/acuerdoterceros,' - 'CN=E-Sign Class 2 Firma Tributaria CA,' - '1.2.840.113549.1.9.1=e-sign@esign-la.com') - self.assertEqual( x509_cert.issuer.get_attributes_for_oid(oid.NameOID.COUNTRY_NAME)[0].value, 'CL') @@ -511,13 +473,6 @@ def test_load_der_x509_cert_ok_cert_real_dte_3(self) -> None: ####################################################################### self.assertEqual(len(x509_cert.subject.rdns), 5) - self.assertEqual( - x509_cert.subject.rfc4514_string(), - 'C=CL,' - 'O=E-Sign S.A.,' - 'OU=Terms of use at www.esign-la.com/acuerdoterceros,' - 'CN=Jorge Enrique Cabello Ortiz,' - '1.2.840.113549.1.9.1=jcabello@nic.cl') self.assertEqual( x509_cert.subject.get_attributes_for_oid(oid.NameOID.COUNTRY_NAME)[0].value, 'CL') @@ -683,14 +638,6 @@ def test_load_der_x509_cert_ok_prueba_sii(self) -> None: ####################################################################### self.assertEqual(len(x509_cert.issuer.rdns), 6) - self.assertEqual( - x509_cert.issuer.rfc4514_string(), - 'ST=Region Metropolitana,' - 'L=Santiago,' - 'CN=E-Certchile CA Intermedia,' - 'OU=Empresa Nacional de Certificacion Electronica,' - 'O=E-CERTCHILE,' - 'C=CL') self.assertEqual( x509_cert.issuer.get_attributes_for_oid(oid.NameOID.COUNTRY_NAME)[0].value, 'CL') @@ -715,15 +662,6 @@ def test_load_der_x509_cert_ok_prueba_sii(self) -> None: ####################################################################### self.assertEqual(len(x509_cert.subject.rdns), 7) - self.assertEqual( - x509_cert.subject.rfc4514_string(), - 'ST=Region Metropolitana,' - 'OU=Servicio de Impuestos Internos,' - 'O=Servicio de Impuestos Internos,' - 'L=Santiago,' - '1.2.840.113549.1.9.1=wgonzalez@sii.cl,' - 'CN=Wilibaldo Gonzalez Cabrera,' - 'C=CL') self.assertEqual( x509_cert.subject.get_attributes_for_oid(oid.NameOID.COUNTRY_NAME)[0].value, 'CL') From b335c6db6c65fa93cdff8051eb21d20be8650500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Tue, 7 Apr 2020 20:18:32 -0400 Subject: [PATCH 09/10] requirements: update 'cryptography' Changelog: - 2.9 (2020-04-02) https://github.com/pyca/cryptography/blob/2.9/CHANGELOG.rst#29---2020-04-02 Code diff: https://github.com/pyca/cryptography/compare/2.8...2.9 --- requirements/base.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/base.txt b/requirements/base.txt index 4319cf1f..039cb903 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -2,7 +2,7 @@ # note: it is mandatory to register all dependencies of the required packages. # Required packages: -cryptography==2.8 +cryptography==2.9 defusedxml==0.6.0 jsonschema==3.1.1 lxml==4.5.0 From add3f78f4c1fa13e9c9f35b5ee9759bb77553080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Wed, 8 Apr 2020 19:07:13 -0400 Subject: [PATCH 10/10] requirements: update 'jsonschema' Also, a dependency is marked as conditional, based on https://github.com/Julian/jsonschema/blob/v3.2.0/setup.cfg#L31 Changelog: - 3.2.0 (2019-11-18) https://github.com/Julian/jsonschema/blob/v3.2.0/CHANGELOG.rst#v320 Code diff: https://github.com/Julian/jsonschema/compare/v3.1.1...v3.2.0 --- requirements/base.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 039cb903..b8e1b349 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,7 +4,7 @@ # Required packages: cryptography==2.9 defusedxml==0.6.0 -jsonschema==3.1.1 +jsonschema==3.2.0 lxml==4.5.0 marshmallow==2.19.5 pyOpenSSL==18.0.0 @@ -17,12 +17,12 @@ signxml==2.6.0 # - pycparser # - six # - jsonschema -# - setuptools -# - six # - attrs -# - importlib-metadata +# - importlib-metadata (python_version<'3.8') # - zipp # - pyrsistent +# - setuptools +# - six # - signxml: # - asn1crypto # - certifi @@ -39,7 +39,7 @@ certifi==2020.4.5.1 cffi==1.14.0 eight==0.4.2 future==0.16.0 -importlib-metadata==1.6.0 +importlib-metadata==1.6.0; python_version<'3.8' pycparser==2.20 pyrsistent==0.16.0 # setuptools