Global thread context manager
Project description
global-manager
Global thread context manager.
from typing import Optional
import dataclasses
import logging
from global_manager import GlobalManager
logger = logging.getLogger('my_view')
@dataclasses.dataclass
class UserContext:
"""Some context"""
ip: str
profile_id: int
class UserContextManager(GlobalManager):
@classmethod
def get_current_user_context(cls) -> Optional[UserContext]:
"""a business meaning method name is a good practice"""
return cls.get_current_context()
def my_func():
user_context: Optional[UserContext] = UserContextManager.get_current_user_context()
# retrieve context
logger.debug('my_view profile_id=%s, ip=%s', user_context.profile_id, user_context.ip)
# other logic ...
# some where in code, m.b. in web framework
def my_view(request):
# Imagine that the data is obtained from the request
user_context = UserContext(ip='127.0.0.1', profile_id=1)
with UserContext(user_context):
return my_func()
Context in context
with UserContext(uc1):
UserContext.get_current_user_context() # uc1 context
with UserContext(uc2):
UserContext.get_current_user_context() # uc2 context
UserContext.get_current_user_context() # uc1 context
UserContext.get_current_user_context() # None
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
global_manager-1.0.0.tar.gz
(2.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file global_manager-1.0.0.tar.gz.
File metadata
- Download URL: global_manager-1.0.0.tar.gz
- Upload date:
- Size: 2.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abbd6a7d679fbfea9bed288d6e9071558610ab18d3125735a109818bb270b655
|
|
| MD5 |
d269c885b34d7a1d21dc421b76b48138
|
|
| BLAKE2b-256 |
0d6614b589dddd4cc1cde727f4a2709105a979e9de6384afe7d0aeab2b8d2fd9
|
File details
Details for the file global_manager-1.0.0-py3-none-any.whl.
File metadata
- Download URL: global_manager-1.0.0-py3-none-any.whl
- Upload date:
- Size: 3.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c1dd2c87fb1c478e4be1163511d7ef2b3300d2e6bcad1496e9b4536074a64dd
|
|
| MD5 |
efe18de6ee66f43311ed965468d09a39
|
|
| BLAKE2b-256 |
61637d951e75a7e40b1fb73f5b82062b1d423048b5dba7d34ce30f211f235899
|