From 839ed5d75928c91374f7b04626401dd273496bb4 Mon Sep 17 00:00:00 2001 From: dnwpark Date: Wed, 28 Jan 2026 17:31:44 -0800 Subject: [PATCH] Remove AllOf and AnyOf. --- tests/test_type_eval.py | 168 --------------------------- typemap/type_eval/_eval_operators.py | 14 --- typemap/typing.py | 10 -- 3 files changed, 192 deletions(-) diff --git a/tests/test_type_eval.py b/tests/test_type_eval.py index 759b525..e9af28e 100644 --- a/tests/test_type_eval.py +++ b/tests/test_type_eval.py @@ -19,8 +19,6 @@ from typemap.type_eval import eval_typing from typemap.typing import ( - AllOf, - AnyOf, Attrs, Bool, FromUnion, @@ -1243,172 +1241,6 @@ def test_eval_bool_05(): assert d == Literal[False] -def test_eval_all_01(): - d = eval_typing(AllOf[()]) - assert d == _BoolLiteral[True] - - d = eval_typing(AllOf[_BoolLiteral[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AllOf[_BoolLiteral[False]]) - assert d == _BoolLiteral[False] - - d = eval_typing(AllOf[_BoolLiteral[True], _BoolLiteral[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AllOf[_BoolLiteral[True], _BoolLiteral[False]]) - assert d == _BoolLiteral[False] - d = eval_typing(AllOf[_BoolLiteral[False], _BoolLiteral[True]]) - assert d == _BoolLiteral[False] - d = eval_typing(AllOf[_BoolLiteral[False], _BoolLiteral[False]]) - assert d == _BoolLiteral[False] - - d = eval_typing(AllOf[Literal[True] | Literal[False]]) - assert d == _BoolLiteral[True] - d = eval_typing(AllOf[int | Never]) - assert d == _BoolLiteral[False] - d = eval_typing( - AllOf[Literal[0] | Literal[True], Literal[2] | Literal[True]] - ) - assert d == _BoolLiteral[True] - d = eval_typing(AllOf[Literal[0] | Literal[1], Literal[2] | Literal[True]]) - assert d == _BoolLiteral[False] - d = eval_typing(AllOf[Literal[0] | Literal[1], Literal[2] | Literal[3]]) - assert d == _BoolLiteral[False] - - -def test_eval_all_02(): - d = eval_typing(AllOf[()]) - assert d == _BoolLiteral[True] - - d = eval_typing(AllOf[Literal[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AllOf[Literal[False]]) - assert d == _BoolLiteral[False] - - d = eval_typing(AllOf[Literal[True], Literal[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AllOf[Literal[True], Literal[False]]) - assert d == _BoolLiteral[False] - d = eval_typing(AllOf[Literal[False], Literal[True]]) - assert d == _BoolLiteral[False] - - -type ContainsAllInt[Ts] = AllOf[*[IsSub[t, int] for t in Iter[Ts]]] -type ContainsAllIntToLiteral[Ts] = ( - Literal[True] if Bool[ContainsAllInt[Ts]] else Literal[False] -) - - -def test_eval_all_03(): - d = eval_typing(ContainsAllInt[tuple[()]]) - assert d == _BoolLiteral[True] - - d = eval_typing(ContainsAllInt[tuple[int]]) - assert d == _BoolLiteral[True] - d = eval_typing(ContainsAllInt[tuple[str]]) - assert d == _BoolLiteral[False] - - d = eval_typing(ContainsAllInt[tuple[int, int]]) - assert d == _BoolLiteral[True] - d = eval_typing(ContainsAllInt[tuple[int, str]]) - assert d == _BoolLiteral[False] - d = eval_typing(ContainsAllInt[tuple[str, str]]) - assert d == _BoolLiteral[False] - - -def test_eval_all_04(): - d = eval_typing(ContainsAllIntToLiteral[tuple[()]]) - assert d == Literal[True] - - d = eval_typing(ContainsAllIntToLiteral[tuple[int]]) - assert d == Literal[True] - d = eval_typing(ContainsAllIntToLiteral[tuple[str]]) - assert d == Literal[False] - - -def test_eval_any_01(): - d = eval_typing(AnyOf[()]) - assert d == _BoolLiteral[False] - - d = eval_typing(AnyOf[_BoolLiteral[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[_BoolLiteral[False]]) - assert d == _BoolLiteral[False] - - d = eval_typing(AnyOf[_BoolLiteral[True], _BoolLiteral[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[_BoolLiteral[True], _BoolLiteral[False]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[_BoolLiteral[False], _BoolLiteral[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[_BoolLiteral[False], _BoolLiteral[False]]) - assert d == _BoolLiteral[False] - - d = eval_typing(AnyOf[Literal[True] | Literal[False]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[int | Never]) - assert d == _BoolLiteral[False] - d = eval_typing( - AnyOf[Literal[0] | Literal[True], Literal[2] | Literal[True]] - ) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[Literal[0] | Literal[1], Literal[2] | Literal[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[Literal[0] | Literal[1], Literal[2] | Literal[3]]) - assert d == _BoolLiteral[False] - - -def test_eval_any_02(): - d = eval_typing(AnyOf[()]) - assert d == _BoolLiteral[False] - - d = eval_typing(AnyOf[Literal[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[Literal[False]]) - assert d == _BoolLiteral[False] - - d = eval_typing(AnyOf[Literal[True], Literal[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[Literal[True], Literal[False]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[Literal[False], Literal[True]]) - assert d == _BoolLiteral[True] - d = eval_typing(AnyOf[Literal[False], Literal[False]]) - assert d == _BoolLiteral[False] - - -type ContainsAnyInt[Ts] = AnyOf[*[IsSub[t, int] for t in Iter[Ts]]] -type ContainsAnyIntToLiteral[Ts] = ( - Literal[True] if Bool[ContainsAnyInt[Ts]] else Literal[False] -) - - -def test_eval_any_03(): - d = eval_typing(ContainsAnyInt[tuple[()]]) - assert d == _BoolLiteral[False] - - d = eval_typing(ContainsAnyInt[tuple[int]]) - assert d == _BoolLiteral[True] - d = eval_typing(ContainsAnyInt[tuple[str]]) - assert d == _BoolLiteral[False] - - d = eval_typing(ContainsAnyInt[tuple[int, int]]) - assert d == _BoolLiteral[True] - d = eval_typing(ContainsAnyInt[tuple[int, str]]) - assert d == _BoolLiteral[True] - d = eval_typing(ContainsAnyInt[tuple[str, str]]) - assert d == _BoolLiteral[False] - - -def test_eval_any_04(): - d = eval_typing(ContainsAnyIntToLiteral[tuple[()]]) - assert d == Literal[False] - - d = eval_typing(ContainsAnyIntToLiteral[tuple[int]]) - assert d == Literal[True] - d = eval_typing(ContainsAnyIntToLiteral[tuple[str]]) - assert d == Literal[False] - - def test_eval_literal_generic_01(): d = eval_typing(_BoolLiteral[True]) assert d == _BoolLiteral[True] diff --git a/typemap/type_eval/_eval_operators.py b/typemap/type_eval/_eval_operators.py index e9c9301..9a59029 100644 --- a/typemap/type_eval/_eval_operators.py +++ b/typemap/type_eval/_eval_operators.py @@ -16,8 +16,6 @@ _get_class_type_hint_namespaces, ) from typemap.typing import ( - AllOf, - AnyOf, Attrs, Bool, Capitalize, @@ -274,18 +272,6 @@ def _eval_Bool(tp, *, ctx): return _eval_bool_tp(tp, ctx) -@type_eval.register_evaluator(AllOf) -@_lift_evaluated -def _eval_AllOf(*tp, ctx): - return _BoolLiteral[all(_eval_bool_tp(tp, ctx) for tp in tp)] - - -@type_eval.register_evaluator(AnyOf) -@_lift_evaluated -def _eval_AnyOf(*tp, ctx): - return _BoolLiteral[any(_eval_bool_tp(tp, ctx) for tp in tp)] - - @type_eval.register_evaluator(_BoolLiteral) @_lift_evaluated def _eval_BoolLiteral(tp, *, ctx): diff --git a/typemap/typing.py b/typemap/typing.py index 51e3955..e802b42 100644 --- a/typemap/typing.py +++ b/typemap/typing.py @@ -231,16 +231,6 @@ def Bool(self, tp): return _BoolGenericAlias(self, tp) -@_SpecialForm -def AllOf(self, tp): - return _BoolGenericAlias(self, tp) - - -@_SpecialForm -def AnyOf(self, tp): - return _BoolGenericAlias(self, tp) - - class _BoolLiteralGenericAlias(_LiteralGenericAlias, _root=True): # type: ignore[call-arg] def __bool__(self): return typing.get_args(self)[0]