From ceeab129c5d8a8c0036dba6f6f62ae5d96012693 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Mon, 22 Feb 2010 17:23:34 +0000 Subject: [PATCH 1/4] Trunk moved to a legacy branch 0.1. Upgrading to the apidesign branch. From 25ccc2c81da70e07769eaf1471128d041d82a4db Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Thu, 11 Mar 2010 19:19:54 +0000 Subject: [PATCH 2/4] Added support for writing the colored structure to standard output. --- .../srreal01/applications/colorFromOverlap.py | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/diffpy/srreal01/applications/colorFromOverlap.py b/diffpy/srreal01/applications/colorFromOverlap.py index 9f929d9a..695a2040 100755 --- a/diffpy/srreal01/applications/colorFromOverlap.py +++ b/diffpy/srreal01/applications/colorFromOverlap.py @@ -13,6 +13,8 @@ not specified, use composition from structfile1. -l, --latpar=a,b,c,A,B,G override lattice parameters in structfiles. -o, --outstru=FILE Filename for saving the best fitting structure. + Write to the standard output when "-" and suppress + any other output. --outfmt=FORMAT Output format for outstru, by default "discus" Can be any format supported by diffpy.Structure. -r, --radia=A1:r1,... Redefine element radia. By default use covalent @@ -30,6 +32,7 @@ __id__ = "$Id$" import sys +import logging # global variables gl_doc = __doc__ @@ -48,6 +51,15 @@ "V", "version", ] +# output logger +outlog = logging.getLogger("colorFromOverlap") +outlog.setLevel(logging.INFO) +ch = logging.StreamHandler() +ch.setFormatter(logging.Formatter("%(message)s")) +outlog.addHandler(ch) +del ch + + class ColorFromOverlap(object): """Class for running overlap optimization script. """ @@ -104,11 +116,11 @@ def run(self): optcost, optstru = self.optimizeColoring(stru) self.optimized_costs.append(optcost) self.optimized_structures.append(optstru) - print f, optcost, getcoloring(optstru) + outlog.info("%s %g %r", f, optcost, getcoloring(optstru)) cbest, fbest, strubest = min(zip( self.optimized_costs, self.structfiles, self.optimized_structures)) - print "# BEST " + (78 - 7) * '-' - print fbest, cbest, getcoloring(strubest) + outlog.info("# BEST " + (78 - 7) * '-') + outlog.info("%s %g %r", fbest, cbest, getcoloring(strubest)) self.saveOutstru() return @@ -256,7 +268,11 @@ def saveOutstru(self): from numpy import argmin idx = argmin(self.optimized_costs) stru = self.optimized_structures[idx] - stru.write(self.outstru, format=self.outfmt) + if self.outstru == '-': + s = stru.writeStr(format=self.outfmt) + sys.stdout.write(s) + else: + stru.write(self.outstru, format=self.outfmt) return @@ -379,6 +395,8 @@ def _parseOption_latpar(self, a): def _parseOption_outstru(self, a): self.outstru = a + if self.outstru == "-": + outlog.setLevel(logging.WARNING) return def _parseOption_outfmt(self, a): @@ -459,6 +477,10 @@ def main(): raise print >> sys.stderr, err sys.exit(2) + return + if __name__ == "__main__": main() + +# End of file From 0acf7e124ef35184977274ed835aa3fe8e243694 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Thu, 11 Mar 2010 19:28:49 +0000 Subject: [PATCH 3/4] Write to the standard output not error. --- diffpy/srreal01/applications/colorFromOverlap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diffpy/srreal01/applications/colorFromOverlap.py b/diffpy/srreal01/applications/colorFromOverlap.py index 695a2040..b47ce597 100755 --- a/diffpy/srreal01/applications/colorFromOverlap.py +++ b/diffpy/srreal01/applications/colorFromOverlap.py @@ -54,7 +54,7 @@ # output logger outlog = logging.getLogger("colorFromOverlap") outlog.setLevel(logging.INFO) -ch = logging.StreamHandler() +ch = logging.StreamHandler(sys.stdout) ch.setFormatter(logging.Formatter("%(message)s")) outlog.addHandler(ch) del ch From 40335abc9617edaabb25b929f68de5eb2c9c2040 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Sun, 22 May 2011 21:07:13 +0000 Subject: [PATCH 4/4] Honor the formula argument in the coloring of the initial structure. --- diffpy/srreal01/applications/colorFromOverlap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diffpy/srreal01/applications/colorFromOverlap.py b/diffpy/srreal01/applications/colorFromOverlap.py index b47ce597..8bc9288c 100755 --- a/diffpy/srreal01/applications/colorFromOverlap.py +++ b/diffpy/srreal01/applications/colorFromOverlap.py @@ -226,7 +226,7 @@ def optimizeColoring(self, stru): # use initialAtomConflicts to setup proper atom radii ac = self.initialAtomConflicts(stru) # undo site shuffling - ac.setStructure(stru) + ac.setSiteColoring(self.expanded_formula) coststru = [(self.cost(ac), ac.getStructure())] for i in range(self.repeats): ac0 = self.initialAtomConflicts(stru)