From 0bea98520c8fbefab29b60c25c5586747f9bf6f1 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Fri, 25 Feb 2022 08:26:09 +0100 Subject: rename puzzles --- check_checkers.py | 4 +--- issues.toml | 6 +++--- puzzles/00_assign_wrong_type.py | 1 - puzzles/01_assign_reassign.py | 2 -- puzzles/02_append.py | 2 -- puzzles/03_missing_type_param.py | 1 - puzzles/04_type_error_in_untyped_def.py | 2 -- puzzles/10_infer_return_type.py | 3 --- puzzles/20_try_except_finally.py | 8 -------- puzzles/30_literal_eval_expr.py | 3 --- puzzles/31_literal_enum_name.py | 8 -------- puzzles/32_protocol_missing_member.py | 7 ------- puzzles/40_recursive_types.py | 3 --- puzzles/50_typevar_constrained.py | 9 --------- puzzles/basic_assign_incompatible.py | 1 + puzzles/basic_assign_reassign.py | 2 ++ puzzles/basic_lenient.py | 2 ++ puzzles/basic_missing_type_param.py | 1 + puzzles/basic_type_error_in_untyped_def.py | 2 ++ puzzles/infer_def_return_type.py | 3 +++ puzzles/infer_literal_expr_value.py | 3 +++ puzzles/recursive_type.py | 3 +++ puzzles/seq_try_except_finally.py | 8 ++++++++ puzzles/typing_literal_enum_name.py | 8 ++++++++ puzzles/typing_protocol_missing_member.py | 7 +++++++ puzzles/typing_typevar_constrained.py | 9 +++++++++ 26 files changed, 53 insertions(+), 55 deletions(-) delete mode 100644 puzzles/00_assign_wrong_type.py delete mode 100644 puzzles/01_assign_reassign.py delete mode 100644 puzzles/02_append.py delete mode 100644 puzzles/03_missing_type_param.py delete mode 100644 puzzles/04_type_error_in_untyped_def.py delete mode 100644 puzzles/10_infer_return_type.py delete mode 100644 puzzles/20_try_except_finally.py delete mode 100644 puzzles/30_literal_eval_expr.py delete mode 100644 puzzles/31_literal_enum_name.py delete mode 100644 puzzles/32_protocol_missing_member.py delete mode 100644 puzzles/40_recursive_types.py delete mode 100644 puzzles/50_typevar_constrained.py create mode 100644 puzzles/basic_assign_incompatible.py create mode 100644 puzzles/basic_assign_reassign.py create mode 100644 puzzles/basic_lenient.py create mode 100644 puzzles/basic_missing_type_param.py create mode 100644 puzzles/basic_type_error_in_untyped_def.py create mode 100644 puzzles/infer_def_return_type.py create mode 100644 puzzles/infer_literal_expr_value.py create mode 100644 puzzles/recursive_type.py create mode 100644 puzzles/seq_try_except_finally.py create mode 100644 puzzles/typing_literal_enum_name.py create mode 100644 puzzles/typing_protocol_missing_member.py create mode 100644 puzzles/typing_typevar_constrained.py diff --git a/check_checkers.py b/check_checkers.py index 1855300..f6d2a9b 100755 --- a/check_checkers.py +++ b/check_checkers.py @@ -273,9 +273,7 @@ def run( ), ) issue = checker_issues.get( - os.path.splitext(os.path.basename(puzzle))[0].split( - '_', maxsplit=1 - )[1] + os.path.splitext(os.path.basename(puzzle))[0] ) if issue: out.write('
(') diff --git a/issues.toml b/issues.toml index c8611f5..81cd3d4 100644 --- a/issues.toml +++ b/issues.toml @@ -1,6 +1,6 @@ [mypy] -recursive_types = 'issue 731' -typevar_constrained = 'issue 11880' +recursive_type = 'issue 731' +typing_typevar_constrained = 'issue 11880' [pytype] -literal_enum_name = 'issue 790' +typing_literal_enum_name = 'issue 790' diff --git a/puzzles/00_assign_wrong_type.py b/puzzles/00_assign_wrong_type.py deleted file mode 100644 index 6298e46..0000000 --- a/puzzles/00_assign_wrong_type.py +++ /dev/null @@ -1 +0,0 @@ -x: int = 'Python' # error diff --git a/puzzles/01_assign_reassign.py b/puzzles/01_assign_reassign.py deleted file mode 100644 index aeed688..0000000 --- a/puzzles/01_assign_reassign.py +++ /dev/null @@ -1,2 +0,0 @@ -x = 3 -x = 'test' # maybe error diff --git a/puzzles/02_append.py b/puzzles/02_append.py deleted file mode 100644 index 3511512..0000000 --- a/puzzles/02_append.py +++ /dev/null @@ -1,2 +0,0 @@ -lst = ["duck"] -lst.append(2022) # maybe error diff --git a/puzzles/03_missing_type_param.py b/puzzles/03_missing_type_param.py deleted file mode 100644 index a2bcf80..0000000 --- a/puzzles/03_missing_type_param.py +++ /dev/null @@ -1 +0,0 @@ -x: list = [] # maybe error diff --git a/puzzles/04_type_error_in_untyped_def.py b/puzzles/04_type_error_in_untyped_def.py deleted file mode 100644 index 6c87c71..0000000 --- a/puzzles/04_type_error_in_untyped_def.py +++ /dev/null @@ -1,2 +0,0 @@ -def f(): - x: int = 'Python' # error diff --git a/puzzles/10_infer_return_type.py b/puzzles/10_infer_return_type.py deleted file mode 100644 index 2776442..0000000 --- a/puzzles/10_infer_return_type.py +++ /dev/null @@ -1,3 +0,0 @@ -def f(): return "Python" - -f() + 3 # error diff --git a/puzzles/20_try_except_finally.py b/puzzles/20_try_except_finally.py deleted file mode 100644 index d63ab10..0000000 --- a/puzzles/20_try_except_finally.py +++ /dev/null @@ -1,8 +0,0 @@ -def foo() -> None: - file = None - try: - file = open('test.json') - except Exception: - return None - finally: - file.name # error diff --git a/puzzles/30_literal_eval_expr.py b/puzzles/30_literal_eval_expr.py deleted file mode 100644 index dce14aa..0000000 --- a/puzzles/30_literal_eval_expr.py +++ /dev/null @@ -1,3 +0,0 @@ -from typing import Literal - -x: Literal[3] = 1 + 2 diff --git a/puzzles/31_literal_enum_name.py b/puzzles/31_literal_enum_name.py deleted file mode 100644 index a743168..0000000 --- a/puzzles/31_literal_enum_name.py +++ /dev/null @@ -1,8 +0,0 @@ -import enum -from typing import Literal - -class Color(enum.Enum): - Red = enum.auto() - Blue = enum.auto() - -c: Literal[Color.Red] = Color.Blue # error diff --git a/puzzles/32_protocol_missing_member.py b/puzzles/32_protocol_missing_member.py deleted file mode 100644 index 79bd70e..0000000 --- a/puzzles/32_protocol_missing_member.py +++ /dev/null @@ -1,7 +0,0 @@ -from typing import Protocol - -class P(Protocol): - x: int - -class B(P): # error - pass diff --git a/puzzles/40_recursive_types.py b/puzzles/40_recursive_types.py deleted file mode 100644 index 5de796c..0000000 --- a/puzzles/40_recursive_types.py +++ /dev/null @@ -1,3 +0,0 @@ -from typing import Union - -Foo = list[Union['Foo', int]] diff --git a/puzzles/50_typevar_constrained.py b/puzzles/50_typevar_constrained.py deleted file mode 100644 index 4cff369..0000000 --- a/puzzles/50_typevar_constrained.py +++ /dev/null @@ -1,9 +0,0 @@ -from typing import TypeVar, Any, Union - -V = TypeVar("V", str, bytes) - -def check_v(x: Union[V, list[V]]) -> V: - raise NotImplementedError() - -def foo(a: list[Any]) -> None: - check_v(a) diff --git a/puzzles/basic_assign_incompatible.py b/puzzles/basic_assign_incompatible.py new file mode 100644 index 0000000..6298e46 --- /dev/null +++ b/puzzles/basic_assign_incompatible.py @@ -0,0 +1 @@ +x: int = 'Python' # error diff --git a/puzzles/basic_assign_reassign.py b/puzzles/basic_assign_reassign.py new file mode 100644 index 0000000..aeed688 --- /dev/null +++ b/puzzles/basic_assign_reassign.py @@ -0,0 +1,2 @@ +x = 3 +x = 'test' # maybe error diff --git a/puzzles/basic_lenient.py b/puzzles/basic_lenient.py new file mode 100644 index 0000000..3511512 --- /dev/null +++ b/puzzles/basic_lenient.py @@ -0,0 +1,2 @@ +lst = ["duck"] +lst.append(2022) # maybe error diff --git a/puzzles/basic_missing_type_param.py b/puzzles/basic_missing_type_param.py new file mode 100644 index 0000000..a2bcf80 --- /dev/null +++ b/puzzles/basic_missing_type_param.py @@ -0,0 +1 @@ +x: list = [] # maybe error diff --git a/puzzles/basic_type_error_in_untyped_def.py b/puzzles/basic_type_error_in_untyped_def.py new file mode 100644 index 0000000..6c87c71 --- /dev/null +++ b/puzzles/basic_type_error_in_untyped_def.py @@ -0,0 +1,2 @@ +def f(): + x: int = 'Python' # error diff --git a/puzzles/infer_def_return_type.py b/puzzles/infer_def_return_type.py new file mode 100644 index 0000000..2776442 --- /dev/null +++ b/puzzles/infer_def_return_type.py @@ -0,0 +1,3 @@ +def f(): return "Python" + +f() + 3 # error diff --git a/puzzles/infer_literal_expr_value.py b/puzzles/infer_literal_expr_value.py new file mode 100644 index 0000000..dce14aa --- /dev/null +++ b/puzzles/infer_literal_expr_value.py @@ -0,0 +1,3 @@ +from typing import Literal + +x: Literal[3] = 1 + 2 diff --git a/puzzles/recursive_type.py b/puzzles/recursive_type.py new file mode 100644 index 0000000..5de796c --- /dev/null +++ b/puzzles/recursive_type.py @@ -0,0 +1,3 @@ +from typing import Union + +Foo = list[Union['Foo', int]] diff --git a/puzzles/seq_try_except_finally.py b/puzzles/seq_try_except_finally.py new file mode 100644 index 0000000..d63ab10 --- /dev/null +++ b/puzzles/seq_try_except_finally.py @@ -0,0 +1,8 @@ +def foo() -> None: + file = None + try: + file = open('test.json') + except Exception: + return None + finally: + file.name # error diff --git a/puzzles/typing_literal_enum_name.py b/puzzles/typing_literal_enum_name.py new file mode 100644 index 0000000..a743168 --- /dev/null +++ b/puzzles/typing_literal_enum_name.py @@ -0,0 +1,8 @@ +import enum +from typing import Literal + +class Color(enum.Enum): + Red = enum.auto() + Blue = enum.auto() + +c: Literal[Color.Red] = Color.Blue # error diff --git a/puzzles/typing_protocol_missing_member.py b/puzzles/typing_protocol_missing_member.py new file mode 100644 index 0000000..79bd70e --- /dev/null +++ b/puzzles/typing_protocol_missing_member.py @@ -0,0 +1,7 @@ +from typing import Protocol + +class P(Protocol): + x: int + +class B(P): # error + pass diff --git a/puzzles/typing_typevar_constrained.py b/puzzles/typing_typevar_constrained.py new file mode 100644 index 0000000..4cff369 --- /dev/null +++ b/puzzles/typing_typevar_constrained.py @@ -0,0 +1,9 @@ +from typing import TypeVar, Any, Union + +V = TypeVar("V", str, bytes) + +def check_v(x: Union[V, list[V]]) -> V: + raise NotImplementedError() + +def foo(a: list[Any]) -> None: + check_v(a) -- cgit v1.2.3