def load_workspace_from_description(self, description): from pycam.Flow.history import merge_history_and_block_events from pycam.Flow.parser import parse_yaml, validate_collections, RestoreCollectionsOnError with merge_history_and_block_events(self.settings): with RestoreCollectionsOnError(): parse_yaml(description, excluded_sections={ CollectionName.TOOLPATHS, CollectionName.EXPORTS }, reset=True) validate_collections()
def main_func(): args = get_args() _log.setLevel(LOG_LEVELS[args.log_level]) for fname in args.sources: try: parse_yaml(fname) except pycam.errors.PycamBaseException as exc: print("Flow description parse failure ({}): {}".format(fname, exc), file=sys.stderr) sys.exit(1) pycam.Utils.set_application_key("pycam-cli") for export in pycam.workspace.data_models.Export.get_collection(): export.run_export()
def restore_previous_state(self): if len(self._revisions) > 1: self._revisions.pop() event_handler = get_event_handler() # we do not expect a "change" since we switch to a previous state with self.merge_changes(no_store=True): with event_handler.blocked_events(self.subscribed_events, emit_after=True): source = io.StringIO(self._revisions[-1].dump) parse_yaml(source, reset=True) _log.info("Restored previous state from history (%d/%d)", len(self._revisions) + 1, self.max_revision_count) event_handler.emit_event("history-changed") return True else: _log.warning("Failed to restore previous state from history: no more states left") return False