Ignore:
Timestamp:
Feb 14, 2015 9:16:03 AM (9 years ago)
Author:
krzywon
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
10a483f
Parents:
b3133fd
Message:

Modified data loading error messages to be much more specific and
include information in the console log about the specific errors
generated.

The cansas reader is now loading non-standard units (ie counts), but
shows a specific error message about the issue.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/dataloader/readers/cansas_reader.py

    r79492222 rb3efb7d  
    307307        if 'unit' in attr and new_current_level.get('unit') is not None: 
    308308            try: 
     309                local_unit = attr['unit'] 
    309310                if isinstance(node_value, float) is False: 
    310311                    exec("node_value = float({0})".format(node_value)) 
     
    312313                unitname = new_current_level.get("unit") 
    313314                exec "default_unit = data1d.{0}".format(unitname) 
    314                 local_unit = attr['unit'] 
    315                 if local_unit.lower() != default_unit.lower() and \ 
    316                     local_unit is not None and local_unit.lower() != "none" \ 
    317                         and default_unit is not None: 
     315                if local_unit is not None and default_unit is not None and \ 
     316                        local_unit.lower() != default_unit.lower() \ 
     317                        and local_unit.lower() != "none": 
    318318                    if HAS_CONVERTER == True: 
    319                         try: 
    320                             ## Check local units - bad units raise KeyError 
    321                             Converter(local_unit) 
    322                             data_conv_q = Converter(attr['unit']) 
    323                             value_unit = default_unit 
    324                             i_string = "node_value = data_conv_q" 
    325                             i_string += "(node_value, units=data1d.{0})" 
    326                             exec i_string.format(unitname) 
    327                         except KeyError: 
    328                             err_msg = "CanSAS reader: could not convert " 
    329                             err_msg += "{0} unit {1}; " 
    330                             err_msg = err_msg.format(tagname, local_unit) 
    331                             intermediate = "err_msg += " + \ 
    332                                         "\"expecting [{1}]  {2}\"" + \ 
    333                                         ".format(data1d.{0}, " + \ 
    334                                         "sys.exc_info()[1])" 
    335                             exec intermediate.format(unitname, "{0}", "{1}") 
    336                             self.errors.append(err_msg) 
    337                             raise ValueError(err_msg) 
    338                         except: 
    339                             err_msg = \ 
    340                                 "CanSAS reader: could not convert the units" 
    341                             self.errors.append(err_msg) 
    342                             return 
     319                        ## Check local units - bad units raise KeyError 
     320                        data_conv_q = Converter(local_unit) 
     321                        value_unit = default_unit 
     322                        i_string = "node_value = data_conv_q" 
     323                        i_string += "(node_value, units=data1d.{0})" 
     324                        exec i_string.format(unitname) 
    343325                    else: 
    344326                        value_unit = local_unit 
    345                         err_msg = "CanSAS reader: unrecognized %s unit [%s];"\ 
    346                         % (node_value, default_unit) 
    347                         err_msg += " expecting [%s]" % local_unit 
     327                        err_msg = "Unit converter is not available.\n" 
    348328                        self.errors.append(err_msg) 
    349                         raise ValueError, err_msg 
    350329                else: 
    351330                    value_unit = local_unit 
     331            except KeyError: 
     332                err_msg = "CanSAS reader: unexpected " 
     333                err_msg += "\"{0}\" unit [{1}]; " 
     334                err_msg = err_msg.format(tagname, local_unit) 
     335                intermediate = "err_msg += " + \ 
     336                            "\"expecting [{1}]\"" + \ 
     337                            ".format(data1d.{0})" 
     338                exec intermediate.format(unitname, "{0}", "{1}") 
     339                self.errors.append(err_msg) 
     340                value_unit = local_unit 
    352341            except: 
    353                 err_msg = "CanSAS reader: could not convert " 
    354                 err_msg += "Q unit [%s]; " % attr['unit'] 
    355                 intermediate = "err_msg += \"expecting [%s]\n  %s\" % " + \ 
    356                             "(data1d.{0}, sys.exc_info()[1])" 
    357                 exec intermediate.format(unitname) 
     342                print sys.exc_info() 
     343                err_msg = "CanSAS reader: unknown error converting " 
     344                err_msg += "\"{0}\" unit [{1}]" 
     345                err_msg = err_msg.format(tagname, local_unit) 
    358346                self.errors.append(err_msg) 
    359                 raise ValueError, err_msg 
     347                value_unit = local_unit 
    360348        elif 'unit' in attr: 
    361349            value_unit = attr['unit'] 
     
    488476                                                        data1d, tagname) 
    489477                    cansas_attrib = \ 
    490                     cs_values.current_level.get("attributes").get(key) 
     478                        cs_values.current_level.get("attributes").get(key) 
    491479                    attrib_variable = cansas_attrib.get("variable") 
    492480                    if key == 'unit' and unit != '': 
Note: See TracChangeset for help on using the changeset viewer.