Skip to content

Commit

Permalink
Merge pull request #99 from fyntex/develop
Browse files Browse the repository at this point in the history
Release v0.8.3
  • Loading branch information
glarrain committed Feb 6, 2020
2 parents 6c96595 + 92030ab commit 3e24fab
Show file tree
Hide file tree
Showing 10 changed files with 316 additions and 39 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.8.2
current_version = 0.8.3
commit = True
tag = True

Expand Down
7 changes: 7 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
History
-------

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)
+++++++++++++++++++++++

Expand Down
2 changes: 1 addition & 1 deletion cl_sii/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
"""


__version__ = '0.8.2'
__version__ = '0.8.3'
40 changes: 40 additions & 0 deletions cl_sii/extras/mm_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
except ImportError as exc: # pragma: no cover
raise ImportError("Package 'marshmallow' is required to use this module.") from exc

import datetime
from typing import Optional

import marshmallow.fields

from cl_sii.dte.constants import TipoDteEnum
from cl_sii.rcv.constants import RcvTipoDocto
from cl_sii.rcv.data_models import PeriodoTributario as RcvPeriodoTributario
from cl_sii.rut import Rut


Expand Down Expand Up @@ -171,3 +173,41 @@ def _validated(self, value: Optional[object]) -> Optional[RcvTipoDocto]:
# RcvTipoDocto('x') raises 'ValueError', not 'TypeError'
self.fail('invalid')
return validated


class RcvPeriodoTributarioField(marshmallow.fields.Field):
"""
Marshmallow field for RCV's "periodo tributario".
Data types:
* native/primitive/internal/deserialized: :class:`RcvPeriodoTributario`
* representation/serialized: str
"""

default_error_messages = {
'invalid': "Not a valid RCV Periodo Tributario.",
}
_string_format = '%Y-%m' # Example: '2019-12'

def _serialize(self, value: Optional[object], attr: str, obj: object) -> Optional[str]:
validated: Optional[RcvPeriodoTributario] = self._validated(value)
return validated.as_date().strftime(self._string_format) if validated is not None else None

def _deserialize(self, value: object, attr: str, data: dict) -> Optional[RcvPeriodoTributario]:
return self._validated(value)

def _validated(self, value: Optional[object]) -> Optional[RcvPeriodoTributario]:
if value is None or isinstance(value, RcvPeriodoTributario):
validated = value
else:
try:
value = datetime.datetime.strptime(value, self._string_format) # type: ignore
value = value.date()
except ValueError:
self.fail('invalid')
except TypeError:
self.fail('type')

validated = RcvPeriodoTributario.from_date(value) # type: ignore

return validated
23 changes: 12 additions & 11 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,17 @@
# note: it is mandatory to register all dependencies of the required packages.

# Required packages:
cryptography==2.7
cryptography==2.8
defusedxml==0.6.0
jsonschema==3.1.1
lxml==4.3.3
lxml==4.5.0
marshmallow==2.19.5
pyOpenSSL==18.0.0
pytz==2019.1
pytz==2019.3
signxml==2.6.0

# Packages dependencies:
# - cryptography:
# - asn1crypto
# - cffi:
# - pycparser
# - six
Expand All @@ -25,6 +24,7 @@ signxml==2.6.0
# - zipp
# - pyrsistent
# - signxml:
# - asn1crypto
# - certifi
# - cryptography
# - defusedxml
Expand All @@ -33,14 +33,15 @@ signxml==2.6.0
# - lxml
# - pyOpenSSL
# - six
asn1crypto==0.24.0
asn1crypto==1.3.0
attrs==19.3.0
certifi==2019.6.16
cffi==1.12.3
certifi==2019.11.28
cffi==1.13.2
eight==0.4.2
future==0.16.0
importlib-metadata==0.18
importlib-metadata==0.23
pycparser==2.19
pyrsistent==0.15.4
six==1.12.0
zipp==0.5.1
pyrsistent==0.15.7
# setuptools
six==1.14.0
zipp==2.1.0
11 changes: 9 additions & 2 deletions requirements/extras.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# note: it is NOT mandatory to register all dependencies of the required packages.

# Required packages:
Django<2.2
djangorestframework<3.10
Django>=2.2.10,<3
djangorestframework>=3.10.3,<3.11

# Packages dependencies:
# - Django:
# - pytz
# - sqlparse
# pytz
# sqlparse
42 changes: 36 additions & 6 deletions requirements/release.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,50 @@

# Required packages:
bumpversion==0.5.3
setuptools==41.0.1
twine==1.13.0
wheel==0.33.4
setuptools==45.1.0
twine==3.1.1
wheel==0.34.2

# Packages dependencies:
# - twine:
# - importlib-metadata
# - zipp
# - keyring
# - importlib-metadata
# - jeepney
# - SecretStorage
# - cryptography
# - jeepney
# - pkginfo
# - readme-renderer
# - requests
# - readme-renderer:
# - bleach
# - webencodings
# - docutils
# - Pygments
# - requests:
# - certifi
# - chardet
# - idna
# - urllib3
# - requests-toolbelt
# - setuptools
# - tqdm
# bleach
# certifi
# chardet
# cryptography
# docutils
# idna
importlib-metadata==0.23
# jeepney
keyring==21.1.0
pkginfo==1.5.0.1
# Pygments
readme-renderer==24.0
requests==2.22.0
requests-toolbelt==0.9.1
tqdm==4.32.2
# SecretStorage
tqdm==4.42.0
# urllib3
# webencodings
# zipp
30 changes: 19 additions & 11 deletions requirements/test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ tox==3.13.1
# Packages dependencies:
# - codecov:
# - coverage
# - requests
# - requests:
# - certifi
# - chardet
# - idna
# - urllib3
# - flake8:
# - entrypoints
# - mccabe
Expand All @@ -31,19 +35,23 @@ tox==3.13.1
# - py
# - toml
# - virtualenv
# certifi
# chardet
entrypoints==0.3
filelock==3.0.12
importlib-metadata==0.18
# idna
importlib-metadata==0.23
mccabe==0.6.1
mypy-extensions==0.4.1
packaging==19.0
pluggy==0.12.0
py==1.8.0
mypy-extensions==0.4.3
packaging==20.1
pluggy==0.13.1
py==1.8.1
pycodestyle==2.5.0
pyflakes==2.1.1
pyparsing==2.4.0
requests
# pyparsing
# requests
toml==0.10.0
typed-ast==1.4.0
virtualenv==16.6.1
zipp==0.5.1
typed-ast==1.4.1
# urllib3
virtualenv==16.7.9
# zipp
12 changes: 6 additions & 6 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,20 @@ def get_version(*file_paths: Sequence[str]) -> str:
history = open('HISTORY.rst').read().replace('.. :changelog:', '')

requirements = [
'cryptography>=2.7,<3',
'defusedxml>=0.5.0,<1',
'cryptography>=2.8,<3',
'defusedxml>=0.6.0,<1',
'jsonschema>=3.1.1',
'lxml>=4.3.3,<5',
'lxml>=4.5.0,<5',
'marshmallow>=2.19.2,<3',
# TODO: remove upper-bound after a new release of 'signxml' drops the requirement 'pyOpenSSL<19'
'pyOpenSSL>=18.0.0,<19',
'pytz>=2019.1',
'pytz>=2019.3',
'signxml>=2.6.0',
]

extras_requirements = {
'django': ['Django>=2.1.8'],
'djangorestframework': ['djangorestframework>=3.9.2'],
'django': ['Django>=2.2.10,<3'],
'djangorestframework': ['djangorestframework>=3.10.3,<3.11'],
}

setup_requirements = [
Expand Down

0 comments on commit 3e24fab

Please sign in to comment.