Source code for diffpy.pdfgui.tui

#!/usr/bin/env python
##############################################################################
#
# PDFgui            by DANSE Diffraction group
#                   Simon J. L. Billinge
#                   (c) 2008 trustees of the Michigan State University.
#                   All rights reserved.
#
# File coded by:    Pavol Juhas
#
# See AUTHORS.txt for a list of people who contributed.
# See LICENSE.txt for license information.
#
##############################################################################
"""Text user interface - utilities for extracting data from project files.
"""


[docs] class LoadProject: """Load and access data in pdfgui project file. Protected instance data: _project -- instance of PDFGuiControl with loaded project file. """ # public methods def __init__(self, filename=None): """Initialize LoadProject object, by reading existing project file. filename -- path to PDFgui project file. """ from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl self._project = PDFGuiControl() # business if filename is not None: self.load(filename) return
[docs] def load(self, filename): """Load a project. filename -- path to PDFgui project file. No return value. """ self._project.load(filename) return
[docs] def save(self, filename): """Save the project. filename -- path where to write the PDFgui project. No return value. """ self._project.save(filename) return
[docs] def getFits(self): """Get all fits defined in the project file. Return list of Fitting objects. """ rv = self._project.fits[:] return rv
[docs] def getDataSets(self, fits=None): """Return a list of all datasets contained in specified fits. fits -- optional list of Fitting objects that own datasets. When not specified, get datasets from all fits defined in the project. Return list of FitDataSet objects. """ if fits is None: fitlist = self.getFits() else: fitlist = fits rv = sum([fit.datasets for fit in fitlist], []) return rv
[docs] def getCalculations(self, fits=None): """Return list of all calculations contained in specified fits. fits -- optional list of Fitting objects that own datasets. When not specified, get datasets from all fits defined in the project. Return list of Calculation objects. """ if fits is None: fitlist = self.getFits() else: fitlist = fits rv = sum([fit.calcs for fit in fitlist], []) return rv
[docs] def getPhases(self, fits=None): """Collect all phases contained in specified fits. fits -- optional list of Fitting objects that own datasets. When not specified, get phases from all fits defined in the project. Return list of FitStructure objects. """ if fits is None: fitlist = self.getFits() else: fitlist = fits rv = sum([fit.strucs for fit in fitlist], []) return rv
[docs] def getTemperatures(self, datasets=None): """Extract temperatures from a list of datasets. datasets -- optional list of FitDataSet objects. When not specified, temperatures are extracted from all datasets in the project. Return list of floating point values. The list may contain None-s for datasets with undefined temperature. """ if datasets is None: dslist = self.getDataSets() else: dslist = datasets temperatures = [ds.metadata.get("temperature") for ds in dslist] return temperatures
[docs] def getDopings(self, datasets=None): """Extract doping values from a list of datasets. datasets -- optional list of FitDataSet objects. When not specified, doping values are extracted from all datasets in the project. Return list of floating point values. The list may contain None-s for datasets with undefined doping. """ if datasets is None: dslist = self.getDataSets() else: dslist = datasets dopings = [ds.metadata.get("doping") for ds in dslist] return dopings
# End of class LoadProject