103 lines
1.8 KiB
Python
103 lines
1.8 KiB
Python
# flags: --minimum-version=3.10
|
|
import match
|
|
|
|
match something:
|
|
case [a as b]:
|
|
print(b)
|
|
case [a as b, c, d, e as f]:
|
|
print(f)
|
|
case Point(a as b):
|
|
print(b)
|
|
case Point(int() as x, int() as y):
|
|
print(x, y)
|
|
|
|
|
|
match = 1
|
|
case: int = re.match(something)
|
|
|
|
match re.match(case):
|
|
case type("match", match):
|
|
pass
|
|
case match:
|
|
pass
|
|
|
|
|
|
def func(match: case, case: match) -> case:
|
|
match Something():
|
|
case func(match, case):
|
|
...
|
|
case another:
|
|
...
|
|
|
|
|
|
match a, *b, c:
|
|
case [*_]:
|
|
assert "seq" == _
|
|
case {}:
|
|
assert "map" == b
|
|
|
|
|
|
match match(
|
|
case,
|
|
match(
|
|
match, case, match, looooooooooooooooooooooooooooooooooooong, match, case, match
|
|
),
|
|
case,
|
|
):
|
|
case case(
|
|
match=case,
|
|
case=re.match(
|
|
loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
|
|
),
|
|
):
|
|
pass
|
|
case [a as match]:
|
|
pass
|
|
case case:
|
|
pass
|
|
case something:
|
|
pass
|
|
|
|
|
|
match match:
|
|
case case:
|
|
pass
|
|
|
|
|
|
match a, *b(), c:
|
|
case d, *f, g:
|
|
pass
|
|
|
|
|
|
match something:
|
|
case {
|
|
"key": key as key_1,
|
|
"password": PASS.ONE | PASS.TWO | PASS.THREE as password,
|
|
}:
|
|
pass
|
|
case {"maybe": something(complicated as this) as that}:
|
|
pass
|
|
|
|
|
|
match something:
|
|
case 1 as a:
|
|
pass
|
|
case 2 as b, 3 as c:
|
|
pass
|
|
case 4 as d, (5 as e), (6 | 7 as g), *h:
|
|
pass
|
|
|
|
|
|
match bar1:
|
|
case Foo(aa=Callable() as aa, bb=int()):
|
|
print(bar1.aa, bar1.bb)
|
|
case _:
|
|
print("no match", "\n")
|
|
|
|
|
|
match bar1:
|
|
case Foo(
|
|
normal=x, perhaps=[list, {"x": d, "y": 1.0}] as y, otherwise=something, q=t as u
|
|
):
|
|
pass
|