csu 2.5.7__tar.gz → 2.6.0__tar.gz
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.
- {csu-2.5.7 → csu-2.6.0}/.bumpversion.cfg +1 -1
- {csu-2.5.7 → csu-2.6.0}/.cookiecutterrc +1 -1
- {csu-2.5.7 → csu-2.6.0}/PKG-INFO +3 -3
- {csu-2.5.7 → csu-2.6.0}/README.rst +2 -2
- {csu-2.5.7 → csu-2.6.0}/pyproject.toml +1 -1
- {csu-2.5.7 → csu-2.6.0}/src/csu/__init__.py +1 -1
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/fields.py +5 -5
- {csu-2.5.7 → csu-2.6.0}/src/csu/locale/ro/LC_MESSAGES/django.po +1 -1
- {csu-2.5.7 → csu-2.6.0}/src/csu/models.py +5 -5
- {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/PKG-INFO +3 -3
- {csu-2.5.7 → csu-2.6.0}/.coveragerc +0 -0
- {csu-2.5.7 → csu-2.6.0}/.editorconfig +0 -0
- {csu-2.5.7 → csu-2.6.0}/.github/workflows/github-actions.yml +0 -0
- {csu-2.5.7 → csu-2.6.0}/.pre-commit-config.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/.tombi.toml +0 -0
- {csu-2.5.7 → csu-2.6.0}/AUTHORS.rst +0 -0
- {csu-2.5.7 → csu-2.6.0}/CHANGELOG.rst +0 -0
- {csu-2.5.7 → csu-2.6.0}/CONTRIBUTING.rst +0 -0
- {csu-2.5.7 → csu-2.6.0}/LICENSE +0 -0
- {csu-2.5.7 → csu-2.6.0}/MANIFEST.in +0 -0
- {csu-2.5.7 → csu-2.6.0}/ci/bootstrap.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/ci/requirements.txt +0 -0
- {csu-2.5.7 → csu-2.6.0}/ci/templates/.github/workflows/github-actions.yml +0 -0
- {csu-2.5.7 → csu-2.6.0}/pytest.ini +0 -0
- {csu-2.5.7 → csu-2.6.0}/setup.cfg +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/admin.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/conf.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/consts.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/__init__.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/auth.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/forms.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/perms.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/phonenumber.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/serializers.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_auth.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_fields.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_forms.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_phonenumber.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_serializers.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/drf/views.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/enums.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/env.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/exceptions.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/export.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/fixups.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/forms/__init__.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/forms/crispy.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/forms/fields.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/gettext.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/gettext_lazy.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/locale/ro/LC_MESSAGES/django.mo +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/logging.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/management.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/query.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/routers.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/service.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/templates/api_exception.html +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/templates/forms/widgets/opaquewidget.html +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/test_consts.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/test_env.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/test_exceptions.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/test_management.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/test_service.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/test_timezones.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/test_utils.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/test_xml.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/timezones.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/utils.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/views.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/worker/__init__.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/worker/admin.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/worker/asgi.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/worker/engine.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/worker/enums.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/worker/job.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/worker/models.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/worker/registry.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/wsgi.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu/xml.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/SOURCES.txt +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/dependency_links.txt +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/requires.txt +0 -0
- {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/top_level.txt +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_custom_context.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_custom_context_0_retries.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_decoding.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_error.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_logging.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_redirects.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service_auth/test_async.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service_auth/test_async_auth.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service_auth/test_sync.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service_auth/test_sync_auth.yaml +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/conftest.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/exampleworker.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/test_exampleworker.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/test_logging.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/test_models.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/test_service.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/test_service_auth.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/test_views.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/test_worker.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/testproject/__init__.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/testproject/fixtures/testuser.json +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/testproject/models.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/testproject/settings.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tests/testproject/urls.py +0 -0
- {csu-2.5.7 → csu-2.6.0}/tox.ini +0 -0
{csu-2.5.7 → csu-2.6.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: csu
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.0
|
|
4
4
|
Summary: Clean Slate Utils - bunch of utility code, mostly Django/DRF specific.
|
|
5
5
|
Author-email: Ionel Cristian Mărieș <contact@ionelmc.ro>
|
|
6
6
|
License-Expression: BSD-2-Clause
|
|
@@ -69,9 +69,9 @@ Overview
|
|
|
69
69
|
.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
|
|
70
70
|
:alt: Supported implementations
|
|
71
71
|
:target: https://pypi.org/project/csu
|
|
72
|
-
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.
|
|
72
|
+
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.6.0.svg
|
|
73
73
|
:alt: Commits since latest release
|
|
74
|
-
:target: https://github.com/ionelmc/python-csu/compare/v2.
|
|
74
|
+
:target: https://github.com/ionelmc/python-csu/compare/v2.6.0...main
|
|
75
75
|
.. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
|
|
76
76
|
:alt: Scrutinizer Status
|
|
77
77
|
:target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
|
|
@@ -34,9 +34,9 @@ Overview
|
|
|
34
34
|
.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
|
|
35
35
|
:alt: Supported implementations
|
|
36
36
|
:target: https://pypi.org/project/csu
|
|
37
|
-
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.
|
|
37
|
+
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.6.0.svg
|
|
38
38
|
:alt: Commits since latest release
|
|
39
|
-
:target: https://github.com/ionelmc/python-csu/compare/v2.
|
|
39
|
+
:target: https://github.com/ionelmc/python-csu/compare/v2.6.0...main
|
|
40
40
|
.. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
|
|
41
41
|
:alt: Scrutinizer Status
|
|
42
42
|
:target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
1
2
|
from datetime import date
|
|
2
3
|
from zoneinfo import ZoneInfo
|
|
3
4
|
|
|
@@ -209,15 +210,14 @@ class EnumField(ChoiceField):
|
|
|
209
210
|
|
|
210
211
|
|
|
211
212
|
class FormattedField(ReadOnlyField):
|
|
212
|
-
|
|
213
|
+
format_func: Callable
|
|
213
214
|
|
|
214
|
-
def __init__(self, *, format
|
|
215
|
-
self.
|
|
215
|
+
def __init__(self, *, format: Callable | str, **kwargs):
|
|
216
|
+
self.format_func = format.format if isinstance(format, str) else format
|
|
216
217
|
super().__init__(**kwargs, read_only=True)
|
|
217
218
|
|
|
218
219
|
def to_representation(self, value):
|
|
219
|
-
|
|
220
|
-
return self.format.format(value)
|
|
220
|
+
return self.format_func(value)
|
|
221
221
|
|
|
222
222
|
|
|
223
223
|
class DispatchingHyperlinkedRelatedField(HyperlinkedRelatedField):
|
|
@@ -43,7 +43,7 @@ class AbstractStatusEnum(models.Choices):
|
|
|
43
43
|
pending = object()
|
|
44
44
|
confirmed = object()
|
|
45
45
|
expired = object()
|
|
46
|
-
|
|
46
|
+
canceled = object()
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
class BaseStatusModel(BaseModel):
|
|
@@ -62,8 +62,8 @@ class BaseStatusModel(BaseModel):
|
|
|
62
62
|
db_index=True,
|
|
63
63
|
editable=False,
|
|
64
64
|
)
|
|
65
|
-
|
|
66
|
-
verbose_name=_("
|
|
65
|
+
canceled_at = models.DateTimeField(
|
|
66
|
+
verbose_name=_("canceled at"),
|
|
67
67
|
null=True,
|
|
68
68
|
default=None,
|
|
69
69
|
db_index=True,
|
|
@@ -85,8 +85,8 @@ class BaseStatusModel(BaseModel):
|
|
|
85
85
|
return self.status == self.status_enum_class.confirmed
|
|
86
86
|
|
|
87
87
|
@property
|
|
88
|
-
def
|
|
89
|
-
return self.status == self.status_enum_class.
|
|
88
|
+
def is_canceled(self):
|
|
89
|
+
return self.status == self.status_enum_class.canceled
|
|
90
90
|
|
|
91
91
|
def can_cancel(self):
|
|
92
92
|
return not self.is_confirmed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: csu
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.0
|
|
4
4
|
Summary: Clean Slate Utils - bunch of utility code, mostly Django/DRF specific.
|
|
5
5
|
Author-email: Ionel Cristian Mărieș <contact@ionelmc.ro>
|
|
6
6
|
License-Expression: BSD-2-Clause
|
|
@@ -69,9 +69,9 @@ Overview
|
|
|
69
69
|
.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/csu.svg
|
|
70
70
|
:alt: Supported implementations
|
|
71
71
|
:target: https://pypi.org/project/csu
|
|
72
|
-
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.
|
|
72
|
+
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-csu/v2.6.0.svg
|
|
73
73
|
:alt: Commits since latest release
|
|
74
|
-
:target: https://github.com/ionelmc/python-csu/compare/v2.
|
|
74
|
+
:target: https://github.com/ionelmc/python-csu/compare/v2.6.0...main
|
|
75
75
|
.. |scrutinizer| image:: https://img.shields.io/scrutinizer/quality/g/ionelmc/python-csu/main.svg
|
|
76
76
|
:alt: Scrutinizer Status
|
|
77
77
|
:target: https://scrutinizer-ci.com/g/ionelmc/python-csu/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csu-2.5.7 → csu-2.6.0}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csu-2.5.7 → csu-2.6.0}/tox.ini
RENAMED
|
File without changes
|