Skip to content

Commit b37c053

Browse files
authored
Remove AllOf and AnyOf. (#60)
1 parent 2fd7b07 commit b37c053

3 files changed

Lines changed: 0 additions & 192 deletions

File tree

tests/test_type_eval.py

Lines changed: 0 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
from typemap.type_eval import eval_typing
2121
from typemap.typing import (
22-
AllOf,
23-
AnyOf,
2422
Attrs,
2523
Bool,
2624
FromUnion,
@@ -1243,172 +1241,6 @@ def test_eval_bool_05():
12431241
assert d == Literal[False]
12441242

12451243

1246-
def test_eval_all_01():
1247-
d = eval_typing(AllOf[()])
1248-
assert d == _BoolLiteral[True]
1249-
1250-
d = eval_typing(AllOf[_BoolLiteral[True]])
1251-
assert d == _BoolLiteral[True]
1252-
d = eval_typing(AllOf[_BoolLiteral[False]])
1253-
assert d == _BoolLiteral[False]
1254-
1255-
d = eval_typing(AllOf[_BoolLiteral[True], _BoolLiteral[True]])
1256-
assert d == _BoolLiteral[True]
1257-
d = eval_typing(AllOf[_BoolLiteral[True], _BoolLiteral[False]])
1258-
assert d == _BoolLiteral[False]
1259-
d = eval_typing(AllOf[_BoolLiteral[False], _BoolLiteral[True]])
1260-
assert d == _BoolLiteral[False]
1261-
d = eval_typing(AllOf[_BoolLiteral[False], _BoolLiteral[False]])
1262-
assert d == _BoolLiteral[False]
1263-
1264-
d = eval_typing(AllOf[Literal[True] | Literal[False]])
1265-
assert d == _BoolLiteral[True]
1266-
d = eval_typing(AllOf[int | Never])
1267-
assert d == _BoolLiteral[False]
1268-
d = eval_typing(
1269-
AllOf[Literal[0] | Literal[True], Literal[2] | Literal[True]]
1270-
)
1271-
assert d == _BoolLiteral[True]
1272-
d = eval_typing(AllOf[Literal[0] | Literal[1], Literal[2] | Literal[True]])
1273-
assert d == _BoolLiteral[False]
1274-
d = eval_typing(AllOf[Literal[0] | Literal[1], Literal[2] | Literal[3]])
1275-
assert d == _BoolLiteral[False]
1276-
1277-
1278-
def test_eval_all_02():
1279-
d = eval_typing(AllOf[()])
1280-
assert d == _BoolLiteral[True]
1281-
1282-
d = eval_typing(AllOf[Literal[True]])
1283-
assert d == _BoolLiteral[True]
1284-
d = eval_typing(AllOf[Literal[False]])
1285-
assert d == _BoolLiteral[False]
1286-
1287-
d = eval_typing(AllOf[Literal[True], Literal[True]])
1288-
assert d == _BoolLiteral[True]
1289-
d = eval_typing(AllOf[Literal[True], Literal[False]])
1290-
assert d == _BoolLiteral[False]
1291-
d = eval_typing(AllOf[Literal[False], Literal[True]])
1292-
assert d == _BoolLiteral[False]
1293-
1294-
1295-
type ContainsAllInt[Ts] = AllOf[*[IsSub[t, int] for t in Iter[Ts]]]
1296-
type ContainsAllIntToLiteral[Ts] = (
1297-
Literal[True] if Bool[ContainsAllInt[Ts]] else Literal[False]
1298-
)
1299-
1300-
1301-
def test_eval_all_03():
1302-
d = eval_typing(ContainsAllInt[tuple[()]])
1303-
assert d == _BoolLiteral[True]
1304-
1305-
d = eval_typing(ContainsAllInt[tuple[int]])
1306-
assert d == _BoolLiteral[True]
1307-
d = eval_typing(ContainsAllInt[tuple[str]])
1308-
assert d == _BoolLiteral[False]
1309-
1310-
d = eval_typing(ContainsAllInt[tuple[int, int]])
1311-
assert d == _BoolLiteral[True]
1312-
d = eval_typing(ContainsAllInt[tuple[int, str]])
1313-
assert d == _BoolLiteral[False]
1314-
d = eval_typing(ContainsAllInt[tuple[str, str]])
1315-
assert d == _BoolLiteral[False]
1316-
1317-
1318-
def test_eval_all_04():
1319-
d = eval_typing(ContainsAllIntToLiteral[tuple[()]])
1320-
assert d == Literal[True]
1321-
1322-
d = eval_typing(ContainsAllIntToLiteral[tuple[int]])
1323-
assert d == Literal[True]
1324-
d = eval_typing(ContainsAllIntToLiteral[tuple[str]])
1325-
assert d == Literal[False]
1326-
1327-
1328-
def test_eval_any_01():
1329-
d = eval_typing(AnyOf[()])
1330-
assert d == _BoolLiteral[False]
1331-
1332-
d = eval_typing(AnyOf[_BoolLiteral[True]])
1333-
assert d == _BoolLiteral[True]
1334-
d = eval_typing(AnyOf[_BoolLiteral[False]])
1335-
assert d == _BoolLiteral[False]
1336-
1337-
d = eval_typing(AnyOf[_BoolLiteral[True], _BoolLiteral[True]])
1338-
assert d == _BoolLiteral[True]
1339-
d = eval_typing(AnyOf[_BoolLiteral[True], _BoolLiteral[False]])
1340-
assert d == _BoolLiteral[True]
1341-
d = eval_typing(AnyOf[_BoolLiteral[False], _BoolLiteral[True]])
1342-
assert d == _BoolLiteral[True]
1343-
d = eval_typing(AnyOf[_BoolLiteral[False], _BoolLiteral[False]])
1344-
assert d == _BoolLiteral[False]
1345-
1346-
d = eval_typing(AnyOf[Literal[True] | Literal[False]])
1347-
assert d == _BoolLiteral[True]
1348-
d = eval_typing(AnyOf[int | Never])
1349-
assert d == _BoolLiteral[False]
1350-
d = eval_typing(
1351-
AnyOf[Literal[0] | Literal[True], Literal[2] | Literal[True]]
1352-
)
1353-
assert d == _BoolLiteral[True]
1354-
d = eval_typing(AnyOf[Literal[0] | Literal[1], Literal[2] | Literal[True]])
1355-
assert d == _BoolLiteral[True]
1356-
d = eval_typing(AnyOf[Literal[0] | Literal[1], Literal[2] | Literal[3]])
1357-
assert d == _BoolLiteral[False]
1358-
1359-
1360-
def test_eval_any_02():
1361-
d = eval_typing(AnyOf[()])
1362-
assert d == _BoolLiteral[False]
1363-
1364-
d = eval_typing(AnyOf[Literal[True]])
1365-
assert d == _BoolLiteral[True]
1366-
d = eval_typing(AnyOf[Literal[False]])
1367-
assert d == _BoolLiteral[False]
1368-
1369-
d = eval_typing(AnyOf[Literal[True], Literal[True]])
1370-
assert d == _BoolLiteral[True]
1371-
d = eval_typing(AnyOf[Literal[True], Literal[False]])
1372-
assert d == _BoolLiteral[True]
1373-
d = eval_typing(AnyOf[Literal[False], Literal[True]])
1374-
assert d == _BoolLiteral[True]
1375-
d = eval_typing(AnyOf[Literal[False], Literal[False]])
1376-
assert d == _BoolLiteral[False]
1377-
1378-
1379-
type ContainsAnyInt[Ts] = AnyOf[*[IsSub[t, int] for t in Iter[Ts]]]
1380-
type ContainsAnyIntToLiteral[Ts] = (
1381-
Literal[True] if Bool[ContainsAnyInt[Ts]] else Literal[False]
1382-
)
1383-
1384-
1385-
def test_eval_any_03():
1386-
d = eval_typing(ContainsAnyInt[tuple[()]])
1387-
assert d == _BoolLiteral[False]
1388-
1389-
d = eval_typing(ContainsAnyInt[tuple[int]])
1390-
assert d == _BoolLiteral[True]
1391-
d = eval_typing(ContainsAnyInt[tuple[str]])
1392-
assert d == _BoolLiteral[False]
1393-
1394-
d = eval_typing(ContainsAnyInt[tuple[int, int]])
1395-
assert d == _BoolLiteral[True]
1396-
d = eval_typing(ContainsAnyInt[tuple[int, str]])
1397-
assert d == _BoolLiteral[True]
1398-
d = eval_typing(ContainsAnyInt[tuple[str, str]])
1399-
assert d == _BoolLiteral[False]
1400-
1401-
1402-
def test_eval_any_04():
1403-
d = eval_typing(ContainsAnyIntToLiteral[tuple[()]])
1404-
assert d == Literal[False]
1405-
1406-
d = eval_typing(ContainsAnyIntToLiteral[tuple[int]])
1407-
assert d == Literal[True]
1408-
d = eval_typing(ContainsAnyIntToLiteral[tuple[str]])
1409-
assert d == Literal[False]
1410-
1411-
14121244
def test_eval_literal_generic_01():
14131245
d = eval_typing(_BoolLiteral[True])
14141246
assert d == _BoolLiteral[True]

typemap/type_eval/_eval_operators.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
_get_class_type_hint_namespaces,
1717
)
1818
from typemap.typing import (
19-
AllOf,
20-
AnyOf,
2119
Attrs,
2220
Bool,
2321
Capitalize,
@@ -274,18 +272,6 @@ def _eval_Bool(tp, *, ctx):
274272
return _eval_bool_tp(tp, ctx)
275273

276274

277-
@type_eval.register_evaluator(AllOf)
278-
@_lift_evaluated
279-
def _eval_AllOf(*tp, ctx):
280-
return _BoolLiteral[all(_eval_bool_tp(tp, ctx) for tp in tp)]
281-
282-
283-
@type_eval.register_evaluator(AnyOf)
284-
@_lift_evaluated
285-
def _eval_AnyOf(*tp, ctx):
286-
return _BoolLiteral[any(_eval_bool_tp(tp, ctx) for tp in tp)]
287-
288-
289275
@type_eval.register_evaluator(_BoolLiteral)
290276
@_lift_evaluated
291277
def _eval_BoolLiteral(tp, *, ctx):

typemap/typing.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -231,16 +231,6 @@ def Bool(self, tp):
231231
return _BoolGenericAlias(self, tp)
232232

233233

234-
@_SpecialForm
235-
def AllOf(self, tp):
236-
return _BoolGenericAlias(self, tp)
237-
238-
239-
@_SpecialForm
240-
def AnyOf(self, tp):
241-
return _BoolGenericAlias(self, tp)
242-
243-
244234
class _BoolLiteralGenericAlias(_LiteralGenericAlias, _root=True): # type: ignore[call-arg]
245235
def __bool__(self):
246236
return typing.get_args(self)[0]

0 commit comments

Comments
 (0)