commonground-api-common 2.6.0__py3-none-any.whl → 2.6.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commonground-api-common
3
- Version: 2.6.0
3
+ Version: 2.6.1
4
4
  Summary: Commonground API tooling
5
5
  Home-page: https://github.com/maykinmedia/commonground-api-common
6
6
  Author: Maykin Media, VNG-Realisatie
@@ -28,7 +28,6 @@ Requires-Dist: django-rest-framework-condition
28
28
  Requires-Dist: drf-nested-routers>=0.94.1
29
29
  Requires-Dist: drf-spectacular
30
30
  Requires-Dist: iso-639
31
- Requires-Dist: isodate
32
31
  Requires-Dist: notifications-api-common>=0.3.1
33
32
  Requires-Dist: zgw-consumers>=0.35.1
34
33
  Requires-Dist: oyaml
@@ -1,5 +1,5 @@
1
- commonground_api_common-2.6.0.data/scripts/generate_schema,sha256=OpKgzlFc_uzA3TVW_vHSYXAD_feLaCdTEnkWjIcxVzA,280
2
- vng_api_common/__init__.py,sha256=OEib63e0yPEGlhEXyrWE1OwRnleR0cHI7KSX7oZEQLs,22
1
+ commonground_api_common-2.6.1.data/scripts/generate_schema,sha256=OpKgzlFc_uzA3TVW_vHSYXAD_feLaCdTEnkWjIcxVzA,280
2
+ vng_api_common/__init__.py,sha256=yv0wJuq7dd_PlBhLN8iuPUYVsoACKuk2R3Gg5WU-tHk,22
3
3
  vng_api_common/admin.py,sha256=iFtUPGf-ha0I-bXgq8QIFrP23Kzk_H3FlgAjt0U-ip0,259
4
4
  vng_api_common/apps.py,sha256=QQiJXRmjX9Q91oh0P9fvVnHe3NSYd1cEcUUBw0HLBCA,3690
5
5
  vng_api_common/checks.py,sha256=tOyfV7MMLGh4anrd_W30LvJCxiyQ4sFs1mGd9mtrEc0,1175
@@ -28,7 +28,7 @@ vng_api_common/routers.py,sha256=hEnhBulkgMM-7W_lYaykKTgTBj3-avl7DGsR9P7BbTU,189
28
28
  vng_api_common/schema.py,sha256=axs2Q8IXwpHNd5WscQg5xOErL6bWhP8WFItTt4xCFO4,16305
29
29
  vng_api_common/scopes.py,sha256=PGs6CkXorAAdWXGFY1bSy-jmsPn122Njen9aFFOpFIQ,2351
30
30
  vng_api_common/search.py,sha256=yehS6boCOk1JXLCqAMU-B62hWtbTBSf_WKIVGPgp0Mg,1045
31
- vng_api_common/serializers.py,sha256=ErIoN1br71eszZ-hRgVUycjQkK6rJNkT5ygsagZoGNg,14084
31
+ vng_api_common/serializers.py,sha256=D0DEw-iw4se1MLAlDw25G6q4g1BTEL3VXcuvMTj6qlk,13462
32
32
  vng_api_common/urls.py,sha256=9IWHYLlEIIHNaZ_Zq02qNQ2HJpETb7o-89r7yBM_tQs,270
33
33
  vng_api_common/utils.py,sha256=EHqVjZhtqnbU7YrqgYIBss28Sd19jtnTLNaMWLfj3Zw,8203
34
34
  vng_api_common/validators.py,sha256=ejaFZvFXFaBlqxjA2_07NSHKHlG5pejrfC_GHjwCj6E,12852
@@ -183,7 +183,7 @@ vng_api_common/tests/auth.py,sha256=IKDWTEFv4Bign4F70-ibsFcnJqRxEJaXvqaPQJWa1xY,
183
183
  vng_api_common/tests/caching.py,sha256=zfIw5cRRvO9cekHZZKfRqZc8cx5IfJUYNmcH6cuIMg4,624
184
184
  vng_api_common/tests/schema.py,sha256=WDvifDQQiKqIpQijpeQ7rYkFroJmuPuHe7zNhl1Bigk,2293
185
185
  vng_api_common/tests/urls.py,sha256=PFrYzQbBC0TFPMEn3uPhcBG0IQs9JsEPqckicJT1UA4,2159
186
- commonground_api_common-2.6.0.dist-info/METADATA,sha256=HsGhhHvzoGLHlqzsYvNxs_qrG76ym2BtbcCX3u7jqx8,6988
187
- commonground_api_common-2.6.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
188
- commonground_api_common-2.6.0.dist-info/top_level.txt,sha256=vPismc83zPzWXTmlNCCwfDlFV9iygJYxNJW5iDjKTgw,15
189
- commonground_api_common-2.6.0.dist-info/RECORD,,
186
+ commonground_api_common-2.6.1.dist-info/METADATA,sha256=TCEnYBoRYR_1qTBTE73HroD-J4mDJEHuZOeROVkAcvo,6965
187
+ commonground_api_common-2.6.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
188
+ commonground_api_common-2.6.1.dist-info/top_level.txt,sha256=vPismc83zPzWXTmlNCCwfDlFV9iygJYxNJW5iDjKTgw,15
189
+ commonground_api_common-2.6.1.dist-info/RECORD,,
@@ -1 +1 @@
1
- __version__ = "2.6.0"
1
+ __version__ = "2.6.1"
@@ -1,4 +1,3 @@
1
- import datetime
2
1
  import inspect
3
2
  from collections import OrderedDict
4
3
  from functools import reduce
@@ -8,7 +7,7 @@ from django.db import models, transaction
8
7
  from django.db.models import Model
9
8
  from django.utils.translation import gettext_lazy as _
10
9
 
11
- import isodate
10
+ from dateutil.relativedelta import relativedelta
12
11
  from rest_framework import fields, serializers
13
12
  from rest_framework.request import Request
14
13
  from rest_framework_nested.relations import NestedHyperlinkedRelatedField
@@ -18,41 +17,29 @@ from .descriptors import GegevensGroepType
18
17
 
19
18
  try:
20
19
  # 1.1.x
21
- from relativedeltafield.utils import format_relativedelta, relativedelta
20
+ from relativedeltafield.utils import format_relativedelta, parse_relativedelta
22
21
  except ImportError:
23
22
  try:
24
23
  # 1.0.x
25
- from relativedeltafield import format_relativedelta, relativedelta
24
+ from relativedeltafield import format_relativedelta, parse_relativedelta
26
25
  except ImportError:
27
26
  format_relativedelta = None
28
- relativedelta = None
27
+ parse_relativedelta = None
29
28
 
30
29
 
31
30
  class DurationField(fields.DurationField):
32
31
  def to_internal_value(self, value):
33
- if isinstance(value, datetime.timedelta):
32
+ if isinstance(value, relativedelta):
34
33
  return value
35
34
  try:
36
- parsed = isodate.parse_duration(str(value))
37
- except isodate.ISO8601Error:
35
+ return parse_relativedelta(str(value))
36
+ except ValueError:
38
37
  self.fail("invalid", format="P(n)Y(n)M(n)D")
39
- else:
40
- if isinstance(parsed, isodate.Duration):
41
- # TODO: start should probably be a proper object, but we should
42
- # really switch to relativedeltafield
43
- parsed = parsed.totimedelta(start=datetime.datetime.now())
44
- assert isinstance(parsed, datetime.timedelta)
45
- return parsed
46
38
 
47
39
  def to_representation(self, value) -> Optional[str]:
48
- if relativedelta and isinstance(value, relativedelta):
49
- # relativedeltafield 1.1.2 returns a relativedelta() object with no duration,
50
- # to keep behaviour consistent with older versions, change that to `None`
51
- if not value:
52
- return None
40
+ if isinstance(value, relativedelta):
53
41
  return format_relativedelta(value)
54
-
55
- return isodate.duration_isoformat(value)
42
+ return None
56
43
 
57
44
 
58
45
  class FieldValidationErrorSerializer(serializers.Serializer):