示例#1
0
    def open(self, filename):
        """
        Loads a snapshot, in the form of a json, file off disk and applies the
        values it pulls to the currently active dependency graph.  Cleans up
        the UI accordingly.
        """
        if not os.path.exists(filename):
            return False

        # Load the snapshot off disk
        with open(filename, 'rb') as fp:
            snapshot = json.loads(fp.read())

        # Apply the data to the in-flight Dag
        self.dag.restoreSnapshot(snapshot["DAG"])

        # Initialize the objects inside the graphWidget & restore the scene
        self.graphicsScene.restoreSnapshot(snapshot["DAG"])

        # Variable substitutions
        self.clearVariableDictionary()
        for v in snapshot["DAG"]["VARIABLE_SUBSTITIONS"]:
            depends_variables.variableSubstitutions[v["NAME"]] = (v["VALUE"],
                                                                  False)

        # The current session gets a variable representing the location of the current workflow
        if 'WORKFLOW_DIR' not in depends_variables.names():
            depends_variables.add('WORKFLOW_DIR')
        depends_variables.setx('WORKFLOW_DIR',
                               os.path.dirname(filename),
                               readOnly=True)

        # Additional meta-data loading
        if "RELOAD_PLUGINS_FILENAME_TEMP" in snapshot:
            filename = snapshot["RELOAD_PLUGINS_FILENAME_TEMP"]

        # UI tidies
        self.undoStack.clear()
        self.undoStack.setClean()
        self.workingFilename = filename
        self.setWindowTitle("Depends (%s)" % self.workingFilename)
        self.variableWidget.rebuild(depends_variables.variableSubstitutions)

        self.addRecentItem(filename)
        self.rebuildRecentMenu()
        return True
示例#2
0
    def open(self, filename):
        """
        Loads a snapshot, in the form of a json, file off disk and applies the
        values it pulls to the currently active dependency graph.  Cleans up
        the UI accordingly.
        """
        if not os.path.exists(filename):
            return False
        
        # Load the snapshot off disk
        with open(filename, 'rb') as fp:
            snapshot = json.loads(fp.read())
            
        # Apply the data to the in-flight Dag
        self.dag.restoreSnapshot(snapshot["DAG"])

        # Initialize the objects inside the graphWidget & restore the scene
        self.graphicsScene.restoreSnapshot(snapshot["DAG"])


        # Variable substitutions
        self.clearVariableDictionary()
        for v in snapshot["DAG"]["VARIABLE_SUBSTITIONS"]:
            depends_variables.variableSubstitutions[v["NAME"]] = (v["VALUE"], False)

        # The current session gets a variable representing the location of the current workflow
        if 'WORKFLOW_DIR' not in depends_variables.names():
            depends_variables.add('WORKFLOW_DIR')
        depends_variables.setx('WORKFLOW_DIR', os.path.dirname(filename), readOnly=True)

        # Additional meta-data loading
        if "RELOAD_PLUGINS_FILENAME_TEMP" in snapshot:
            filename = snapshot["RELOAD_PLUGINS_FILENAME_TEMP"]

        # UI tidies
        self.undoStack.clear()
        self.undoStack.setClean()
        self.workingFilename = filename
        self.setWindowTitle("Depends (%s)" % self.workingFilename)
        self.variableWidget.rebuild(depends_variables.variableSubstitutions)

        self.addRecentItem(filename)
        self.rebuildRecentMenu()
        return True
示例#3
0
    def setupStartupVariables(self):
        """
        Each program starts with a set of workflow variables that are defined
        by where the program is executed from and potentially a set of
        environment variables.
        """
        # The current session gets a "binary directory" variable
        depends_variables.add('DEPENDS_DIR')
        depends_variables.setx('DEPENDS_DIR', os.path.dirname(os.path.realpath(__file__)), readOnly=True)

        # ...And a path that points to where the nodes are loaded from
        depends_variables.add('NODE_PATH')
        if not os.environ.get('DEPENDS_NODE_PATH'):
            depends_variables.setx('NODE_PATH', os.path.join(depends_variables.value('DEPENDS_DIR'), 'nodes'), readOnly=True)
        else:
            depends_variables.setx('NODE_PATH', os.environ.get('DEPENDS_NODE_PATH'), readOnly=True)
示例#4
0
    def setupStartupVariables(self):
        """
        Each program starts with a set of workflow variables that are defined
        by where the program is executed from and potentially a set of
        environment variables.
        """
        # The current session gets a "binary directory" variable
        depends_variables.add('DEPENDS_DIR')
        depends_variables.setx('DEPENDS_DIR',
                               os.path.dirname(os.path.realpath(__file__)),
                               readOnly=True)

        # ...And a path that points to where the nodes are loaded from
        depends_variables.add('NODE_PATH')
        if not os.environ.get('DEPENDS_NODE_PATH'):
            depends_variables.setx('NODE_PATH',
                                   os.path.join(
                                       depends_variables.value('DEPENDS_DIR'),
                                       'nodes'),
                                   readOnly=True)
        else:
            depends_variables.setx('NODE_PATH',
                                   os.environ.get('DEPENDS_NODE_PATH'),
                                   readOnly=True)