5
5
import subprocess
6
6
from pathlib import Path
7
7
from types import FunctionType
8
+ from typing import Any
8
9
9
10
from pytask import depends_on
10
11
from pytask import has_mark
13
14
from pytask import parse_nodes
14
15
from pytask import produces
15
16
from pytask import remove_marks
17
+ from pytask import Session
16
18
from pytask import Task
17
19
from pytask_r .serialization import SERIALIZERS
18
20
from pytask_r .shared import r
@@ -26,7 +28,9 @@ def run_r_script(script: Path, options: list[str], serialized: Path) -> None:
26
28
27
29
28
30
@hookimpl
29
- def pytask_collect_task (session , path , name , obj ):
31
+ def pytask_collect_task (
32
+ session : Session , path : Path , name : str , obj : Any
33
+ ) -> Task | None :
30
34
"""Perform some checks."""
31
35
__tracebackhide__ = True
32
36
@@ -62,7 +66,7 @@ def pytask_collect_task(session, path, name, obj):
62
66
task = Task (
63
67
base_name = name ,
64
68
path = path ,
65
- function = _copy_func (run_r_script ),
69
+ function = _copy_func (run_r_script ), # type: ignore[arg-type]
66
70
depends_on = dependencies ,
67
71
produces = products ,
68
72
markers = markers ,
@@ -85,28 +89,33 @@ def pytask_collect_task(session, path, name, obj):
85
89
)
86
90
87
91
return task
92
+ return None
88
93
89
94
90
- def _parse_r_mark (mark , default_options , default_serializer , default_suffix ):
95
+ def _parse_r_mark (
96
+ mark : Mark ,
97
+ default_options : list [str ] | None ,
98
+ default_serializer : str ,
99
+ default_suffix : str ,
100
+ ) -> Mark :
91
101
"""Parse a Julia mark."""
92
102
script , options , serializer , suffix = r (** mark .kwargs )
93
103
94
104
parsed_kwargs = {}
95
- for arg_name , value , default in [
105
+ for arg_name , value , default in (
96
106
("script" , script , None ),
97
107
("options" , options , default_options ),
98
108
("serializer" , serializer , default_serializer ),
99
- ] :
100
- parsed_kwargs [arg_name ] = value if value else default
109
+ ) :
110
+ parsed_kwargs [arg_name ] = value or default
101
111
102
- if (
103
- isinstance (parsed_kwargs ["serializer" ], str )
112
+ proposed_suffix = (
113
+ SERIALIZERS [parsed_kwargs ["serializer" ]]["suffix" ]
114
+ if isinstance (parsed_kwargs ["serializer" ], str )
104
115
and parsed_kwargs ["serializer" ] in SERIALIZERS
105
- ):
106
- proposed_suffix = SERIALIZERS [parsed_kwargs ["serializer" ]]["suffix" ]
107
- else :
108
- proposed_suffix = default_suffix
109
- parsed_kwargs ["suffix" ] = suffix if suffix else proposed_suffix
116
+ else default_suffix
117
+ )
118
+ parsed_kwargs ["suffix" ] = suffix or proposed_suffix # type: ignore[assignment]
110
119
111
120
mark = Mark ("r" , (), parsed_kwargs )
112
121
return mark
0 commit comments