Hi Ed, Won't the variable "len(file_data[0])" change size depending on the number of datasets used in relax but also on the diffusion tensor selected ? For example, there are 51 fields for a 'local_tm' diffusion using 8 datasets, but 58 fields for an ellipsoid using 9 datasets... Maybe the check for version 1.2 could be something more like : -------------------------- if file_data[0][0:8] == ['Num', 'Name', 'Selected', 'Data_set', 'Nucleus', 'Model', 'Equation', 'Params']: -------------------------- instead of -------------------------- if len(file_data[0]) == 54 and file_data[0][0:8] == ['Num', 'Name', 'Selected', 'Data_set', 'Nucleus', 'Model', 'Equation', 'Params']: -------------------------- This change works for the two cases in example above... What do you think ? Ciao ! Séb edward@xxxxxxxxxxxxx wrote:
Author: bugman Date: Wed May 28 21:35:55 2008 New Revision: 6275 URL: http://svn.gna.org/viewcvs/relax?rev=6275&view=rev Log: Wrote a method for determining which relax version the results file belongs to. Modified: 1.3/specific_fns/model_free/results.py Modified: 1.3/specific_fns/model_free/results.py URL: http://svn.gna.org/viewcvs/relax/1.3/specific_fns/model_free/results.py?rev=6275&r1=6274&r2=6275&view=diff ============================================================================== --- 1.3/specific_fns/model_free/results.py (original) +++ 1.3/specific_fns/model_free/results.py Wed May 28 21:35:55 2008 @@ -38,6 +38,32 @@ class Results: """Class containing methods specific to the model-free results files.""" + def __determine_version(self, file_data): + """Determine which relax version the results file belongs to. + + @param file_data: The processed results file data. + @type file_data: list of lists of str + @return: The relax version number. + @rtype: str + @raises RelaxError: If the relax version the model-free results file belongs to cannot be + determined. + """ + + # relax 1.2 results file (test for the 1.2 header line). + if len(file_data[0]) == 54 and file_data[0][0:8] == ['Num', 'Name', 'Selected', 'Data_set', 'Nucleus', 'Model', 'Equation', 'Params']: + version = '1.2' + + # Can't determine the file version. + else: + raise RelaxError, "Cannot determine the relax version the model-free results file belongs to." + + # Print out. + print "relax " + version + " model-free results file." + + # Return the version. + return version + + def read_columnar_col_numbers(self, header): """Function for sorting the column numbers from the columnar formatted results file.""" @@ -721,6 +747,9 @@ @type verbosity: int """ + # Determine the results file version. + version = self.__determine_version(file_data) + # Extract and remove the header. header = file_data[0] file_data = file_data[1:] _______________________________________________ relax (http://nmr-relax.com) This is the relax-commits mailing list relax-commits@xxxxxxx To unsubscribe from this list, get a password reminder, or change your subscription options, visit the list information page at https://mail.gna.org/listinfo/relax-commits