.. :changelog:

History
-------

0.17.2 (2022-03-31)
+++++++++++++++++++++++

* (PR #309, 2022-03-31) fix(rut): `AttributeError` for `GeneralName` object without `type_id`

0.17.1 (2022-02-16)
+++++++++++++++++++++++

* (PR #269, 2022-02-03) chore: Add tool to automatically sort Python imports
* (PR #274, 2022-02-08) chore: Increase Dependabot's open pull request limit for `pip`
* (PR #273, 2022-02-08) requirements: Update 'Flake8'
* (PR #292, 2022-02-08) chore: Increase Django REST Framework required maximum version to 3.13.x
* (PR #294, 2022-02-09) chore: Simplify organization of Python dependency manifests
* (PR #272, 2022-02-10) Add 'Black' Python code formatter

0.17.0 (2022-01-27)
+++++++++++++++++++++++

* (PR #251, 2022-01-14) rcv: Convert stdlib dataclasses into pydantic dataclasses
* (PR #267, 2022-01-27) cl_sii.rut: Add method to get the RUT of the certificate holder

0.16.1 (2022-01-13)
+++++++++++++++++++++++

* (PR #264, 2022-01-13) rtc.xml_utils: Add method to verify signature of AEC XML document

0.16.0 (2021-12-24)
+++++++++++++++++++++++

* (PR #261, 2021-12-24) chore(rtc.parse): Disable validation that AEC signature cert is loadable
* (PR #253, 2021-12-24) Rename of the enum class for `TipoDte` object

0.15.2 (2021-12-23)
+++++++++++++++++++++++

* (PR #258, 2021-12-22) chore: Increase lxml lower bound constraint
* (PR #259, 2021-12-23) requirements: Update 'signxml'

0.15.1 (2021-12-21)
+++++++++++++++++++++++

* (PR #255, 2021-12-21) build(deps): bump lxml from 4.6.3 to 4.6.5

0.15.0 (2021-10-20)
+++++++++++++++++++++++

* (PR #242, 2021-10-12) rtc: Verify outermost XML signature of SII AECs
* (PR #247, 2021-10-19) config: Update Python version used in CI jobs to 3.8.12
* (PR #245, 2021-10-20) rtc.parse_aec: Convert to `None` the empty optional values in the Caratula

0.14.1 (2021-10-12)
+++++++++++++++++++++++

* (PR #238, 2021-09-08) rut: Fix RUT clean method to accept '0-0' value
* (PR #241, 2021-09-16) rtc: Make AEC field 'nombre persona autorizada cedente' optional

0.14.0 (2021-08-17)
+++++++++++++++++++++++

* (PR #234, 2021-08-09) dte: Convert stdlib dataclasses into pydantic dataclasses
* (PR #236, 2021-08-09) DteXmlData: Restore mistakenly deleted regression tests

0.13.0 (2021-07-14)
+++++++++++++++++++++++

* (PR #228, 2021-06-29) config: Update Python version used in CI jobs to 3.8.10
* (PR #230, 2021-07-09) dte: Convert stdlib dataclass `DteXmlData` into pydantic dataclass

0.12.5 (2021-06-15)
+++++++++++++++++++++++

* (PR #226, 2021-06-15) requirements: Remove Django upper bound constraint
* (PR #224, 2021-06-15) requirements: Upgrade 'Django'
* (PR #223, 2021-06-08) requirements: Upgrade 'Django'
* (PR #221, 2021-05-14) requirements: Upgrade Pydantic
* (PR #216, 2021-04-22) docs: Add creation of release branch to instructions for new releases
* (PR #213, 2021-04-21) build(deps): bump toml from 0.10.1 to 0.10.2

0.12.4 (2021-04-15)
+++++++++++++++++++++++

* (PR #195, 2021-04-15) build(deps): bump requests from 2.23.0 to 2.25.1
* (PR #212, 2021-04-14) config: Update Python version used in CI jobs to 3.8.9
* (PR #210, 2021-04-13) rtc.data_models_aec: remove validation for the progression of
  'monto_cesion' across the 'cesiones'
* (PR #207, 2021-04-08) build(deps): bump virtualenv from 20.0.31 to 20.4.3
* (PR #208, 2021-04-08) rtc.data_models_aec: remove match validation for 'fecha_firma_dt' and
  'fecha_cesion_dt'
* (PR #205, 2021-03-26) build(deps): bump lxml from 4.6.2 to 4.6.3
* (PR #204, 2021-03-24) requirements: Upgrade 'Django'

0.12.3 (2021-02-26)
+++++++++++++++++++++++

* (PR #193, 2021-02-16) requirements: Update dependency graph of base requirements
* (PR #197, 2021-02-26) extras: add 'RutField' for Django forms

0.12.2 (2021-02-16)
+++++++++++++++++++++++

* (PR #177, 2021-02-16) build(deps): bump lxml from 4.5.0 to 4.6.2
* (PR #188, 2021-02-16) build(deps): bump cryptography from 3.3.1 to 3.3.2
* (PR #176, 2021-02-16) build(deps): bump zipp from 3.1.0 to 3.4.0
* (PR #167, 2021-02-16) build(deps): bump py from 1.8.1 to 1.10.0
* (PR #189, 2021-02-16) build(deps): bump certifi from 2020.4.5.1 to 2020.12.5
* (PR #185, 2021-02-16) build(deps): bump pkginfo from 1.5.0.1 to 1.7.0
* (PR #191, 2021-02-16) build(deps): bump pyrsistent from 0.16.0 to 0.17.3
* (PR #190, 2021-02-16) build(deps): bump typed-ast from 1.4.1 to 1.4.2

0.12.1 (2021-02-09)
+++++++++++++++++++++++

* (PR #186, 2021-02-09) rtc: Add methods to build CesionL2, CesionL1, and CesionL0 from other data
  models

0.12.0 (2021-01-17)
+++++++++++++++++++++++

* (PR #179, 2021-01-13) rtc: Add data models for "cesión"
* (PR #181, 2021-01-14) rtc.data_models: Clean up configuration leftovers from tests
* (PR #180, 2021-01-15) rtc: Add data models and parser for AECs

0.11.2 (2021-01-11)
+++++++++++++++++++++++

* (PR #166, 2020-12-15) requirements: Update 'cryptography'
* (PR #169, 2020-12-16) build(deps): bump coverage from 4.5.3 to 5.3
* (PR #172, 2020-12-22) rtc: Add data model for "Cesiones Periodo" entries
* (PR #173, 2021-01-05) requirements: Add 'pydantic'
* (PR #175, 2021-01-06) libs.tz_utils: Add checks to validate_dt_tz
* (PR #174, 2021-01-07) rtc: Add constants and "cesión" natural keys
* (PR #171, 2021-01-07) build(deps): bump codecov from 2.1.9 to 2.1.11

0.11.1 (2020-12-15)
+++++++++++++++++++++++

* (PR #140, 2020-09-15) config: Make CI 'dist' job depend on 'test' jobs
* (PR #141, 2020-09-15) config: Update Python version used in CI jobs to 3.8.5
* (PR #137, 2020-09-15) build(deps): bump keyring from 21.2.0 to 21.4.0
* (PR #142, 2020-09-16) build(deps): bump mypy from 0.770 to 0.782
* (PR #145, 2020-09-21) build(deps): bump setuptools from 46.1.3 to 50.3.0
* (PR #146, 2020-09-23) build(deps): bump wheel from 0.34.2 to 0.35.1
* (PR #147, 2020-09-23) requirements: update 'eight' (dependency of 'signxml')
* (PR #149, 2020-09-24) build(deps): bump packaging from 20.3 to 20.4
* (PR #150, 2020-09-28) build(deps): bump virtualenv from 20.0.26 to 20.0.31
* (PR #157, 2020-11-12) requirements: Update 'flake8'
* (PR #158, 2020-11-12) requirements: Update 'signxml'
* (PR #161, 2020-12-15) Add support for Python 3.9
* (PR #160, 2020-12-15) build(deps): bump cryptography from 2.9 to 3.3.1
* (PR #162, 2020-12-15) config: Update Python 3.7 version to 3.7.9
* (PR #156, 2020-12-15) build(deps): bump attrs from 19.3.0 to 20.3.0
* (PR #151, 2020-12-15) build(deps): update djangorestframework requirement
  from <3.11,>=3.10.3 to >=3.10.3,<3.13
* (PR #163, 2020-12-15) requirements: update 'mypy' (test)
* (PR #164, 2020-12-15) requirements: update 'tox' (test)

0.11.0 (2020-09-15)
+++++++++++++++++++++++

* (PR #138, 2020-09-15) config: Add PyPI package uploading to CI
* (PR #135, 2020-09-15) rtc: Add constants
* (PR #129, 2020-09-14) build(deps): bump toml from 0.10.0 to 0.10.1
* (PR #133, 2020-09-14) build(deps): bump codecov from 2.0.22 to 2.1.9
* (PR #134, 2020-09-10) Add sub-package `rtc`
* (PR #131, 2020-07-22) requirements: update 'signxml'
* (PR #123, 2020-07-13) build(deps): bump six from 1.14.0 to 1.15.0
* (PR #126, 2020-07-10) build(deps): bump virtualenv from 20.0.16 to 20.0.26
* (PR #127, 2020-07-09) config: Verify Python dependency compatibility in CI
* (PR #124, 2020-07-07) build(deps): bump tox from 3.14.6 to 3.16.1
* (PR #122, 2020-07-07) config: Add configuration for GitHub Dependabot

0.10.1 (2020-06-08)
+++++++++++++++++++++++

* (PR #119, 2020-06-08) Add support for Python 3.8

0.10.0 (2020-04-14)
+++++++++++++++++++++++

0.10.0.a3
~~~~~~~~~~~~~~~~~~~~~~

* (PR #116, 2020-04-14) rcv.data_models: remove unnecessary fields
* (PR #114, 2020-04-14) rcv.parse_csv: remove param ``razon_social`` from parse functions

0.10.0.a2
~~~~~~~~~~~~~~~~~~~~~~

* (PR #112, 2020-04-14) data_models: make some fields optional

0.10.0.a1
~~~~~~~~~~~~~~~~~~~~~~

* (PR #110, 2020-04-13) rcv.data_models: move some fields to subclasses
* (PR #109, 2020-04-13) rcv.parse_csv: move code from 'fd-cl-data' in here
* (PR #108, 2020-04-13) dte.data_models: add 'DteXmlData'
* (PR #107, 2020-04-10) requirements: several updates

0.9.1 (2020-03-20)
+++++++++++++++++++++++

* Fix incorrect version used in the previous release's changelog.

0.9.0 (2020-03-20)
+++++++++++++++++++++++

* (PR #104, 2020-02-27) cte.f29.parser: Rename custom validator and deserializer parameters
* (PR #97, 2020-02-25) cte: Allow four digit Form 29 codes
* (PR #103, 2020-02-24) cte: Add custom validators and deserializers to parser

0.8.4 (2020-02-06)
+++++++++++++++++++++++

* (PR #100, 2020-02-06) Update everything for Fyntex, the new owner

0.8.3 (2020-02-06)
+++++++++++++++++++++++

* (PR #98, 2020-02-05) requirements: several updates (``cryptography``,
  ``lxml``, ``Django``, ``djangorestframework``)
* (PR #91, 2019-10-28) extras.mm_fields: add ``RcvPeriodoTributarioField``

0.8.2 (2019-10-28)
+++++++++++++++++++++++

* (PR #89, 2019-10-28) cte: Move JSON Schema of F29 'datos' object to 'data'
  directory and include it in the distribution packages
* (PR #87, 2019-10-25) cte: add data model, parser and more
* (PR #88, 2019-10-23) update config file for "deepsource"
* (PR #86, 2019-10-08) add config file for "deepsource"

0.8.1 (2019-09-25)
+++++++++++++++++++++++

* (PR #83, 2019-09-12) rcv.parse_csv: remove whitespace from "razon social"

0.8.0 (2019-09-03)
+++++++++++++++++++++++

* (PR #80, 2019-09-03) dte: Allow negative "monto total" when DTE type is "liquidación-factura
  electrónica"

0.7.4 (2019-08-08)
+++++++++++++++++++++++

* (PR #76, 2019-08-01) dte: misc data models and enum improvements

0.7.3 (2019-07-09)
+++++++++++++++++++++++

* (PR #74, 2019-07-09) requirements: update main packages

0.7.2 (2019-07-08)
+++++++++++++++++++++++

* (PR #72, 2019-07-08) extras: Handle ``str``-typed RUTs in Django ``RutField.get_prep_value()``
* (PR #70, 2019-07-05) rut: Add less-than and greater-than methods
* (PR #71, 2019-07-05) rut: Strip leading zeros from RUTs
* (PR #69, 2019-07-02) libs.tz_utils: Fix setting of time zone information in datetimes
* (PR #68, 2019-06-27) requirements: update all those for 'release' and 'test'

0.7.1 (2019-06-20)
+++++++++++++++++++++++

* (PR #66, 2019-06-20) rcv.parse_csv: detect invalid value of "razon social"

0.7.0 (2019-06-13)
+++++++++++++++++++++++

* (PR #63, 2019-06-13) rcv.parse_csv: significant changes to parse functions
* (PR #62, 2019-06-13) libs: add module ``io_utils``
* (PR #61, 2019-06-12) rcv: add data models, constants and more
* (PR #60, 2019-06-12) libs.tz_utils: misc
* (PR #59, 2019-05-31) rcv.parse_csv: add ``parse_rcv_compra_X_csv_file``

0.6.5 (2019-05-29)
+++++++++++++++++++++++

* (PR #57, 2019-05-29) libs.xml_utils: minor fix to ``verify_xml_signature``

0.6.4 (2019-05-29)
+++++++++++++++++++++++

* (PR #55, 2019-05-29) libs.xml_utils: add ``verify_xml_signature``
* (PR #54, 2019-05-28) libs: add module ``dataclass_utils``

0.6.3 (2019-05-24)
+++++++++++++++++++++++

* (PR #52, 2019-05-24) rcv: add module ``parse_csv``
* (PR #51, 2019-05-24) libs: add module ``rows_processing``
* (PR #50, 2019-05-24) libs: add module ``csv_utils``
* (PR #49, 2019-05-24) libs.mm_utils: add ``validate_no_unexpected_input_fields``
* (PR #48, 2019-05-24) dte.data_models: add ``DteDataL2.as_dte_data_l1``

0.6.2 (2019-05-15)
+++++++++++++++++++++++

* (PR #45, 2019-05-15) libs.encoding_utils: improve ``clean_base64``
* (PR #44, 2019-05-15) dte.parse: fix edge case in ``parse_dte_xml``

0.6.1 (2019-05-08)
+++++++++++++++++++++++

* (PR #40, 2019-05-08) dte.data_models: fix bug in ``DteDataL2``

0.6.0 (2019-05-08)
+++++++++++++++++++++++

Includes backwards-incompatible changes to data model ``DteDataL2``.

* (PR #38, 2019-05-08) dte.data_models: alter field ``DteDataL2.signature_x509_cert_pem``
* (PR #37, 2019-05-08) dte.data_models: alter field ``DteDataL2.firma_documento_dt_naive``
* (PR #36, 2019-05-08) libs.crypto_utils: add functions
* (PR #35, 2019-05-07) libs.tz_utils: minor improvements
* (PR #34, 2019-05-06) docs: Fix ``bumpversion`` command

0.5.1 (2019-05-03)
+++++++++++++++++++++++

* (PR #32, 2019-05-03) Requirements: updates and package upper-bounds

0.5.0 (2019-04-25)
+++++++++++++++++++++++

* (PR #29, 2019-04-25) dte.data_models: modify new fields of ``DteDataL2``
* (PR #28, 2019-04-25) libs: add module ``crypto_utils``
* (PR #27, 2019-04-25) libs: add module ``encoding_utils``
* (PR #26, 2019-04-25) test_data: add files
* (PR #25, 2019-04-25) libs.xml_utils: fix class alias ``XmlElementTree``
* (PR #24, 2019-04-25) requirements: add and update packages
* (PR #22, 2019-04-24) test_data: add files
* (PR #21, 2019-04-22) dte: many improvements
* (PR #20, 2019-04-22) libs.xml_utils: misc improvements
* (PR #19, 2019-04-22) test_data: fix and add real SII DTE & AEC XML files
* (PR #18, 2019-04-22) data.ref: add XML schemas for "Cesion" (RTC)

0.4.0 (2019-04-16)
+++++++++++++++++++++++

* (PR #16, 2019-04-16) dte.parse: change and improve ``clean_dte_xml``
* (PR #14, 2019-04-09) data.ref: merge XML schemas dirs
* (PR #13, 2019-04-09) extras: add Marshmallow field for a DTE's "tipo DTE"

0.3.0 (2019-04-05)
+++++++++++++++++++++++

* (PR #11, 2019-04-05) dte: add module ``parse``
* (PR #10, 2019-04-05) dte: add module ``data_models``
* (PR #9, 2019-04-05) libs: add module ``xml_utils``
* (PR #8, 2019-04-05) add sub-package ``rcv``

0.2.0 (2019-04-04)
+++++++++++++++++++++++

* (PR #6, 2019-04-04) data.ref: add XML schemas of "factura electrónica"
* (PR #5, 2019-04-04) extras: add 'RutField' for Django models, DRF and MM
* (PR #4, 2019-04-04) Config CircleCI

0.1.0 (2019-04-04)
+++++++++++++++++++++++

* (PR #2, 2019-04-04) Add class and constants for RUT
* (PR #1, 2019-04-04) Whole setup for a Python package/library
