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.
Files changed (108) hide show
  1. {csu-2.5.7 → csu-2.6.0}/.bumpversion.cfg +1 -1
  2. {csu-2.5.7 → csu-2.6.0}/.cookiecutterrc +1 -1
  3. {csu-2.5.7 → csu-2.6.0}/PKG-INFO +3 -3
  4. {csu-2.5.7 → csu-2.6.0}/README.rst +2 -2
  5. {csu-2.5.7 → csu-2.6.0}/pyproject.toml +1 -1
  6. {csu-2.5.7 → csu-2.6.0}/src/csu/__init__.py +1 -1
  7. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/fields.py +5 -5
  8. {csu-2.5.7 → csu-2.6.0}/src/csu/locale/ro/LC_MESSAGES/django.po +1 -1
  9. {csu-2.5.7 → csu-2.6.0}/src/csu/models.py +5 -5
  10. {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/PKG-INFO +3 -3
  11. {csu-2.5.7 → csu-2.6.0}/.coveragerc +0 -0
  12. {csu-2.5.7 → csu-2.6.0}/.editorconfig +0 -0
  13. {csu-2.5.7 → csu-2.6.0}/.github/workflows/github-actions.yml +0 -0
  14. {csu-2.5.7 → csu-2.6.0}/.pre-commit-config.yaml +0 -0
  15. {csu-2.5.7 → csu-2.6.0}/.tombi.toml +0 -0
  16. {csu-2.5.7 → csu-2.6.0}/AUTHORS.rst +0 -0
  17. {csu-2.5.7 → csu-2.6.0}/CHANGELOG.rst +0 -0
  18. {csu-2.5.7 → csu-2.6.0}/CONTRIBUTING.rst +0 -0
  19. {csu-2.5.7 → csu-2.6.0}/LICENSE +0 -0
  20. {csu-2.5.7 → csu-2.6.0}/MANIFEST.in +0 -0
  21. {csu-2.5.7 → csu-2.6.0}/ci/bootstrap.py +0 -0
  22. {csu-2.5.7 → csu-2.6.0}/ci/requirements.txt +0 -0
  23. {csu-2.5.7 → csu-2.6.0}/ci/templates/.github/workflows/github-actions.yml +0 -0
  24. {csu-2.5.7 → csu-2.6.0}/pytest.ini +0 -0
  25. {csu-2.5.7 → csu-2.6.0}/setup.cfg +0 -0
  26. {csu-2.5.7 → csu-2.6.0}/src/csu/admin.py +0 -0
  27. {csu-2.5.7 → csu-2.6.0}/src/csu/conf.py +0 -0
  28. {csu-2.5.7 → csu-2.6.0}/src/csu/consts.py +0 -0
  29. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/__init__.py +0 -0
  30. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/auth.py +0 -0
  31. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/forms.py +0 -0
  32. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/perms.py +0 -0
  33. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/phonenumber.py +0 -0
  34. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/serializers.py +0 -0
  35. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_auth.py +0 -0
  36. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_fields.py +0 -0
  37. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_forms.py +0 -0
  38. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_phonenumber.py +0 -0
  39. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/test_serializers.py +0 -0
  40. {csu-2.5.7 → csu-2.6.0}/src/csu/drf/views.py +0 -0
  41. {csu-2.5.7 → csu-2.6.0}/src/csu/enums.py +0 -0
  42. {csu-2.5.7 → csu-2.6.0}/src/csu/env.py +0 -0
  43. {csu-2.5.7 → csu-2.6.0}/src/csu/exceptions.py +0 -0
  44. {csu-2.5.7 → csu-2.6.0}/src/csu/export.py +0 -0
  45. {csu-2.5.7 → csu-2.6.0}/src/csu/fixups.py +0 -0
  46. {csu-2.5.7 → csu-2.6.0}/src/csu/forms/__init__.py +0 -0
  47. {csu-2.5.7 → csu-2.6.0}/src/csu/forms/crispy.py +0 -0
  48. {csu-2.5.7 → csu-2.6.0}/src/csu/forms/fields.py +0 -0
  49. {csu-2.5.7 → csu-2.6.0}/src/csu/gettext.py +0 -0
  50. {csu-2.5.7 → csu-2.6.0}/src/csu/gettext_lazy.py +0 -0
  51. {csu-2.5.7 → csu-2.6.0}/src/csu/locale/ro/LC_MESSAGES/django.mo +0 -0
  52. {csu-2.5.7 → csu-2.6.0}/src/csu/logging.py +0 -0
  53. {csu-2.5.7 → csu-2.6.0}/src/csu/management.py +0 -0
  54. {csu-2.5.7 → csu-2.6.0}/src/csu/query.py +0 -0
  55. {csu-2.5.7 → csu-2.6.0}/src/csu/routers.py +0 -0
  56. {csu-2.5.7 → csu-2.6.0}/src/csu/service.py +0 -0
  57. {csu-2.5.7 → csu-2.6.0}/src/csu/templates/api_exception.html +0 -0
  58. {csu-2.5.7 → csu-2.6.0}/src/csu/templates/forms/widgets/opaquewidget.html +0 -0
  59. {csu-2.5.7 → csu-2.6.0}/src/csu/test_consts.py +0 -0
  60. {csu-2.5.7 → csu-2.6.0}/src/csu/test_env.py +0 -0
  61. {csu-2.5.7 → csu-2.6.0}/src/csu/test_exceptions.py +0 -0
  62. {csu-2.5.7 → csu-2.6.0}/src/csu/test_management.py +0 -0
  63. {csu-2.5.7 → csu-2.6.0}/src/csu/test_service.py +0 -0
  64. {csu-2.5.7 → csu-2.6.0}/src/csu/test_timezones.py +0 -0
  65. {csu-2.5.7 → csu-2.6.0}/src/csu/test_utils.py +0 -0
  66. {csu-2.5.7 → csu-2.6.0}/src/csu/test_xml.py +0 -0
  67. {csu-2.5.7 → csu-2.6.0}/src/csu/timezones.py +0 -0
  68. {csu-2.5.7 → csu-2.6.0}/src/csu/utils.py +0 -0
  69. {csu-2.5.7 → csu-2.6.0}/src/csu/views.py +0 -0
  70. {csu-2.5.7 → csu-2.6.0}/src/csu/worker/__init__.py +0 -0
  71. {csu-2.5.7 → csu-2.6.0}/src/csu/worker/admin.py +0 -0
  72. {csu-2.5.7 → csu-2.6.0}/src/csu/worker/asgi.py +0 -0
  73. {csu-2.5.7 → csu-2.6.0}/src/csu/worker/engine.py +0 -0
  74. {csu-2.5.7 → csu-2.6.0}/src/csu/worker/enums.py +0 -0
  75. {csu-2.5.7 → csu-2.6.0}/src/csu/worker/job.py +0 -0
  76. {csu-2.5.7 → csu-2.6.0}/src/csu/worker/models.py +0 -0
  77. {csu-2.5.7 → csu-2.6.0}/src/csu/worker/registry.py +0 -0
  78. {csu-2.5.7 → csu-2.6.0}/src/csu/wsgi.py +0 -0
  79. {csu-2.5.7 → csu-2.6.0}/src/csu/xml.py +0 -0
  80. {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/SOURCES.txt +0 -0
  81. {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/dependency_links.txt +0 -0
  82. {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/requires.txt +0 -0
  83. {csu-2.5.7 → csu-2.6.0}/src/csu.egg-info/top_level.txt +0 -0
  84. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_custom_context.yaml +0 -0
  85. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_custom_context_0_retries.yaml +0 -0
  86. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_decoding.yaml +0 -0
  87. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_error.yaml +0 -0
  88. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_logging.yaml +0 -0
  89. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service/test_redirects.yaml +0 -0
  90. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service_auth/test_async.yaml +0 -0
  91. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service_auth/test_async_auth.yaml +0 -0
  92. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service_auth/test_sync.yaml +0 -0
  93. {csu-2.5.7 → csu-2.6.0}/tests/cassettes/test_service_auth/test_sync_auth.yaml +0 -0
  94. {csu-2.5.7 → csu-2.6.0}/tests/conftest.py +0 -0
  95. {csu-2.5.7 → csu-2.6.0}/tests/exampleworker.py +0 -0
  96. {csu-2.5.7 → csu-2.6.0}/tests/test_exampleworker.py +0 -0
  97. {csu-2.5.7 → csu-2.6.0}/tests/test_logging.py +0 -0
  98. {csu-2.5.7 → csu-2.6.0}/tests/test_models.py +0 -0
  99. {csu-2.5.7 → csu-2.6.0}/tests/test_service.py +0 -0
  100. {csu-2.5.7 → csu-2.6.0}/tests/test_service_auth.py +0 -0
  101. {csu-2.5.7 → csu-2.6.0}/tests/test_views.py +0 -0
  102. {csu-2.5.7 → csu-2.6.0}/tests/test_worker.py +0 -0
  103. {csu-2.5.7 → csu-2.6.0}/tests/testproject/__init__.py +0 -0
  104. {csu-2.5.7 → csu-2.6.0}/tests/testproject/fixtures/testuser.json +0 -0
  105. {csu-2.5.7 → csu-2.6.0}/tests/testproject/models.py +0 -0
  106. {csu-2.5.7 → csu-2.6.0}/tests/testproject/settings.py +0 -0
  107. {csu-2.5.7 → csu-2.6.0}/tests/testproject/urls.py +0 -0
  108. {csu-2.5.7 → csu-2.6.0}/tox.ini +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 2.5.7
2
+ current_version = 2.6.0
3
3
  commit = True
4
4
  tag = True
5
5
 
@@ -41,7 +41,7 @@ default_context:
41
41
  sphinx_theme: furo
42
42
  test_matrix_separate_coverage: false
43
43
  tests_inside_package: true
44
- version: 2.5.7
44
+ version: 2.6.0
45
45
  version_manager: bump2version
46
46
  website: https://blog.ionelmc.ro
47
47
  year_from: '2024'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: csu
3
- Version: 2.5.7
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.5.7.svg
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.5.7...main
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.5.7.svg
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.5.7...main
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,6 +1,6 @@
1
1
  [project]
2
2
  name = "csu"
3
- version = "2.5.7"
3
+ version = "2.6.0"
4
4
  description = "Clean Slate Utils - bunch of utility code, mostly Django/DRF specific."
5
5
  requires-python = ">=3.14"
6
6
  license = "BSD-2-Clause"
@@ -2,4 +2,4 @@
2
2
  a.k.a Clean Slate Utils
3
3
  """
4
4
 
5
- __version__ = "2.5.7"
5
+ __version__ = "2.6.0"
@@ -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
- format: str
213
+ format_func: Callable
213
214
 
214
- def __init__(self, *, format=None, **kwargs):
215
- self.format = format
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
- # noinspection StrFormat
220
- return self.format.format(value)
220
+ return self.format_func(value)
221
221
 
222
222
 
223
223
  class DispatchingHyperlinkedRelatedField(HyperlinkedRelatedField):
@@ -170,7 +170,7 @@ msgid "confirmed at"
170
170
  msgstr "confirmat la"
171
171
 
172
172
  #: src/csu/models.py:66
173
- msgid "cancelled at"
173
+ msgid "canceled at"
174
174
  msgstr "anulat la"
175
175
 
176
176
  #: src/csu/models.py:113
@@ -43,7 +43,7 @@ class AbstractStatusEnum(models.Choices):
43
43
  pending = object()
44
44
  confirmed = object()
45
45
  expired = object()
46
- cancelled = object()
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
- cancelled_at = models.DateTimeField(
66
- verbose_name=_("cancelled at"),
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 is_cancelled(self):
89
- return self.status == self.status_enum_class.cancelled
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.5.7
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.5.7.svg
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.5.7...main
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
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