match foo: case "bar":
pass
match ( foo ): case "bar":
pass
match ( foo , ): case "bar":
pass
match [ first,
second,
third
]: case ["a", "b", "c"]:
pass
match ( "a b c"
).split(): case ["a", "b", "c"]:
pass
match ( yield foo
): case ["a", "b", "c"]:
pass
match aaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh: case "sshhhhhhhh":
pass
def foo():
match inside_func: case "bar":
pass
match newlines:
case "top level case comment with newlines": pass
case "case comment with newlines" if foo == 2: pass
case "one", "newline" if (foo := 1): pass
case "two newlines":
pass
case "three newlines":
pass
case _:
pass
match long_lines:
case "this is a long line for if condition" if aaaaaaaaahhhhhhhh == 1 and bbbbbbaaaaaaaaaaa == 2: pass
case "this is a long line for if condition with parentheses" if (aaaaaaaaahhhhhhhh == 1 and bbbbbbaaaaaaaaaaa == 2): pass
case "named expressions aren't special" if foo := 1:
pass
case "named expressions aren't that special" if (foo := 1):
pass
case "but with already broken long lines" if (
aaaaaaahhhhhhhhhhh == 1 and
bbbbbbbbaaaaaahhhh == 2
): pass
case {
"long_long_long_key": str(long_long_long_key)
} if value := "long long long long long long long long long long long value":
pass
match pattern_comments:
case (
only_trailing ):
pass
match pattern_comments:
case ( only_leading
):
pass
match pattern_comments:
case (
leading_and_trailing ):
pass
match pattern_comments:
case (
no_comments
):
pass
match pattern_comments:
case (
pattern as name ):
pass
match pattern_comments:
case (
pattern
as name ):
pass
match pattern_comments:
case (
pattern
as
name
):
pass
match subject:
case (
pattern as name ):
pass
match x:
case (a as b) as c:
pass
match pattern_singleton:
case (
None ):
pass
case (
True ):
pass
case False:
pass
match foo:
case "a", "b":
pass
case "a", "b",:
pass
case ("a", "b"):
pass
case ["a", "b"]:
pass
case (["a", "b"]):
pass
match foo:
case [ "a", "b",
]:
pass
match foo:
case 1:
y = 0
case (1):
y = 1
case (("a")):
y = 1
case ( 1
):
y = 1
case (
1
):
y = 1
case (
1 ):
y = 1
case (
1
):
y = 1
match foo:
case [1, 2, *rest]:
pass
case [1, 2, *_]:
pass
case [*rest, 1, 2]:
pass
case [*_, 1, 2]:
pass
case [
1,
2,
*rest,
]:
pass
case [1, 2, * rest]:
pass
case [1, 2, * _]:
pass
case [* rest, 1, 2]:
pass
case [* _, 1, 2]:
pass
case [* _, 1, 2]:
pass
case [* _, 1, 2]:
pass
match foo:
case (1):
pass
case ((1)):
pass
case [(1), 2]:
pass
case [( 1
), 2]:
pass
case [ ( 1
), 2]:
pass
case [
( [ 1,
]
)
]:
pass
case [ ( [ 1,
]
)
]:
pass
case [ ( [ 1,
]
)
]:
pass
case [(*rest), (a as b)]:
pass
match foo:
case {"a": 1, "b": 2}:
pass
case {
"a": 1, "b": 2,
}:
pass
case { 1 : value }:
pass
case {**d}:
pass
case {
** b
}:
pass
case {
** b,
}:
pass
case {
1: x,
** b, }:
pass
case {
1: x
,
**
b,
}:
pass
match pattern_match_class:
case Point2D(
):
pass
case (
Point2D
()
):
pass
case Point2D( ):
pass
case Point2D( 0, 0
):
pass
case Point2D(0, 0):
pass
case Point2D(
( 0
), 0):
pass
case Point3D(x=0, y=0, z=000000000000000000000000000000000000000000000000000000000000000000000000000000000):
pass
case Bar(0, a=None, b="hello"):
pass
case FooBar( 0 ):
pass
case A(
b = 2 ):
pass
case A(
b = 2 ):
pass
match pattern_match_or:
case ( a | b | c ):
pass
case (
(a)
| ( b )
):
pass
case (a|b|c):
pass
case foo | bar | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh:
pass
case ( a | b
):
pass
match pattern:
case (a,):
pass
case (a, b):
pass
case (a, b,):
pass
case a,:
pass
case a, b:
pass
case a, b,:
pass
case (a, ):
pass
case (a, b ):
pass
case (a, b, ):
pass
case ( a,
):
pass
case ( a, b
):
pass
case ( a, b,
):
pass
case (
a,):
pass
case (
a, b):
pass
case (
a, b,):
pass
match n % 3, n % 5:
case 0, 0:
print("FizzBuzz")
case 0, _:
print("Fizz")
case _, 0:
print("Buzz")
case _:
print(n)
match x:
case Child(aaaaaaaaa, bbbbbbbbbbbbbbb, cccccc), Doc(aaaaa, bbbbbbbbbb, ddddddddddddd):
pass
match guard_comments:
case "abcd" if ( aaaaaaaaahhhhhhhh == 1 and bbbbbbaaaaaaaaaaa == 2
):
pass
case "bcdef" if (
aaaaaaaaahhhhhhhh == 1 and bbbbbbaaaaaaaaaaa == 2 ): pass
case "efgh" if (
aaaaaahhhhhh == 1
):
pass
case "hijk" if (
aaaaaaaaa == 1
):
pass
match class_pattern:
case Class(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) as capture:
pass
case Class(
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
) as capture:
pass
case Class(
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
) as capture:
pass
case Class(
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
) as really_really_really_really_really_really_really_really_really_really_really_really_long_capture:
pass
match sequence_pattern_brackets:
case [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] as capture:
pass
case [
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
] as capture:
pass
case [
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
] as capture:
pass
match class_pattern:
case Class(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) as capture: pass case Class( xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ) as capture: pass
case Class( xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ) as capture: pass
case Class( xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ) as really_really_really_really_really_really_really_really_really_really_really_really_long_capture: pass
case Class( xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ) as capture:
pass