this repo has no description
1#!/usr/bin/env python3
2# Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com)
3
4from _builtins import _address, _builtin, _ContextVar_guard, _Token_guard, _Unbound
5
6
7def _ContextVar_default_value(ctxvar):
8 _builtin()
9
10
11def _ContextVar_name(ctxvar):
12 _builtin()
13
14
15def _Token_used(token):
16 _builtin()
17
18
19def _Token_var(token):
20 _builtin()
21
22
23def _thread_context():
24 _builtin()
25
26
27class Context(bootstrap=True):
28 def __contains__(self, var):
29 _builtin()
30
31 def __eq__(self, other):
32 _builtin()
33
34 def __getitem__(self, var):
35 _builtin()
36
37 __hash__ = None
38
39 def __iter__(self):
40 _builtin()
41
42 @staticmethod
43 def __new__(cls):
44 _builtin()
45
46 def __len__(self):
47 _builtin()
48
49 def copy(self):
50 _builtin()
51
52 def get(self, var, default=None):
53 _builtin()
54
55 def items(self):
56 _builtin()
57
58 def keys(self):
59 _builtin()
60
61 def run(self, callable, *args, **kwargs):
62 _builtin()
63
64 def values(self):
65 _builtin()
66
67
68class ContextVar(bootstrap=True):
69 @classmethod
70 def __class_getitem__(cls, item):
71 if cls is not ContextVar:
72 raise TypeError(
73 f"descriptor '__class_getitem__' requires a subtype of 'ContextVar' but received '{cls.__name__}'"
74 )
75 return cls
76
77 @staticmethod
78 def __new__(cls, name, default=_Unbound):
79 _builtin()
80
81 def __repr__(self):
82 _ContextVar_guard(self)
83 name = _ContextVar_name(self)
84 default_value = _ContextVar_default_value(self)
85 default_value_str = (
86 "" if default_value is _Unbound else f"default={default_value} "
87 )
88 return f"<ContextVar name='{name}' {default_value_str}at {_address(self):#x}>"
89
90 def get(self, default=_Unbound):
91 _builtin()
92
93 def reset(self, token):
94 _builtin()
95
96 def set(self, value):
97 _builtin()
98
99
100class Token(bootstrap=True):
101 MISSING = _Unbound
102
103 @staticmethod
104 def __new__(cls, context, var, old_value):
105 raise RuntimeError("Tokens can only be created by ContextVars")
106
107 def __repr__(self):
108 _Token_guard(self)
109 used = "used " if _Token_used(self) else ""
110 return f"<Token {used}var={_Token_var(self)} at {_address(self):#x}>"
111
112
113def copy_context():
114 return _thread_context().copy()