2424from _pytask .node_protocols import PTaskWithPath
2525from _pytask .path import hash_path
2626from _pytask .typing import NoDefault
27+ from _pytask .typing import NodePath
2728from _pytask .typing import no_default
2829
2930if TYPE_CHECKING :
3031 from collections .abc import Callable
31- from io import BufferedReader
32- from io import BufferedWriter
3332 from pathlib import Path
33+ from typing import BinaryIO
3434
3535 from _pytask .mark import Mark
3636 from _pytask .models import NodeInfo
@@ -176,7 +176,7 @@ class PathNode(PPathNode):
176176
177177 """
178178
179- path : Path
179+ path : NodePath
180180 name : str = ""
181181 attributes : dict [Any , Any ] = field (default_factory = dict )
182182
@@ -187,7 +187,7 @@ def signature(self) -> str:
187187 return hashlib .sha256 (raw_key .encode ()).hexdigest ()
188188
189189 @classmethod
190- def from_path (cls , path : Path ) -> PathNode :
190+ def from_path (cls , path : NodePath ) -> PathNode :
191191 """Instantiate class from path to file."""
192192 return cls (name = path .as_posix (), path = path )
193193
@@ -199,7 +199,7 @@ def state(self) -> str | None:
199199 """
200200 return get_state_of_path (self .path )
201201
202- def load (self , is_product : bool = False ) -> Path : # noqa: ARG002
202+ def load (self , is_product : bool = False ) -> NodePath : # noqa: ARG002
203203 """Load the value."""
204204 return self .path
205205
@@ -330,11 +330,11 @@ class PickleNode(PPathNode):
330330
331331 """
332332
333- path : Path
333+ path : NodePath
334334 name : str = ""
335335 attributes : dict [Any , Any ] = field (default_factory = dict )
336- serializer : Callable [[Any , BufferedWriter ], None ] = field (default = pickle .dump )
337- deserializer : Callable [[BufferedReader ], Any ] = field (default = pickle .load )
336+ serializer : Callable [[Any , BinaryIO ], None ] = field (default = pickle .dump )
337+ deserializer : Callable [[BinaryIO ], Any ] = field (default = pickle .load )
338338
339339 @property
340340 def signature (self ) -> str :
@@ -343,7 +343,7 @@ def signature(self) -> str:
343343 return hashlib .sha256 (raw_key .encode ()).hexdigest ()
344344
345345 @classmethod
346- def from_path (cls , path : Path ) -> PickleNode :
346+ def from_path (cls , path : NodePath ) -> PickleNode :
347347 """Instantiate class from path to file."""
348348 if not path .is_absolute ():
349349 msg = "Node must be instantiated from absolute path."
@@ -409,7 +409,7 @@ def collect(self) -> list[Path]:
409409 return list (self .root_dir .glob (self .pattern )) # type: ignore[union-attr]
410410
411411
412- def get_state_of_path (path : Path ) -> str | None :
412+ def get_state_of_path (path : NodePath ) -> str | None :
413413 """Get state of a path.
414414
415415 A simple function to handle local and remote files.
@@ -436,7 +436,7 @@ def get_state_of_path(path: Path) -> str | None:
436436
437437
438438@deprecated ("Use 'pytask.get_state_of_path' instead." )
439- def _get_state (path : Path ) -> str | None :
439+ def _get_state (path : NodePath ) -> str | None :
440440 """Get state of a path.
441441
442442 A simple function to handle local and remote files.
0 commit comments