diff --git a/phasecalculator/io/phasetransferxmlcreator.py b/phasecalculator/io/phasetransferxmlcreator.py index dce1d740356b26ed458523196c904e02427f6b29..affa4fbbba9c2df24d3a34b215b0000c0b799f4c 100755 --- a/phasecalculator/io/phasetransferxmlcreator.py +++ b/phasecalculator/io/phasetransferxmlcreator.py @@ -30,40 +30,6 @@ logging.basicConfig() LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.WARN) -def create_phase_and_solvent_files(mole_fraction_dict_list, temperature_info, solvent_filename, phase_filename, **kwargs): - """Create phase XML and solvent XML files for given composiiton and - temperature information. - - Parameters - ---------- - mole_fraction_dict_list : list of dicts - List of dictionaries of name: mole fraction pairs per phase/solvent to - create. - temperature_info : list of dicts - Temperature information with dictionaries containing value and unit. - solvent_filename : str - Solvent XML output filename. - phase_filename : str - Phase XML output filename. - solvent_filename : str, optional - Filename for file containing solvent information. Defaults to file in - phasexmlcreator module. - ssip_filename_list : list of str, optional - Filenames for SSIP XML files. Defaults to SSIP files in pureinformation - module. - name_inchikey_map : dict, optional - inchikey: name pairs. Defaults to names of solvents in pureinformation - module. - - Returns - ------- - None. - - """ - solvent_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs) - write_solvent_file(solvent_info_list, solvent_filename) - write_phase_file(solvent_info_list, temperature_info, phase_filename) - def create_solvent_file(mole_fraction_dict_list, solvent_filename, **kwargs): """Create solvent XML file for given compositions. @@ -92,7 +58,7 @@ def create_solvent_file(mole_fraction_dict_list, solvent_filename, **kwargs): solvent_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs) write_solvent_file(solvent_info_list, solvent_filename) -def create_phase_file(mole_fraction_dict_list, temperature_info, phase_filename, **kwargs): +def create_phase_file(mole_fraction_dict_list_by_temp, phase_filename, **kwargs): """Create phase XML file for given compositions and temperatures. Parameters @@ -119,8 +85,11 @@ def create_phase_file(mole_fraction_dict_list, temperature_info, phase_filename, None. """ - phase_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs) - write_phase_file(phase_info_list, temperature_info, phase_filename) + phase_info_by_temp = [] + for temperature_info, mole_fraction_dict_list in mole_fraction_dict_list_by_temp: + phase_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs) + phase_info_by_temp.append([temperature_info, phase_info_list]) + write_phase_file(phase_info_by_temp, phase_filename) def write_solvent_file(solvent_info_list, solvent_filename): """Write solvent XML file for given compositions. @@ -141,16 +110,17 @@ def write_solvent_file(solvent_info_list, solvent_filename): solvmake.write_solvent_information_to_file(solvent_info_list, solvent_filename) -def write_phase_file(phase_info_list, temperature_info, phase_filename): +def write_phase_file(phase_info_list_by_temp, phase_filename): """Write phase XML file for given compositions and temperatures. Parameters ---------- - phase_info_list : list of dicts - List of dictionaries of information to create XML for given phase - compositions. - temperature_info : list of dicts - Temperature information with dictionaries containing value and unit. + phase_info_list_by_temp : list of lists + List of lists. Each element of top level list contains a temperature_info + dictionary and a list of dictionaries of phase composition information. + Temperature information dictionary contains temperature value and unit. + This is to create XML for given phase compositions at the accompanying + temperature. phase_filename : str Output filename. @@ -159,7 +129,7 @@ def write_phase_file(phase_info_list, temperature_info, phase_filename): None. """ - phasemake.write_phase_information_to_file(phase_info_list, temperature_info, phase_filename) + phasemake.write_phase_information_to_file_diff_temp(phase_info_list_by_temp, phase_filename) def generate_solv_info_list(mole_fraction_dict_list, **kwargs): """Generate solvent info from read in SSIP files and solvent information. diff --git a/phasecalculator/test/iotest/phasetransferxmlcreatortest.py b/phasecalculator/test/iotest/phasetransferxmlcreatortest.py index 23660ad4e62e589e1a59cd7673dcdd8c155dc4f1..e301282614fbcb9905375b59c61613be1ac762e9 100755 --- a/phasecalculator/test/iotest/phasetransferxmlcreatortest.py +++ b/phasecalculator/test/iotest/phasetransferxmlcreatortest.py @@ -171,27 +171,8 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase): os.remove(self.phase_filename) if os.path.isfile(self.solvent_filename): os.remove(self.solvent_filename) - def test_create_phase_and_solvent_files(self): - """Test - - Returns - ------- - None. - - """ - phasexmlmaker.create_phase_and_solvent_files(self.mole_fraction_dict_list, self.temperature_info, self.solvent_filename, self.phase_filename) - with open(self.phase_filename, "r") as act_file: - actual_contents = act_file.read() - with open(self.expected_phase_file, "r") as exp_file: - expected_contents = exp_file.read() - self.assertMultiLineEqual(expected_contents, actual_contents) - with open(self.solvent_filename, "r") as act_file: - actual_contents = act_file.read() - with open(self.expected_solvent_file, "r") as exp_file: - expected_contents = exp_file.read() - self.assertMultiLineEqual(expected_contents, actual_contents) def test_create_solvent_file(self): - """Test + """Test expected file produced. Returns ------- @@ -205,21 +186,21 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase): expected_contents = exp_file.read() self.assertMultiLineEqual(expected_contents, actual_contents) def test_create_phase_file(self): - """Test + """Test expected file produced. Returns ------- None. """ - phasexmlmaker.create_phase_file(self.mole_fraction_dict_list, self.temperature_info, self.phase_filename) + phasexmlmaker.create_phase_file([[self.temperature_info, self.mole_fraction_dict_list]], self.phase_filename) with open(self.phase_filename, "r") as act_file: actual_contents = act_file.read() with open(self.expected_phase_file, "r") as exp_file: expected_contents = exp_file.read() self.assertMultiLineEqual(expected_contents, actual_contents) def test_write_solvent_file(self): - """Test + """Test expected file produced. Returns ------- @@ -233,21 +214,21 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase): expected_contents = exp_file.read() self.assertMultiLineEqual(expected_contents, actual_contents) def test_write_phase_file(self): - """Test + """Test expected file produced. Returns ------- None. """ - phasexmlmaker.write_phase_file(self.solvent_info_list, self.temperature_info, self.phase_filename) + phasexmlmaker.write_phase_file([[self.temperature_info, self.solvent_info_list]], self.phase_filename) with open(self.phase_filename, "r") as act_file: actual_contents = act_file.read() with open(self.expected_phase_file, "r") as exp_file: expected_contents = exp_file.read() self.assertMultiLineEqual(expected_contents, actual_contents) def test_generate_solv_info_list(self): - """Test + """Test expected list produced. Returns -------