python3-commons 0.16.7__tar.gz → 0.16.8__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 (73) hide show
  1. {python3_commons-0.16.7 → python3_commons-0.16.8}/PKG-INFO +2 -2
  2. {python3_commons-0.16.7 → python3_commons-0.16.8}/pyproject.toml +1 -1
  3. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/log/formatters.py +8 -7
  4. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons.egg-info/PKG-INFO +2 -2
  5. {python3_commons-0.16.7 → python3_commons-0.16.8}/uv.lock +13 -13
  6. {python3_commons-0.16.7 → python3_commons-0.16.8}/.coveragerc +0 -0
  7. {python3_commons-0.16.7 → python3_commons-0.16.8}/.devcontainer/Dockerfile +0 -0
  8. {python3_commons-0.16.7 → python3_commons-0.16.8}/.devcontainer/devcontainer.json +0 -0
  9. {python3_commons-0.16.7 → python3_commons-0.16.8}/.devcontainer/docker-compose.yml +0 -0
  10. {python3_commons-0.16.7 → python3_commons-0.16.8}/.env_template +0 -0
  11. {python3_commons-0.16.7 → python3_commons-0.16.8}/.github/workflows/checks.yml +0 -0
  12. {python3_commons-0.16.7 → python3_commons-0.16.8}/.github/workflows/python-publish.yaml +0 -0
  13. {python3_commons-0.16.7 → python3_commons-0.16.8}/.github/workflows/release-on-tag-push.yml +0 -0
  14. {python3_commons-0.16.7 → python3_commons-0.16.8}/.gitignore +0 -0
  15. {python3_commons-0.16.7 → python3_commons-0.16.8}/.pre-commit-config.yaml +0 -0
  16. {python3_commons-0.16.7 → python3_commons-0.16.8}/.python-version +0 -0
  17. {python3_commons-0.16.7 → python3_commons-0.16.8}/AUTHORS.rst +0 -0
  18. {python3_commons-0.16.7 → python3_commons-0.16.8}/CHANGELOG.rst +0 -0
  19. {python3_commons-0.16.7 → python3_commons-0.16.8}/LICENSE +0 -0
  20. {python3_commons-0.16.7 → python3_commons-0.16.8}/README.md +0 -0
  21. {python3_commons-0.16.7 → python3_commons-0.16.8}/README.rst +0 -0
  22. {python3_commons-0.16.7 → python3_commons-0.16.8}/docs/Makefile +0 -0
  23. {python3_commons-0.16.7 → python3_commons-0.16.8}/docs/_static/.gitignore +0 -0
  24. {python3_commons-0.16.7 → python3_commons-0.16.8}/docs/authors.rst +0 -0
  25. {python3_commons-0.16.7 → python3_commons-0.16.8}/docs/changelog.rst +0 -0
  26. {python3_commons-0.16.7 → python3_commons-0.16.8}/docs/conf.py +0 -0
  27. {python3_commons-0.16.7 → python3_commons-0.16.8}/docs/index.rst +0 -0
  28. {python3_commons-0.16.7 → python3_commons-0.16.8}/docs/license.rst +0 -0
  29. {python3_commons-0.16.7 → python3_commons-0.16.8}/setup.cfg +0 -0
  30. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/__init__.py +0 -0
  31. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/api_client.py +0 -0
  32. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/async_functools.py +0 -0
  33. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/audit.py +0 -0
  34. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/auth.py +0 -0
  35. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/cache.py +0 -0
  36. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/conf.py +0 -0
  37. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/db/__init__.py +0 -0
  38. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/db/helpers.py +0 -0
  39. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/db/models/__init__.py +0 -0
  40. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/db/models/auth.py +0 -0
  41. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/db/models/common.py +0 -0
  42. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/db/models/rbac.py +0 -0
  43. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/db/models/users.py +0 -0
  44. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/exceptions.py +0 -0
  45. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/fs.py +0 -0
  46. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/generators.py +0 -0
  47. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/helpers.py +0 -0
  48. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/log/__init__.py +0 -0
  49. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/log/filters.py +0 -0
  50. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/object_storage.py +0 -0
  51. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/permissions.py +0 -0
  52. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/serializers/__init__.py +0 -0
  53. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/serializers/common.py +0 -0
  54. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/serializers/json.py +0 -0
  55. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/serializers/msgpack.py +0 -0
  56. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons/serializers/msgspec.py +0 -0
  57. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons.egg-info/SOURCES.txt +0 -0
  58. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons.egg-info/dependency_links.txt +0 -0
  59. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons.egg-info/requires.txt +0 -0
  60. {python3_commons-0.16.7 → python3_commons-0.16.8}/src/python3_commons.egg-info/top_level.txt +0 -0
  61. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/__init__.py +0 -0
  62. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/integration/__init__.py +0 -0
  63. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/integration/test_cache.py +0 -0
  64. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/integration/test_osc.py +0 -0
  65. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/__init__.py +0 -0
  66. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/conftest.py +0 -0
  67. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/log/__init__.py +0 -0
  68. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/log/test_formatters.py +0 -0
  69. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/test_async_functools.py +0 -0
  70. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/test_audit.py +0 -0
  71. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/test_helpers.py +0 -0
  72. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/test_msgpack.py +0 -0
  73. {python3_commons-0.16.7 → python3_commons-0.16.8}/tests/unit/test_msgspec.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-commons
3
- Version: 0.16.7
3
+ Version: 0.16.8
4
4
  Summary: Re-usable Python3 code
5
5
  Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
6
6
  License-Expression: GPL-3.0
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://github.com/kamikaze/python3-commons
8
8
  Project-URL: Documentation, https://github.com/kamikaze/python3-commons/wiki
9
9
  Classifier: Development Status :: 4 - Beta
10
10
  Classifier: Programming Language :: Python
11
- Requires-Python: <3.15.0,>=3.14.4
11
+ Requires-Python: <3.15.0,>=3.14.0
12
12
  Description-Content-Type: text/x-rst
13
13
  License-File: LICENSE
14
14
  License-File: AUTHORS.rst
@@ -16,7 +16,7 @@ classifiers = [
16
16
  "Programming Language :: Python"
17
17
  ]
18
18
  keywords = []
19
- requires-python = ">=3.14.4,<3.15.0"
19
+ requires-python = ">=3.14.0,<3.15.0"
20
20
  dependencies = [
21
21
  "aiobotocore~=3.5.0",
22
22
  "aiohttp[speedups]>=3.13.5,<3.15.0",
@@ -71,7 +71,7 @@ class JSONFormatter(logging.Formatter):
71
71
  message = str(record.msg)
72
72
 
73
73
  timestamp = datetime.fromtimestamp(record.created, UTC).isoformat().replace('+00:00', 'Z')
74
- log: dict[str, Any] = {
74
+ log_dict: dict[str, Any] = {
75
75
  'message': message,
76
76
  'level': record.levelname,
77
77
  'logger': record.name,
@@ -81,8 +81,8 @@ class JSONFormatter(logging.Formatter):
81
81
  if (exc_info := record.exc_info) and exc_info[0] is not None:
82
82
  exc_type, exc_value, exc_tb = exc_info
83
83
 
84
- log['exc_type'] = f'{exc_type.__module__}.{exc_type.__qualname__}'
85
- log['exc_value'] = str(exc_value)
84
+ log_dict['exc_type'] = f'{exc_type.__module__}.{exc_type.__qualname__}'
85
+ log_dict['exc_value'] = str(exc_value)
86
86
 
87
87
  tb = ''.join(traceback.format_exception(exc_type, exc_value, exc_tb)).rstrip()
88
88
  cap = self._max_tb_chars
@@ -90,18 +90,19 @@ class JSONFormatter(logging.Formatter):
90
90
  if cap and len(tb) > cap:
91
91
  tb = tb[:cap] + '\n... <truncated>'
92
92
 
93
- log['exc_traceback'] = tb
93
+ log_dict['exc_traceback'] = tb
94
94
 
95
95
  record_dict = record.__dict__
96
96
  std_log_fields = _STD_LOG_FIELDS
97
97
 
98
98
  if len(record_dict) > len(std_log_fields):
99
99
  normalize = _normalize
100
- out_set = log.__setitem__
100
+ log_dict_set = log_dict.__setitem__
101
101
 
102
102
  for k, v in record_dict.items():
103
103
  if k[0] == '_' or k in std_log_fields:
104
104
  continue
105
- out_set(k, normalize(v))
106
105
 
107
- return self._encoder.encode(log).decode('utf-8')
106
+ log_dict_set(k, normalize(v))
107
+
108
+ return self._encoder.encode(log_dict).decode('utf-8')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-commons
3
- Version: 0.16.7
3
+ Version: 0.16.8
4
4
  Summary: Re-usable Python3 code
5
5
  Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
6
6
  License-Expression: GPL-3.0
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://github.com/kamikaze/python3-commons
8
8
  Project-URL: Documentation, https://github.com/kamikaze/python3-commons/wiki
9
9
  Classifier: Development Status :: 4 - Beta
10
10
  Classifier: Programming Language :: Python
11
- Requires-Python: <3.15.0,>=3.14.4
11
+ Requires-Python: <3.15.0,>=3.14.0
12
12
  Description-Content-Type: text/x-rst
13
13
  License-File: LICENSE
14
14
  License-File: AUTHORS.rst
@@ -1,6 +1,6 @@
1
1
  version = 1
2
2
  revision = 3
3
- requires-python = ">=3.14.4, <3.15.0"
3
+ requires-python = "==3.14.*"
4
4
 
5
5
  [[package]]
6
6
  name = "aiobotocore"
@@ -229,25 +229,25 @@ wheels = [
229
229
 
230
230
  [[package]]
231
231
  name = "build"
232
- version = "1.4.3"
232
+ version = "1.4.4"
233
233
  source = { registry = "https://pypi.org/simple" }
234
234
  dependencies = [
235
235
  { name = "colorama", marker = "os_name == 'nt'" },
236
236
  { name = "packaging" },
237
237
  { name = "pyproject-hooks" },
238
238
  ]
239
- sdist = { url = "https://files.pythonhosted.org/packages/3f/16/4b272700dea44c1d2e8ca963ebb3c684efe22b3eba8cfa31c5fdb60de707/build-1.4.3.tar.gz", hash = "sha256:5aa4231ae0e807efdf1fd0623e07366eca2ab215921345a2e38acdd5d0fa0a74", size = 89314, upload-time = "2026-04-10T21:25:40.857Z" }
239
+ sdist = { url = "https://files.pythonhosted.org/packages/02/ec/bf5ae0a7e5ab57abe8aabdd0759c971883895d1a20c49ae99f8146840c3c/build-1.4.4.tar.gz", hash = "sha256:f832ae053061f3fb524af812dc94b8b84bac6880cd587630e3b5d91a6a9c1703", size = 89220, upload-time = "2026-04-22T20:53:44.807Z" }
240
240
  wheels = [
241
- { url = "https://files.pythonhosted.org/packages/b2/30/f169e1d8b2071beaf8b97088787e30662b1d8fb82f8c0941d14678c0cbf1/build-1.4.3-py3-none-any.whl", hash = "sha256:1bc22b19b383303de8f2c8554c9a32894a58d3f185fe3756b0b20d255bee9a38", size = 26171, upload-time = "2026-04-10T21:25:39.671Z" },
241
+ { url = "https://files.pythonhosted.org/packages/fa/88/6764e7a109dd84294850741501145da90d13cdeac9d4e614929464a37420/build-1.4.4-py3-none-any.whl", hash = "sha256:8c3f48a6090b39edec1a273d2d57949aaf13723b01e02f9d518396887519f64d", size = 25921, upload-time = "2026-04-22T20:53:43.251Z" },
242
242
  ]
243
243
 
244
244
  [[package]]
245
245
  name = "certifi"
246
- version = "2026.2.25"
246
+ version = "2026.4.22"
247
247
  source = { registry = "https://pypi.org/simple" }
248
- sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" }
248
+ sdist = { url = "https://files.pythonhosted.org/packages/25/ee/6caf7a40c36a1220410afe15a1cc64993a1f864871f698c0f93acb72842a/certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580", size = 137077, upload-time = "2026-04-22T11:26:11.191Z" }
249
249
  wheels = [
250
- { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" },
250
+ { url = "https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a", size = 135707, upload-time = "2026-04-22T11:26:09.372Z" },
251
251
  ]
252
252
 
253
253
  [[package]]
@@ -478,11 +478,11 @@ wheels = [
478
478
 
479
479
  [[package]]
480
480
  name = "idna"
481
- version = "3.12"
481
+ version = "3.13"
482
482
  source = { registry = "https://pypi.org/simple" }
483
- sdist = { url = "https://files.pythonhosted.org/packages/22/12/2948fbe5513d062169bd91f7d7b1cd97bc8894f32946b71fa39f6e63ca0c/idna-3.12.tar.gz", hash = "sha256:724e9952cc9e2bd7550ea784adb098d837ab5267ef67a1ab9cf7846bdbdd8254", size = 194350, upload-time = "2026-04-21T13:32:48.916Z" }
483
+ sdist = { url = "https://files.pythonhosted.org/packages/ce/cc/762dfb036166873f0059f3b7de4565e1b5bc3d6f28a414c13da27e442f99/idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242", size = 194210, upload-time = "2026-04-22T16:42:42.314Z" }
484
484
  wheels = [
485
- { url = "https://files.pythonhosted.org/packages/53/b2/acc33950394b3becb2b664741a0c0889c7ef9f9ffbfa8d47eddb53a50abd/idna-3.12-py3-none-any.whl", hash = "sha256:60ffaa1858fac94c9c124728c24fcde8160f3fb4a7f79aa8cdd33a9d1af60a67", size = 68634, upload-time = "2026-04-21T13:32:47.403Z" },
485
+ { url = "https://files.pythonhosted.org/packages/5d/13/ad7d7ca3808a898b4612b6fe93cde56b53f3034dcde235acb1f0e1df24c6/idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3", size = 68629, upload-time = "2026-04-22T16:42:40.909Z" },
486
486
  ]
487
487
 
488
488
  [[package]]
@@ -1299,14 +1299,14 @@ wheels = [
1299
1299
 
1300
1300
  [[package]]
1301
1301
  name = "wheel"
1302
- version = "0.46.3"
1302
+ version = "0.47.0"
1303
1303
  source = { registry = "https://pypi.org/simple" }
1304
1304
  dependencies = [
1305
1305
  { name = "packaging" },
1306
1306
  ]
1307
- sdist = { url = "https://files.pythonhosted.org/packages/89/24/a2eb353a6edac9a0303977c4cb048134959dd2a51b48a269dfc9dde00c8a/wheel-0.46.3.tar.gz", hash = "sha256:e3e79874b07d776c40bd6033f8ddf76a7dad46a7b8aa1b2787a83083519a1803", size = 60605, upload-time = "2026-01-22T12:39:49.136Z" }
1307
+ sdist = { url = "https://files.pythonhosted.org/packages/39/62/75f18a0f03b4219c456652c7780e4d749b929eb605c098ce3a5b6b6bc081/wheel-0.47.0.tar.gz", hash = "sha256:cc72bd1009ba0cf63922e28f94d9d83b920aa2bb28f798a31d0691b02fa3c9b3", size = 63854, upload-time = "2026-04-22T15:51:27.727Z" }
1308
1308
  wheels = [
1309
- { url = "https://files.pythonhosted.org/packages/87/22/b76d483683216dde3d67cba61fb2444be8d5be289bf628c13fc0fd90e5f9/wheel-0.46.3-py3-none-any.whl", hash = "sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d", size = 30557, upload-time = "2026-01-22T12:39:48.099Z" },
1309
+ { url = "https://files.pythonhosted.org/packages/87/1b/9e33c09813d65e248f7f773119148a612516a4bea93e9c6f545f78455b7c/wheel-0.47.0-py3-none-any.whl", hash = "sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced", size = 32218, upload-time = "2026-04-22T15:51:26.296Z" },
1310
1310
  ]
1311
1311
 
1312
1312
  [[package]]