Skip to content

Commit

Permalink
workflow fixes (#89)
Browse files Browse the repository at this point in the history
  • Loading branch information
stevehenke authored Jun 10, 2024
1 parent a06d067 commit 82388c3
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 0 deletions.
8 changes: 8 additions & 0 deletions ptychodus/api/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ def openProbe(self, filePath: Path, *, fileType: str | None = None) -> None:
def buildProbe(self, builderName: str, builderParameters: Mapping[str, Any] = {}) -> None:
pass

@abstractmethod
def buildProbeFromSettings(self) -> None:
pass

@abstractmethod
def openObject(self, filePath: Path, *, fileType: str | None = None) -> None:
pass
Expand All @@ -34,6 +38,10 @@ def openObject(self, filePath: Path, *, fileType: str | None = None) -> None:
def buildObject(self, builderName: str, builderParameters: Mapping[str, Any] = {}) -> None:
pass

@abstractmethod
def buildObjectFromSettings(self) -> None:
pass

@abstractmethod
def reconstruct(self) -> None:
pass
Expand Down
30 changes: 30 additions & 0 deletions ptychodus/model/product/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,21 @@ def buildProbe(self,

item.setBuilder(builder)

def buildProbeFromSettings(self, index: int) -> None:
try:
item = self._repository[index]
except IndexError:
logger.warning(f'Failed to access item {index}!')
return

try:
builder = self._builderFactory.createFromSettings()
except KeyError:
logger.warning('Failed to create builder from settings!')
return

item.setBuilder(builder)

def getOpenFileFilterList(self) -> Sequence[str]:
return self._builderFactory.getOpenFileFilterList()

Expand Down Expand Up @@ -233,6 +248,21 @@ def buildObject(self,

item.setBuilder(builder)

def buildObjectFromSettings(self, index: int) -> None:
try:
item = self._repository[index]
except IndexError:
logger.warning(f'Failed to access item {index}!')
return

try:
builder = self._builderFactory.createFromSettings()
except KeyError:
logger.warning('Failed to create builder from settings!')
return

item.setBuilder(builder)

def getOpenFileFilterList(self) -> Sequence[str]:
return self._builderFactory.getOpenFileFilterList()

Expand Down
6 changes: 6 additions & 0 deletions ptychodus/model/workflow/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,18 @@ def openProbe(self, filePath: Path, *, fileType: str | None = None) -> None:
def buildProbe(self, builderName: str, builderParameters: Mapping[str, Any] = {}) -> None:
self._probeAPI.buildProbe(self._productIndex, builderName, builderParameters)

def buildProbeFromSettings(self) -> None:
self._probeAPI.buildProbeFromSettings(self._productIndex)

def openObject(self, filePath: Path, *, fileType: str | None = None) -> None:
self._objectAPI.openObject(self._productIndex, filePath, fileType=fileType)

def buildObject(self, builderName: str, builderParameters: Mapping[str, Any] = {}) -> None:
self._objectAPI.buildObject(self._productIndex, builderName, builderParameters)

def buildObjectFromSettings(self) -> None:
self._objectAPI.buildObjectFromSettings(self._productIndex)

def reconstruct(self) -> None:
logger.debug(f'Execute Workflow: index={self._productIndex}')
self._executor.runFlow(self._productIndex)
Expand Down
3 changes: 3 additions & 0 deletions ptychodus/ptychodus_bdp.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ def main() -> int:
parser.add_argument(
'-c',
'--comment',
default='',
help='data product comment',
)
parser.add_argument(
Expand Down Expand Up @@ -214,6 +215,8 @@ def main() -> int:
exposureTimeInSeconds=args.exposure_time_s,
)
workflowProductAPI.openScan(Path(args.scan_file_path.name))
workflowProductAPI.buildProbeFromSettings()
workflowProductAPI.buildObjectFromSettings()

stagingDir = args.output_directory
stagingDir.mkdir(parents=True, exist_ok=True)
Expand Down

0 comments on commit 82388c3

Please sign in to comment.