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
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
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
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