usso 0.24.7__tar.gz → 0.24.9__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 (27) hide show
  1. {usso-0.24.7/src/usso.egg-info → usso-0.24.9}/PKG-INFO +1 -1
  2. {usso-0.24.7 → usso-0.24.9}/pyproject.toml +1 -1
  3. {usso-0.24.7 → usso-0.24.9}/src/usso/async_session.py +33 -1
  4. {usso-0.24.7 → usso-0.24.9/src/usso.egg-info}/PKG-INFO +1 -1
  5. {usso-0.24.7 → usso-0.24.9}/LICENSE.txt +0 -0
  6. {usso-0.24.7 → usso-0.24.9}/README.md +0 -0
  7. {usso-0.24.7 → usso-0.24.9}/setup.cfg +0 -0
  8. {usso-0.24.7 → usso-0.24.9}/src/usso/__init__.py +0 -0
  9. {usso-0.24.7 → usso-0.24.9}/src/usso/api.py +0 -0
  10. {usso-0.24.7 → usso-0.24.9}/src/usso/async_api.py +0 -0
  11. {usso-0.24.7 → usso-0.24.9}/src/usso/b64tools.py +0 -0
  12. {usso-0.24.7 → usso-0.24.9}/src/usso/core.py +0 -0
  13. {usso-0.24.7 → usso-0.24.9}/src/usso/django/__init__.py +0 -0
  14. {usso-0.24.7 → usso-0.24.9}/src/usso/django/middleware.py +0 -0
  15. {usso-0.24.7 → usso-0.24.9}/src/usso/exceptions.py +0 -0
  16. {usso-0.24.7 → usso-0.24.9}/src/usso/fastapi/__init__.py +0 -0
  17. {usso-0.24.7 → usso-0.24.9}/src/usso/fastapi/integration.py +0 -0
  18. {usso-0.24.7 → usso-0.24.9}/src/usso/package_data.dat +0 -0
  19. {usso-0.24.7 → usso-0.24.9}/src/usso/session.py +0 -0
  20. {usso-0.24.7 → usso-0.24.9}/src/usso.egg-info/SOURCES.txt +0 -0
  21. {usso-0.24.7 → usso-0.24.9}/src/usso.egg-info/dependency_links.txt +0 -0
  22. {usso-0.24.7 → usso-0.24.9}/src/usso.egg-info/entry_points.txt +0 -0
  23. {usso-0.24.7 → usso-0.24.9}/src/usso.egg-info/requires.txt +0 -0
  24. {usso-0.24.7 → usso-0.24.9}/src/usso.egg-info/top_level.txt +0 -0
  25. {usso-0.24.7 → usso-0.24.9}/tests/test_api.py +0 -0
  26. {usso-0.24.7 → usso-0.24.9}/tests/test_core.py +0 -0
  27. {usso-0.24.7 → usso-0.24.9}/tests/test_simple.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: usso
3
- Version: 0.24.7
3
+ Version: 0.24.9
4
4
  Summary: A plug-and-play client for integrating universal single sign-on (SSO) with Python frameworks, enabling secure and seamless authentication across microservices.
5
5
  Author-email: Mahdi Kiani <mahdikiany@gmail.com>
6
6
  Maintainer-email: Mahdi Kiani <mahdikiany@gmail.com>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "usso"
7
- version = "0.24.7"
7
+ version = "0.24.9"
8
8
  description = "A plug-and-play client for integrating universal single sign-on (SSO) with Python frameworks, enabling secure and seamless authentication across microservices."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,6 +1,7 @@
1
- from datetime import datetime
1
+ from contextlib import asynccontextmanager
2
2
  import aiohttp
3
3
  import jwt
4
+ from datetime import datetime
4
5
 
5
6
 
6
7
  class AsyncUssoSession:
@@ -51,3 +52,34 @@ class AsyncUssoSession:
51
52
  async def __aexit__(self, exc_type, exc_value, traceback):
52
53
  if self.session:
53
54
  await self.session.close() # Close the session properly
55
+
56
+ @asynccontextmanager
57
+ async def _request(self, method: str, url: str, **kwargs):
58
+ await self._ensure_valid_token() # Ensure valid token before any request
59
+ async with self.session.request(method, url, **kwargs) as response:
60
+ yield response
61
+
62
+ def get(self, url: str, **kwargs):
63
+ return self._request("GET", url, **kwargs)
64
+
65
+ def post(self, url: str, **kwargs):
66
+ return self._request("POST", url, **kwargs)
67
+
68
+ def put(self, url: str, **kwargs):
69
+ return self._request("PUT", url, **kwargs)
70
+
71
+ def patch(self, url: str, **kwargs):
72
+ return self._request("PATCH", url, **kwargs)
73
+
74
+ def delete(self, url: str, **kwargs):
75
+ return self._request("DELETE", url, **kwargs)
76
+
77
+ def head(self, url: str, **kwargs):
78
+ return self._request("HEAD", url, **kwargs)
79
+
80
+ def options(self, url: str, **kwargs):
81
+ return self._request("OPTIONS", url, **kwargs)
82
+
83
+ async def close(self):
84
+ await self.session.close()
85
+ self.session = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: usso
3
- Version: 0.24.7
3
+ Version: 0.24.9
4
4
  Summary: A plug-and-play client for integrating universal single sign-on (SSO) with Python frameworks, enabling secure and seamless authentication across microservices.
5
5
  Author-email: Mahdi Kiani <mahdikiany@gmail.com>
6
6
  Maintainer-email: Mahdi Kiani <mahdikiany@gmail.com>
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