Source code for ewoksid11.pdfgetx_config

from ewokscore import Task

try:
    from diffpy import pdfgetx
except ImportError:
    pdfgetx = None


[docs]class PdfGetXConfig( Task, optional_input_names=["filename", "pdfgetx_options_dict"], output_names=["pdfgetx_options"], ): """Parse pdfgetx config parameters"""
[docs] def run(self): if pdfgetx is None: raise RuntimeError("requires 'diffpy'") pdfgetx_options = self.merged_pdfgetx_config() self.outputs.pdfgetx_options = pdfgetx_options
[docs] def merged_pdfgetx_config(self): """Merge pdfgetx options in this order of priority: - filename (lowest priority) - pdfgetx_options (highest priority) """ if self.inputs.filename: options = pdfgetx.loadPDFConfig(self.inputs.filename) else: options = pdfgetx.PDFConfig() pdfgetx_options = self.get_input_value("pdfgetx_options_dict", dict()) for key, value in pdfgetx_options.items(): setattr(options, key, value) return options