55import  subprocess 
66from  pathlib  import  Path 
77from  types  import  FunctionType 
8+ from  typing  import  Any 
89
910from  pytask  import  depends_on 
1011from  pytask  import  has_mark 
1314from  pytask  import  parse_nodes 
1415from  pytask  import  produces 
1516from  pytask  import  remove_marks 
17+ from  pytask  import  Session 
1618from  pytask  import  Task 
1719from  pytask_r .serialization  import  SERIALIZERS 
1820from  pytask_r .shared  import  r 
@@ -26,7 +28,9 @@ def run_r_script(script: Path, options: list[str], serialized: Path) -> None:
2628
2729
2830@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 :
3034    """Perform some checks.""" 
3135    __tracebackhide__  =  True 
3236
@@ -62,7 +66,7 @@ def pytask_collect_task(session, path, name, obj):
6266        task  =  Task (
6367            base_name = name ,
6468            path = path ,
65-             function = _copy_func (run_r_script ),
69+             function = _copy_func (run_r_script ),   # type: ignore[arg-type] 
6670            depends_on = dependencies ,
6771            produces = products ,
6872            markers = markers ,
@@ -85,28 +89,33 @@ def pytask_collect_task(session, path, name, obj):
8589        )
8690
8791        return  task 
92+     return  None 
8893
8994
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 :
91101    """Parse a Julia mark.""" 
92102    script , options , serializer , suffix  =  r (** mark .kwargs )
93103
94104    parsed_kwargs  =  {}
95-     for  arg_name , value , default  in  [ 
105+     for  arg_name , value , default  in  ( 
96106        ("script" , script , None ),
97107        ("options" , options , default_options ),
98108        ("serializer" , serializer , default_serializer ),
99-     ] :
100-         parsed_kwargs [arg_name ] =  value  if   value   else  default 
109+     ) :
110+         parsed_kwargs [arg_name ] =  value  or  default 
101111
102-     if  (
103-         isinstance (parsed_kwargs ["serializer" ], str )
112+     proposed_suffix  =  (
113+         SERIALIZERS [parsed_kwargs ["serializer" ]]["suffix" ]
114+         if  isinstance (parsed_kwargs ["serializer" ], str )
104115        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] 
110119
111120    mark  =  Mark ("r" , (), parsed_kwargs )
112121    return  mark 
0 commit comments