Skip to content
Snippets Groups Projects
Commit 528f7621 authored by Timothe Jost's avatar Timothe Jost
Browse files

fixing pipe load autofind the right step

parent 27ac49d9
No related branches found
No related tags found
No related merge requests found
Pipeline #126303 passed
__version__ = "0.0.26"
__version__ = "0.0.27"
from . import loggs
from .pipes import *
......
......@@ -23,6 +23,10 @@ class BaseDiskObject(metaclass=ABCMeta):
disk_version = None
disk_step = None
step: "BaseStep"
session: Session
extra: str
def __init__(self, session: Session, step: "BaseStep", extra="") -> None:
# this object is meant to be short lived. Created, check drive,
# and quickly take action by saving or loading file according to the procedures defined.
......@@ -91,7 +95,7 @@ class BaseDiskObject(metaclass=ABCMeta):
return None
def is_matching(self):
if self.is_loadable() and not self.version_deprecated() and not self.step_level_too_low():
if self.is_loadable() and not (self.version_deprecated() or self.step_level_too_low()):
return True
return False
......
......@@ -130,11 +130,16 @@ class BasePipe(metaclass=ABCMeta):
return function
def load(self, session, extra="", which: Literal["lowest", "highest"] = "highest"):
ordered_steps = sorted(list(self.steps.values()), key=lambda item: item.get_level(selfish=True))
if which == "lowest":
step = ordered_steps[0]
reverse = False
else:
step = ordered_steps[-1]
reverse = True
ordered_steps = sorted(
list(self.steps.values()), key=lambda item: item.get_level(selfish=True), reverse=reverse
)
return step.load(session, extra)
for step in ordered_steps:
if step.get_disk_object(session, extra).is_matching():
return step.load(session, extra)
raise ValueError(f"Could not find a {self} object to load for the session {session.alias} with extra {extra}")
......@@ -143,7 +143,7 @@ class BaseStep:
def get_load_wrapped(self):
@wraps(self.pipe.disk_class.load)
def wrapper(session, extra=None):
def wrapper(session, extra=None, strict=False):
# print("extra in load wrapper : ", extra)
if extra is None:
extra = self.get_default_extra()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment