Skip to content

Commit 5418828

Browse files
committed
WIP
1 parent f61e5f2 commit 5418828

File tree

1 file changed

+1
-43
lines changed

1 file changed

+1
-43
lines changed

basedtyping/runtime_only.py

Lines changed: 1 addition & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -149,19 +149,9 @@ def _eval_type(t, globalns, localns, recursive_guard=frozenset()):
149149
return t
150150

151151

152-
class ForwardRef(_Final, _root=True):
152+
class BasedForwardRef(_Final, _root=True):
153153
"""Internal wrapper to hold a forward reference."""
154154

155-
__slots__ = (
156-
"__forward_arg__",
157-
"__forward_code__",
158-
"__forward_evaluated__",
159-
"__forward_value__",
160-
"__forward_is_argument__",
161-
"__forward_is_class__",
162-
"__forward_module__",
163-
)
164-
165155
def __init__(self, arg, is_argument=True, module=None, *, is_class=False):
166156
if isinstance(arg, str):
167157
# If we do `def f(*args: *Ts)`, then we'll have `arg = '*Ts'`.
@@ -181,9 +171,6 @@ def __init__(self, arg, is_argument=True, module=None, *, is_class=False):
181171
code = compile(arg_to_compile, "<string>", "eval")
182172
except SyntaxError:
183173
raise SyntaxError(f"Forward reference must be an expression -- got {arg!r}")
184-
except TypeError as t:
185-
print(arg_to_compile.body, t)
186-
...
187174
self.__forward_arg__ = arg
188175
self.__forward_code__ = code
189176
self.__forward_evaluated__ = False
@@ -226,35 +213,6 @@ def _evaluate(self, globalns, localns, recursive_guard):
226213
self.__forward_evaluated__ = True
227214
return self.__forward_value__
228215

229-
def __eq__(self, other):
230-
if not isinstance(other, ForwardRef):
231-
return NotImplemented
232-
if self.__forward_evaluated__ and other.__forward_evaluated__:
233-
return (
234-
self.__forward_arg__ == other.__forward_arg__
235-
and self.__forward_value__ == other.__forward_value__
236-
)
237-
return (
238-
self.__forward_arg__ == other.__forward_arg__
239-
and self.__forward_module__ == other.__forward_module__
240-
)
241-
242-
def __hash__(self):
243-
return hash((self.__forward_arg__, self.__forward_module__))
244-
245-
def __or__(self, other):
246-
return Union[self, other]
247-
248-
def __ror__(self, other):
249-
return Union[other, self]
250-
251-
def __repr__(self):
252-
if self.__forward_module__ is None:
253-
module_repr = ""
254-
else:
255-
module_repr = f", module={self.__forward_module__!r}"
256-
return f"ForwardRef({self.__forward_arg__!r}{module_repr})"
257-
258216

259217
class BasedTypeParser(NodeTransformer):
260218
in_subscript = 0

0 commit comments

Comments
 (0)