1from__future__importannotations 2 3fromtypingimportTYPE_CHECKING,Any 4fromweakrefimportWeakKeyDictionary 5 6ifTYPE_CHECKING: 7fromplain.httpimportRequest 8 9_request_users:WeakKeyDictionary[Request,Any|None]=WeakKeyDictionary()101112defset_request_user(request:Request,user:Any|None)->None:13"""Store the authenticated user for this request."""14_request_users[request]=user151617defget_request_user(request:Request)->Any|None:18"""19 Get the authenticated user for this request, if any.2021 Lazily loads the user from the session on first access.22 """23ifrequestnotin_request_users:24from.sessionsimportget_user2526user=get_user(request)2728# Don't need to store a bunch of None values29ifnotuser:30returnNone3132_request_users[request]=user3334return_request_users[request]