Ejemplo n.º 1
0
    def getNodeDefinitionSourceCode(self, networkName, indent="",
                                    ignoreOriginal=False):

        """subclass baseclass method to add lines to load the molecule in
        Pmv if it is not loaded yet"""

        lines = []
        if self.network.filename is not None:
            lNetworkDir = os.path.dirname(os.path.abspath(self.network.filename))
            lFileName = relpath(lNetworkDir, os.path.abspath(self.mol.parser.filename))
        else:
            lFileName = self.mol.parser.filename

        # we save the name of the file in a path relatives to the network
        s00 = 'import os\n'
        s01 = 'from mglutil.util.relpath import rel2abs\n'
        s02 = "lRelFileName = '%s'\n"%lFileName
        # we prepare the readding with an absolut path
        s03 = 'lNetworkDir = os.path.dirname(os.path.abspath(%s.filename))\n'%networkName
        s04 = 'lAbsFileName = rel2abs(lRelFileName, lNetworkDir)\n'
        
        s1 = 'mol = %s.editor.vf.loadMoleculeIfNeeded(lAbsFileName)\n'%networkName
        s2 = 'assert mol\n'
        lines.append(indent+s00)
        lines.append(indent+s01)
        lines.append(indent+s02)
        lines.append(indent+s03)
        lines.append(indent+s04)
        lines.append(indent+s1)
        lines.append(indent+s2)
        lines.extend(NetworkNode.getNodeDefinitionSourceCode(
            self, networkName, indent, ignoreOriginal) )
        return lines
Ejemplo n.º 2
0
    def getNodeDefinitionSourceCode(self,
                                    networkName,
                                    indent="",
                                    ignoreOriginal=False):
        """subclass baseclass method to add lines to load the molecule in
        Pmv if it is not loaded yet"""

        if self.network.filename is not None:
            lNetworkDir = os.path.dirname(
                os.path.abspath(self.network.filename))
        elif hasattr(self.network, 'macroNode') \
          and self.network.macroNode.network.filename is not None:
            lNetworkDir = os.path.dirname(
                os.path.abspath(self.network.macroNode.network.filename))
        else:
            lNetworkDir = None
            assert False, "my guess is we don't go here"

        lines = []
        molecules = []
        for mol in self.set.top.uniq().data:
            # we save the name of the file in a path relatives to the network
            if lNetworkDir is not None:
                lFileName = relpath(lNetworkDir,
                                    os.path.abspath(mol.parser.filename))
            else:
                lFileName = mol.parser.filename
            molecules.append(lFileName)

        # we prepare the readding with an absolut path
        s0 = 'import os\n'
        s1 = 'from mglutil.util.relpath import rel2abs\n'
        s2 = 'lNetworkDir = os.path.dirname(os.path.abspath(%s.filename))\n' % networkName
        s3 = 'mols = %s\n' % molecules
        s4 = 'for m in mols:\n'
        s5 = '    lAbsFileName = rel2abs(m, lNetworkDir)\n'
        s6 = '    mol = %s.editor.vf.loadMoleculeIfNeeded(lAbsFileName)\n' % networkName
        s7 = '    assert mol\n'
        s8 = 'selString = "%s"\n' % self.selString
        s9 = '%s.editor.vf.loadModule("selectionCommands")\n' % networkName
        s10 = '%s.editor.vf.createSetIfNeeded(selString, "%s")\n' % (
            networkName, self.name)
        s11 = 'from Pmv.selectionCommands import sets__\n'
        lines.append(indent + s0)
        lines.append(indent + s1)
        lines.append(indent + s2)
        lines.append(indent + s3)
        lines.append(indent + s4)
        lines.append(indent + s5)
        lines.append(indent + s6)
        lines.append(indent + s7)
        lines.append(indent + s8)
        lines.append(indent + s9)
        lines.append(indent + s10)
        lines.append(indent + s11)

        lines.extend(
            NetworkNode.getNodeDefinitionSourceCode(self, networkName, indent,
                                                    ignoreOriginal))
        return lines
Ejemplo n.º 3
0
    def getNodeDefinitionSourceCode(self,
                                    networkName,
                                    indent="",
                                    ignoreOriginal=False):
        """subclass baseclass method to add lines to load the molecule in
        Pmv if it is not loaded yet"""

        lines = []
        if self.network.filename is not None:
            lNetworkDir = os.path.dirname(
                os.path.abspath(self.network.filename))
            lFileName = relpath(lNetworkDir,
                                os.path.abspath(self.mol.parser.filename))
        elif hasattr(self.network, 'macroNode') \
          and self.network.macroNode.network.filename is not None:
            lNetworkDir = os.path.dirname(
                os.path.abspath(self.network.macroNode.network.filename))
            lFileName = relpath(lNetworkDir,
                                os.path.abspath(self.mol.parser.filename))
        else:
            lFileName = self.mol.parser.filename

        # we save the name of the file in a path relatives to the network
        s00 = 'import os\n'
        s01 = 'from mglutil.util.relpath import rel2abs\n'
        lFileNameUnix = lFileName.replace('\\', '/')
        s02 = "lRelFileName = '%s'\n" % lFileNameUnix
        # we prepare the readding with an absolut path
        s03 = 'lNetworkDir = os.path.dirname(os.path.abspath(%s.filename))\n' % networkName
        s04 = 'lAbsFileName = rel2abs(lRelFileName, lNetworkDir)\n'

        s1 = 'mol = %s.editor.vf.loadMoleculeIfNeeded(lAbsFileName)\n' % networkName
        s2 = 'assert mol\n'
        lines.append(indent + s00)
        lines.append(indent + s01)
        lines.append(indent + s02)
        lines.append(indent + s03)
        lines.append(indent + s04)
        lines.append(indent + s1)
        lines.append(indent + s2)
        lines.extend(
            NetworkNode.getNodeDefinitionSourceCode(self, networkName, indent,
                                                    ignoreOriginal))
        return lines
Ejemplo n.º 4
0
    def getNodeDefinitionSourceCode(self, networkName, indent="",
                                    ignoreOriginal=False):

        """subclass baseclass method to add lines to load the molecule in
        Pmv if it is not loaded yet"""

        if self.network.filename is not None:
            lNetworkDir = os.path.dirname(os.path.abspath(self.network.filename))
        elif hasattr(self.network, 'macroNode') \
          and self.network.macroNode.network.filename is not None:
            lNetworkDir = os.path.dirname(os.path.abspath(self.network.macroNode.network.filename))
        else:
            lNetworkDir = None
            assert False, "my guess is we don't go here"

        lines = []
        molecules = []
        for mol in self.set.top.uniq().data:
            # we save the name of the file in a path relatives to the network
            if lNetworkDir is not None:
                lFileName = relpath(lNetworkDir, os.path.abspath(mol.parser.filename))
            else:
                lFileName = mol.parser.filename
            molecules.append(lFileName)

        # we prepare the readding with an absolut path
        s0 = 'import os\n'
        s1 = 'from mglutil.util.relpath import rel2abs\n'
        s2 = 'lNetworkDir = os.path.dirname(os.path.abspath(%s.filename))\n'%networkName
        s3 = 'mols = %s\n'%molecules
        s4 = 'for m in mols:\n'
        s5 = '    lAbsFileName = rel2abs(m, lNetworkDir)\n'
        s6 = '    mol = %s.editor.vf.loadMoleculeIfNeeded(lAbsFileName)\n'%networkName
        s7 = '    assert mol\n'
        s8 = 'selString = "%s"\n'%self.selString
        s9 = '%s.editor.vf.loadModule("selectionCommands")\n'%networkName
        s10 = '%s.editor.vf.createSetIfNeeded(selString, "%s")\n'%(networkName, self.name)
        s11 = 'from Pmv.selectionCommands import sets__\n'
        lines.append(indent+s0)
        lines.append(indent+s1)
        lines.append(indent+s2)
        lines.append(indent+s3)
        lines.append(indent+s4)
        lines.append(indent+s5)
        lines.append(indent+s6)
        lines.append(indent+s7)
        lines.append(indent+s8)
        lines.append(indent+s9)
        lines.append(indent+s10)
        lines.append(indent+s11)

        lines.extend(NetworkNode.getNodeDefinitionSourceCode(
            self, networkName, indent, ignoreOriginal) )
        return lines