python3-commons 0.20.6__tar.gz → 0.20.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 (78) hide show
  1. {python3_commons-0.20.6/src/python3_commons.egg-info → python3_commons-0.20.8}/PKG-INFO +1 -1
  2. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/auth.py +6 -4
  3. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/db/__init__.py +15 -18
  4. {python3_commons-0.20.6 → python3_commons-0.20.8/src/python3_commons.egg-info}/PKG-INFO +1 -1
  5. {python3_commons-0.20.6 → python3_commons-0.20.8}/.coveragerc +0 -0
  6. {python3_commons-0.20.6 → python3_commons-0.20.8}/.devcontainer/Dockerfile +0 -0
  7. {python3_commons-0.20.6 → python3_commons-0.20.8}/.devcontainer/devcontainer.json +0 -0
  8. {python3_commons-0.20.6 → python3_commons-0.20.8}/.devcontainer/docker-compose.yml +0 -0
  9. {python3_commons-0.20.6 → python3_commons-0.20.8}/.env_template +0 -0
  10. {python3_commons-0.20.6 → python3_commons-0.20.8}/.github/workflows/checks.yml +0 -0
  11. {python3_commons-0.20.6 → python3_commons-0.20.8}/.github/workflows/python-publish.yaml +0 -0
  12. {python3_commons-0.20.6 → python3_commons-0.20.8}/.github/workflows/release-on-tag-push.yml +0 -0
  13. {python3_commons-0.20.6 → python3_commons-0.20.8}/.gitignore +0 -0
  14. {python3_commons-0.20.6 → python3_commons-0.20.8}/.pre-commit-config.yaml +0 -0
  15. {python3_commons-0.20.6 → python3_commons-0.20.8}/.python-version +0 -0
  16. {python3_commons-0.20.6 → python3_commons-0.20.8}/AUTHORS.rst +0 -0
  17. {python3_commons-0.20.6 → python3_commons-0.20.8}/CHANGELOG.rst +0 -0
  18. {python3_commons-0.20.6 → python3_commons-0.20.8}/LICENSE +0 -0
  19. {python3_commons-0.20.6 → python3_commons-0.20.8}/README.md +0 -0
  20. {python3_commons-0.20.6 → python3_commons-0.20.8}/README.rst +0 -0
  21. {python3_commons-0.20.6 → python3_commons-0.20.8}/docs/Makefile +0 -0
  22. {python3_commons-0.20.6 → python3_commons-0.20.8}/docs/_static/.gitignore +0 -0
  23. {python3_commons-0.20.6 → python3_commons-0.20.8}/docs/authors.rst +0 -0
  24. {python3_commons-0.20.6 → python3_commons-0.20.8}/docs/changelog.rst +0 -0
  25. {python3_commons-0.20.6 → python3_commons-0.20.8}/docs/conf.py +0 -0
  26. {python3_commons-0.20.6 → python3_commons-0.20.8}/docs/index.rst +0 -0
  27. {python3_commons-0.20.6 → python3_commons-0.20.8}/docs/license.rst +0 -0
  28. {python3_commons-0.20.6 → python3_commons-0.20.8}/pyproject.toml +0 -0
  29. {python3_commons-0.20.6 → python3_commons-0.20.8}/setup.cfg +0 -0
  30. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/__init__.py +0 -0
  31. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/api_client.py +0 -0
  32. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/async_functools.py +0 -0
  33. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/audit.py +0 -0
  34. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/cache.py +0 -0
  35. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/conf.py +0 -0
  36. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/db/helpers.py +0 -0
  37. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/db/models/__init__.py +0 -0
  38. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/db/models/auth.py +0 -0
  39. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/db/models/common.py +0 -0
  40. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/db/models/rbac.py +0 -0
  41. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/db/models/users.py +0 -0
  42. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/exceptions.py +0 -0
  43. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/fs.py +0 -0
  44. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/generators.py +0 -0
  45. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/helpers.py +0 -0
  46. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/log/__init__.py +0 -0
  47. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/log/filters.py +0 -0
  48. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/log/formatters.py +0 -0
  49. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/object_storage.py +0 -0
  50. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/permissions.py +0 -0
  51. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/serializers/__init__.py +0 -0
  52. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/serializers/common.py +0 -0
  53. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/serializers/json.py +0 -0
  54. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/serializers/msgpack.py +0 -0
  55. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/serializers/msgspec.py +0 -0
  56. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons/soap_client.py +0 -0
  57. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons.egg-info/SOURCES.txt +0 -0
  58. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons.egg-info/dependency_links.txt +0 -0
  59. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons.egg-info/requires.txt +0 -0
  60. {python3_commons-0.20.6 → python3_commons-0.20.8}/src/python3_commons.egg-info/top_level.txt +0 -0
  61. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/__init__.py +0 -0
  62. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/integration/__init__.py +0 -0
  63. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/integration/conftest.py +0 -0
  64. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/integration/test_auth.py +0 -0
  65. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/integration/test_cache.py +0 -0
  66. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/integration/test_osc.py +0 -0
  67. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/__init__.py +0 -0
  68. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/conftest.py +0 -0
  69. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/db/__init__.py +0 -0
  70. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/db/test_async_session_manager.py +0 -0
  71. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/log/__init__.py +0 -0
  72. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/log/test_formatters.py +0 -0
  73. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/test_async_functools.py +0 -0
  74. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/test_audit.py +0 -0
  75. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/test_helpers.py +0 -0
  76. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/test_msgpack.py +0 -0
  77. {python3_commons-0.20.6 → python3_commons-0.20.8}/tests/unit/test_msgspec.py +0 -0
  78. {python3_commons-0.20.6 → python3_commons-0.20.8}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-commons
3
- Version: 0.20.6
3
+ Version: 0.20.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
@@ -17,7 +17,9 @@ except ImportError as e:
17
17
  import msgspec
18
18
 
19
19
  logger = logging.getLogger(__name__)
20
- _OIDC_LOCK = threading.Lock()
20
+ _OIDC_CONFIG_LOCK = threading.Lock()
21
+ _OIDC_JWKS_LOCK = threading.Lock()
22
+ _OIDC_SESSION_LOCK = threading.Lock()
21
23
 
22
24
 
23
25
  class TokenData(msgspec.Struct):
@@ -101,7 +103,7 @@ class OIDCClient:
101
103
  if self._session:
102
104
  return self._session
103
105
 
104
- with _OIDC_LOCK:
106
+ with _OIDC_SESSION_LOCK:
105
107
  if self._session:
106
108
  return self._session
107
109
 
@@ -145,7 +147,7 @@ class OIDCClient:
145
147
  if self._config:
146
148
  return self._config
147
149
 
148
- with _OIDC_LOCK:
150
+ with _OIDC_CONFIG_LOCK:
149
151
  if self._config:
150
152
  return self._config
151
153
 
@@ -180,7 +182,7 @@ class OIDCClient:
180
182
  if self._jwks:
181
183
  return self._jwks
182
184
 
183
- with _OIDC_LOCK:
185
+ with _OIDC_JWKS_LOCK:
184
186
  if self._jwks:
185
187
  return self._jwks
186
188
 
@@ -1,4 +1,3 @@
1
- import asyncio
2
1
  import contextlib
3
2
  import logging
4
3
  import time
@@ -159,19 +158,18 @@ class AsyncSessionManager:
159
158
  logger.debug('Acquiring session for %r', name)
160
159
 
161
160
  try:
162
- async with asyncio.timeout(self.pool_acquire_timeout):
163
- async with session_maker() as session:
164
- session_acquired = True
165
- elapsed = time.monotonic() - t0
166
- logger.debug('Session acquired for %r in %.3fs', name, elapsed)
167
-
168
- try:
169
- yield session
170
- except Exception:
171
- logger.exception('Database communication error for %r; rolling back', name)
172
- await session.rollback()
173
-
174
- raise
161
+ async with session_maker() as session:
162
+ session_acquired = True
163
+ elapsed = time.monotonic() - t0
164
+ logger.debug('Session acquired for %r in %.3fs', name, elapsed)
165
+
166
+ try:
167
+ yield session
168
+ except Exception:
169
+ logger.exception('Database communication error for %r; rolling back', name)
170
+ await session.rollback()
171
+
172
+ raise
175
173
  except TimeoutError as e:
176
174
  if session_acquired:
177
175
  raise
@@ -230,10 +228,9 @@ async def is_healthy(
230
228
  t0 = time.monotonic()
231
229
 
232
230
  try:
233
- async with asyncio.timeout(timeout):
234
- async with engine.begin() as conn:
235
- result = await conn.execute(text('SELECT 1'))
236
- healthy = result.scalar() == 1
231
+ async with engine.begin() as conn:
232
+ result = await conn.execute(text('SELECT 1'))
233
+ healthy = result.scalar() == 1
237
234
 
238
235
  elapsed = time.monotonic() - t0
239
236
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-commons
3
- Version: 0.20.6
3
+ Version: 0.20.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