crypticorn-utils 0.1.1rc2__tar.gz → 0.1.2__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 (39) hide show
  1. {crypticorn_utils-0.1.1rc2/crypticorn_utils.egg-info → crypticorn_utils-0.1.2}/PKG-INFO +12 -1
  2. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/README.md +11 -0
  3. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/auth.py +11 -2
  4. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2/crypticorn_utils.egg-info}/PKG-INFO +12 -1
  5. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/pyproject.toml +1 -1
  6. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/LICENSE +0 -0
  7. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/MANIFEST.in +0 -0
  8. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/__init__.py +0 -0
  9. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/_migration.py +0 -0
  10. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/ansi_colors.py +0 -0
  11. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/decorators.py +0 -0
  12. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/enums.py +0 -0
  13. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/errors.py +0 -0
  14. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/exceptions.py +0 -0
  15. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/logging.py +0 -0
  16. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/metrics.py +0 -0
  17. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/middleware.py +0 -0
  18. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/mixins.py +0 -0
  19. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/openapi.py +0 -0
  20. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/pagination.py +0 -0
  21. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/router/admin_router.py +0 -0
  22. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/router/status_router.py +0 -0
  23. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/utils.py +0 -0
  24. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils/warnings.py +0 -0
  25. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils.egg-info/SOURCES.txt +0 -0
  26. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils.egg-info/dependency_links.txt +0 -0
  27. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils.egg-info/entry_points.txt +0 -0
  28. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils.egg-info/requires.txt +0 -0
  29. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/crypticorn_utils.egg-info/top_level.txt +0 -0
  30. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/requirements/dev.txt +0 -0
  31. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/requirements/main.txt +0 -0
  32. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/requirements/test.txt +0 -0
  33. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/setup.cfg +0 -0
  34. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/tests/test_auth_client.py +0 -0
  35. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/tests/test_common_routers.py +0 -0
  36. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/tests/test_config.py +0 -0
  37. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/tests/test_enums.py +0 -0
  38. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/tests/test_errors.py +0 -0
  39. {crypticorn_utils-0.1.1rc2 → crypticorn_utils-0.1.2}/tests/test_pagination.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn_utils
3
- Version: 0.1.1rc2
3
+ Version: 0.1.2
4
4
  Summary: Shared utilities for the Crypticorn APIs
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  License-Expression: MIT
@@ -68,6 +68,17 @@ This module serves as a central place for providing utilities for our python bac
68
68
 
69
69
  <!-- changelog-insertion -->
70
70
 
71
+ ## v0.1.2 (2025-07-22)
72
+
73
+ ### Bug Fixes
74
+
75
+ - Failing scope comparison in some environments
76
+ ([`004495d`](https://github.com/crypticorn-ai/util-libraries/commit/004495da87b973f43b3e32abe96493dac1b6204a))
77
+
78
+
79
+ ## v0.1.1 (2025-07-20)
80
+
81
+
71
82
  ## v0.1.1-rc.2 (2025-07-18)
72
83
 
73
84
  ### Bug Fixes
@@ -21,6 +21,17 @@ This module serves as a central place for providing utilities for our python bac
21
21
 
22
22
  <!-- changelog-insertion -->
23
23
 
24
+ ## v0.1.2 (2025-07-22)
25
+
26
+ ### Bug Fixes
27
+
28
+ - Failing scope comparison in some environments
29
+ ([`004495d`](https://github.com/crypticorn-ai/util-libraries/commit/004495da87b973f43b3e32abe96493dac1b6204a))
30
+
31
+
32
+ ## v0.1.1 (2025-07-20)
33
+
34
+
24
35
  ## v0.1.1-rc.2 (2025-07-18)
25
36
 
26
37
  ### Bug Fixes
@@ -80,7 +80,7 @@ class AuthHandler:
80
80
  return await self.client.login.verify_basic_auth(basic.username, basic.password)
81
81
 
82
82
  async def _validate_scopes(
83
- self, api_scopes: list[Scope], user_scopes: list[Scope]
83
+ self, api_scopes: list[str], user_scopes: list[str]
84
84
  ) -> bool:
85
85
  """
86
86
  Checks if the required scopes are a subset of the user scopes.
@@ -92,6 +92,10 @@ class AuthHandler:
92
92
  message="Insufficient scopes to access this resource (required: "
93
93
  + ", ".join(api_scopes)
94
94
  + ")",
95
+ details={
96
+ "required_scopes": api_scopes,
97
+ "granted_scopes": user_scopes,
98
+ },
95
99
  ),
96
100
  )
97
101
 
@@ -277,7 +281,12 @@ class AuthHandler:
277
281
  if res is None:
278
282
  continue
279
283
  if sec:
280
- await self._validate_scopes(sec.scopes, res.scopes)
284
+ required = [
285
+ s.value if isinstance(s, Scope) else str(s)
286
+ for s in sec.scopes
287
+ ]
288
+ granted = [str(s) for s in res.scopes]
289
+ await self._validate_scopes(required, granted)
281
290
  return res
282
291
 
283
292
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn_utils
3
- Version: 0.1.1rc2
3
+ Version: 0.1.2
4
4
  Summary: Shared utilities for the Crypticorn APIs
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  License-Expression: MIT
@@ -68,6 +68,17 @@ This module serves as a central place for providing utilities for our python bac
68
68
 
69
69
  <!-- changelog-insertion -->
70
70
 
71
+ ## v0.1.2 (2025-07-22)
72
+
73
+ ### Bug Fixes
74
+
75
+ - Failing scope comparison in some environments
76
+ ([`004495d`](https://github.com/crypticorn-ai/util-libraries/commit/004495da87b973f43b3e32abe96493dac1b6204a))
77
+
78
+
79
+ ## v0.1.1 (2025-07-20)
80
+
81
+
71
82
  ## v0.1.1-rc.2 (2025-07-18)
72
83
 
73
84
  ### Bug Fixes
@@ -5,7 +5,7 @@ readme = "README.md"
5
5
  license = "MIT"
6
6
  requires-python = ">=3.9"
7
7
  authors = [{name = "Crypticorn", email = "timon@crypticorn.com"}]
8
- version = "0.1.1-rc.2"
8
+ version = "0.1.2"
9
9
  dynamic = ["dependencies", "optional-dependencies"]
10
10
 
11
11
  classifiers = [