Skip to content

Commit 2b3612f

Browse files
refactor: modernize type annotations to 3.10+ syntax (#25)
1 parent 7054f62 commit 2b3612f

28 files changed

+88
-115
lines changed

python_coderunner/src/coderunner/coderunner.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Callable, Optional
1+
from typing import Callable
22

33
from ..command_builder import ICommandBuilder
44
from ..command_dispatcher_strategy_selector import (
@@ -40,7 +40,7 @@ def run_by_file_ext(self) -> None:
4040
def run_by_file_type(self) -> None:
4141
self._run(self._command_dispatcher_strategy_selector.dispatch_by_file_type)
4242

43-
def _run(self, strategy: Callable[[str], Optional[ICommandBuilder]]) -> None:
43+
def _run(self, strategy: Callable[[str], ICommandBuilder | None]) -> None:
4444
try:
4545
with self._editor_service.get_file_for_run() as file_path_abs:
4646
if (command_builder := strategy(file_path_abs)) is not None:
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
from abc import ABC, abstractmethod
2-
from typing import Optional
32

43
from ..coderunner import TCodeRunner
54

65

76
class ICodeRunnerFactory(ABC):
87
@abstractmethod
9-
def create(self) -> Optional[TCodeRunner]:
8+
def create(self) -> TCodeRunner | None:
109
raise NotImplementedError

python_coderunner/src/coderunner_factory/vim_coderunner_factory.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import glob
22
import re
3-
from typing import Dict, Optional
43

54
from ..coderunner import TCodeRunner
65
from ..command_builder import TInterpolatorCommandBuilder
@@ -43,7 +42,7 @@
4342

4443

4544
class TVimCodeRunnerFactory(ICodeRunnerFactory):
46-
def create(self) -> Optional[TCodeRunner]:
45+
def create(self) -> TCodeRunner | None:
4746
config: TVimConfig = self._create_config()
4847
message_printer: TVimMessagePrinter = TVimMessagePrinter()
4948

@@ -205,7 +204,7 @@ def _create_glob_command_builders_dispatcher(
205204
file_info_extractor: TVimFileInfoExtractor,
206205
project_info_extractor: TVimProjectInfoExtractor,
207206
) -> TGlobCommandBuildersDispatcher:
208-
dict_with_commands: Dict[str, str] = config.get_by_glob()
207+
dict_with_commands: dict[str, str] = config.get_by_glob()
209208
return TGlobCommandBuildersDispatcher(
210209
tuple(
211210
(
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
from typing import Dict, Final, Optional
1+
from typing import Final
22

33
from ..command_builder import ICommandBuilder
44
from ..file_info_extractor import IFileInfoExtractor
55
from .interface import ICommandBuildersDispatcher
66

77

88
class TFileExtCommandBuildersDispatcher(ICommandBuildersDispatcher):
9-
def __init__(self, file_ext_to_builder: Dict[str, ICommandBuilder], file_info_extractor: IFileInfoExtractor):
10-
self._file_ext_to_builder: Final[Dict[str, ICommandBuilder]] = file_ext_to_builder
9+
def __init__(self, file_ext_to_builder: dict[str, ICommandBuilder], file_info_extractor: IFileInfoExtractor):
10+
self._file_ext_to_builder: Final[dict[str, ICommandBuilder]] = file_ext_to_builder
1111
self._file_info_extractor: IFileInfoExtractor = file_info_extractor
1212

13-
def dispatch(self, file_path_abs: str) -> Optional[ICommandBuilder]:
13+
def dispatch(self, file_path_abs: str) -> ICommandBuilder | None:
1414
file_ext: str = self._file_info_extractor.get_file_ext(file_path_abs)
1515
return self._file_ext_to_builder.get(file_ext)
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
from typing import Dict, Final, Optional
1+
from typing import Final
22

33
from ..command_builder import ICommandBuilder
44
from ..file_info_extractor import IFileInfoExtractor
55
from .interface import ICommandBuildersDispatcher
66

77

88
class TFileTypeCommandBuildersDispatcher(ICommandBuildersDispatcher):
9-
def __init__(self, file_type_to_builder: Dict[str, ICommandBuilder], file_info_extractor: IFileInfoExtractor):
10-
self._file_type_to_builder: Final[Dict[str, ICommandBuilder]] = file_type_to_builder
9+
def __init__(self, file_type_to_builder: dict[str, ICommandBuilder], file_info_extractor: IFileInfoExtractor):
10+
self._file_type_to_builder: Final[dict[str, ICommandBuilder]] = file_type_to_builder
1111
self._file_info_extractor: IFileInfoExtractor = file_info_extractor
1212

13-
def dispatch(self, file_path_abs: str) -> Optional[ICommandBuilder]:
14-
file_type: Optional[str] = self._file_info_extractor.get_file_type(file_path_abs)
13+
def dispatch(self, file_path_abs: str) -> ICommandBuilder | None:
14+
file_type: str | None = self._file_info_extractor.get_file_type(file_path_abs)
1515
if file_type is None:
1616
return None
1717
return self._file_type_to_builder.get(file_type)

python_coderunner/src/command_builders_dispatcher/glob_command_builders_dispatcher.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import re
2-
from typing import Final, Optional, Tuple
2+
from typing import Final
33

44
from ..command_builder import ICommandBuilder
55
from .interface import ICommandBuildersDispatcher
66

77

88
class TGlobCommandBuildersDispatcher(ICommandBuildersDispatcher):
9-
def __init__(self, glob_to_builder: Tuple[Tuple[re.Pattern[str], ICommandBuilder], ...]):
10-
self._glob_to_builder: Final[Tuple[Tuple[re.Pattern[str], ICommandBuilder], ...]] = glob_to_builder
9+
def __init__(self, glob_to_builder: tuple[tuple[re.Pattern[str], ICommandBuilder], ...]):
10+
self._glob_to_builder: Final[tuple[tuple[re.Pattern[str], ICommandBuilder], ...]] = glob_to_builder
1111

12-
def dispatch(self, file_path_abs: str) -> Optional[ICommandBuilder]:
12+
def dispatch(self, file_path_abs: str) -> ICommandBuilder | None:
1313
for pattern, builder in self._glob_to_builder:
1414
if pattern.match(file_path_abs):
1515
return builder

python_coderunner/src/command_builders_dispatcher/interface.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
from abc import ABC, abstractmethod
2-
from typing import Optional
32

43
from ..command_builder import ICommandBuilder
54

65

76
class ICommandBuildersDispatcher(ABC):
87
@abstractmethod
9-
def dispatch(self, file_path_abs: str) -> Optional[ICommandBuilder]:
8+
def dispatch(self, file_path_abs: str) -> ICommandBuilder | None:
109
"""
1110
Dispatch is optional for fallback strategy.
1211
"""
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from typing import Optional
2-
31
from ..command_builder import ICommandBuilder, TConcatenatorCommandBuilder
42
from ..file_info_extractor import IFileInfoExtractor
53
from .interface import ICommandBuildersDispatcher
@@ -9,7 +7,7 @@ class TShebangCommandBuildersDispatcher(ICommandBuildersDispatcher):
97
def __init__(self, file_info_extractor: IFileInfoExtractor):
108
self._file_info_extractor: IFileInfoExtractor = file_info_extractor
119

12-
def dispatch(self, file_path_abs: str) -> Optional[ICommandBuilder]:
10+
def dispatch(self, file_path_abs: str) -> ICommandBuilder | None:
1311
if (shebang := self._file_info_extractor.get_shebang(file_path_abs)) is not None:
1412
return TConcatenatorCommandBuilder(shebang)
1513
return None

python_coderunner/src/command_dispatcher_strategy_selector/basic.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from typing import Optional
2-
31
from ..command_builder import ICommandBuilder
42
from ..command_builders_dispatcher import (
53
TFileExtCommandBuildersDispatcher,
@@ -32,20 +30,20 @@ def __init__(
3230
file_type_command_builders_dispatcher
3331
)
3432

35-
def dispatch_by_shebang(self, file_path_abs: str) -> Optional[ICommandBuilder]:
33+
def dispatch_by_shebang(self, file_path_abs: str) -> ICommandBuilder | None:
3634
return self._shebang_command_builders_dispatcher.dispatch(file_path_abs)
3735

38-
def dispatch_by_glob(self, file_path_abs: str) -> Optional[ICommandBuilder]:
36+
def dispatch_by_glob(self, file_path_abs: str) -> ICommandBuilder | None:
3937
return self._glob_command_builders_dispatcher.dispatch(file_path_abs)
4038

41-
def dispatch_by_file_ext(self, file_path_abs: str) -> Optional[ICommandBuilder]:
39+
def dispatch_by_file_ext(self, file_path_abs: str) -> ICommandBuilder | None:
4240
return self._file_ext_command_builders_dispatcher.dispatch(file_path_abs)
4341

44-
def dispatch_by_file_type(self, file_path_abs: str) -> Optional[ICommandBuilder]:
42+
def dispatch_by_file_type(self, file_path_abs: str) -> ICommandBuilder | None:
4543
return self._file_type_command_builders_dispatcher.dispatch(file_path_abs)
4644

47-
def dispatch(self, file_path_abs: str) -> Optional[ICommandBuilder]:
48-
command_builder: Optional[ICommandBuilder] = None
45+
def dispatch(self, file_path_abs: str) -> ICommandBuilder | None:
46+
command_builder: ICommandBuilder | None = None
4947

5048
if (
5149
self._config.get_respect_shebang()

python_coderunner/src/config/basic.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Dict, List, TypeVar
1+
from typing import TypeVar
22

33
from .config_field import TConfigField
44
from .exceptions import ConfigFieldNotFoundError, ConfigFieldValidationError
@@ -10,10 +10,10 @@
1010
class TBasicConfig(IConfig):
1111
def __init__(
1212
self,
13-
by_file_ext_field: TConfigField[Dict[str, str]],
14-
by_file_type_field: TConfigField[Dict[str, str]],
15-
by_glob_field: TConfigField[Dict[str, str]],
16-
dispatchers_order_field: TConfigField[List[EDispatchersTypes]],
13+
by_file_ext_field: TConfigField[dict[str, str]],
14+
by_file_type_field: TConfigField[dict[str, str]],
15+
by_glob_field: TConfigField[dict[str, str]],
16+
dispatchers_order_field: TConfigField[list[EDispatchersTypes]],
1717
coderunner_tempfile_prefix_field: TConfigField[str],
1818
executor_field: TConfigField[str],
1919
ignore_selection_field: TConfigField[bool],
@@ -22,10 +22,10 @@ def __init__(
2222
save_all_files_before_run_field: TConfigField[bool],
2323
save_file_before_run_field: TConfigField[bool],
2424
):
25-
self._by_file_ext_field: TConfigField[Dict[str, str]] = by_file_ext_field
26-
self._by_file_type_field: TConfigField[Dict[str, str]] = by_file_type_field
27-
self._by_glob_field: TConfigField[Dict[str, str]] = by_glob_field
28-
self._dispatchers_order_field: TConfigField[List[EDispatchersTypes]] = dispatchers_order_field
25+
self._by_file_ext_field: TConfigField[dict[str, str]] = by_file_ext_field
26+
self._by_file_type_field: TConfigField[dict[str, str]] = by_file_type_field
27+
self._by_glob_field: TConfigField[dict[str, str]] = by_glob_field
28+
self._dispatchers_order_field: TConfigField[list[EDispatchersTypes]] = dispatchers_order_field
2929
self._coderunner_tempfile_prefix_field: TConfigField[str] = coderunner_tempfile_prefix_field
3030
self._executor_field: TConfigField[str] = executor_field
3131
self._ignore_selection_field: TConfigField[bool] = ignore_selection_field
@@ -44,16 +44,16 @@ def _get_field_value(self, field: TConfigField[ValueType]) -> ValueType:
4444
except (ConfigFieldNotFoundError, ConfigFieldValidationError) as e:
4545
raise ValueError(str(e)) from e
4646

47-
def get_by_file_ext(self) -> Dict[str, str]:
47+
def get_by_file_ext(self) -> dict[str, str]:
4848
return self._get_field_value(self._by_file_ext_field)
4949

50-
def get_by_file_type(self) -> Dict[str, str]:
50+
def get_by_file_type(self) -> dict[str, str]:
5151
return self._get_field_value(self._by_file_type_field)
5252

53-
def get_by_glob(self) -> Dict[str, str]:
53+
def get_by_glob(self) -> dict[str, str]:
5454
return self._get_field_value(self._by_glob_field)
5555

56-
def get_dispatchers_order(self) -> List[EDispatchersTypes]:
56+
def get_dispatchers_order(self) -> list[EDispatchersTypes]:
5757
return self._get_field_value(self._dispatchers_order_field)
5858

5959
def get_coderunner_tempfile_prefix(self) -> str:

0 commit comments

Comments
 (0)