本文整理汇总了Python中mantid.kernel.Logger.information方法的典型用法代码示例。如果您正苦于以下问题:Python Logger.information方法的具体用法?Python Logger.information怎么用?Python Logger.information使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mantid.kernel.Logger
的用法示例。
在下文中一共展示了Logger.information方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_unicode_logger
# 需要导入模块: from mantid.kernel import Logger [as 别名]
# 或者: from mantid.kernel.Logger import information [as 别名]
def test_unicode_logger(self):
logger = Logger("LoggerTest")
self.assertTrue(isinstance(logger, Logger))
for att in ['fatal', 'error', 'warning', 'notice', 'information', 'debug']:
if not hasattr(logger, att):
self.fail("Logger object does not have the required attribute '%s'" % att)
logger.fatal('This is a test')
logger.error('This is a test')
logger.warning('This is a test')
logger.notice('This is a test')
logger.information('This is a test')
logger.debug('This is a test')
示例2: MaskingTablePresenter
# 需要导入模块: from mantid.kernel import Logger [as 别名]
# 或者: from mantid.kernel.Logger import information [as 别名]
class MaskingTablePresenter(object):
DISPLAY_WORKSPACE_NAME = "__sans_mask_display_dummy_workspace"
class ConcreteMaskingTableListener(MaskingTable.MaskingTableListener):
def __init__(self, presenter):
super(MaskingTablePresenter.ConcreteMaskingTableListener, self).__init__()
self._presenter = presenter
def on_row_changed(self):
self._presenter.on_row_changed()
def on_update_rows(self):
self._presenter.on_update_rows()
def on_display(self):
self._presenter.on_display()
class DisplayMaskListener(WorkHandler.WorkListener):
def __init__(self, presenter):
super(MaskingTablePresenter.DisplayMaskListener, self).__init__()
self._presenter = presenter
def on_processing_finished(self, result):
self._presenter.on_processing_finished_masking_display(result)
def on_processing_error(self, error):
self._presenter.on_processing_error_masking_display(error)
def __init__(self, parent_presenter):
super(MaskingTablePresenter, self).__init__()
self._view = None
self._parent_presenter = parent_presenter
self._work_handler = WorkHandler()
self._logger = Logger("SANS")
def on_row_changed(self):
row_index = self._view.get_current_row()
state = self.get_state(row_index, file_lookup=False)
if state:
self.display_masking_information(state)
def on_display(self):
# Get the state information for the selected row.
# Disable the button
self._view.set_display_mask_button_to_processing()
try:
row_index = self._view.get_current_row()
state = self.get_state(row_index)
except Exception as e:
self.on_processing_error_masking_display(e)
raise Exception(str(e)) # propagate errors for run_tab_presenter to deal with
else:
if not state:
self._logger.information("You can only show a masked workspace if a user file has been loaded and there"
"valid sample scatter entry has been provided in the selected row.")
return
# Run the task
listener = MaskingTablePresenter.DisplayMaskListener(self)
state_copy = copy.copy(state)
self._work_handler.process(listener, load_and_mask_workspace, 0, state_copy, self.DISPLAY_WORKSPACE_NAME)
def on_processing_finished_masking_display(self, result):
# Enable button
self._view.set_display_mask_button_to_normal()
# Display masked workspace
self._display(result)
def on_processing_error_masking_display(self, error):
self._logger.warning("There has been an error. See more: {}".format(error))
# Enable button
self._view.set_display_mask_button_to_normal()
def on_processing_error(self, error):
pass
def on_update_rows(self):
"""
Update the row selection in the combobox
"""
current_row_index = self._view.get_current_row()
valid_row_indices = self._parent_presenter.get_row_indices()
new_row_index = -1
if current_row_index in valid_row_indices:
new_row_index = current_row_index
elif len(valid_row_indices) > 0:
new_row_index = valid_row_indices[0]
self._view.update_rows(valid_row_indices)
if new_row_index != -1:
self.set_row(new_row_index)
self.on_row_changed()
def set_row(self, index):
self._view.set_row(index)
#.........这里部分代码省略.........
示例3: ErrorReporterPresenter
# 需要导入模块: from mantid.kernel import Logger [as 别名]
# 或者: from mantid.kernel.Logger import information [as 别名]
class ErrorReporterPresenter(object):
def __init__(self, view, exit_code):
self.error_log = Logger("error")
self._view = view
self._exit_code = exit_code
self._view.set_report_callback(self.error_handler)
def do_not_share(self, continue_working=True):
self.error_log.notice("No information shared")
self._handle_exit(continue_working)
return -1
def share_non_identifiable_information(self, continue_working):
uptime = UsageService.getUpTime()
status = self._send_report_to_server(share_identifiable=False, uptime=uptime)
self.error_log.notice("Sent non-identifiable information")
self._handle_exit(continue_working)
return status
def share_all_information(self, continue_working, name, email, text_box):
uptime = UsageService.getUpTime()
try:
recovery_archive, file_hash = zip_recovery_directory()
except Exception as exc:
self.error_log.information("Error creating recovery archive: {}. No recovery information will be sent")
recovery_archive, file_hash = None, ""
status = self._send_report_to_server(share_identifiable=True, uptime=uptime, name=name, email=email, file_hash=file_hash,
text_box=text_box)
self.error_log.notice("Sent full information")
if status == 201 and recovery_archive:
self._upload_recovery_file(recovery_archive=recovery_archive)
try:
os.remove(recovery_archive)
except OSError as exc:
self.error_log.information("Unable to remove zipped recovery information: {}".format(str(exc)))
self._handle_exit(continue_working)
return status
def error_handler(self, continue_working, share, name, email, text_box):
if share == 0:
status = self.share_all_information(continue_working, name, email, text_box)
elif share == 1:
status = self.share_non_identifiable_information(continue_working)
elif share == 2:
status = self.do_not_share(continue_working)
else:
self.error_log.error("Unrecognised signal in errorreporter exiting")
self._handle_exit(continue_working)
status = -2
return status
def _handle_exit(self, continue_working):
if not continue_working:
self.error_log.error("Terminated by user.")
self._view.quit()
else:
self.error_log.error("Continue working.")
def _upload_recovery_file(self, recovery_archive):
url = ConfigService['errorreports.rooturl']
url = '{}/api/recovery'.format(url)
files = {'file': open('{}'.format(recovery_archive), 'rb')}
response = requests.post(url, files=files)
if response.status_code == 201:
self.error_log.notice("Uploaded recovery file to server. HTTP response {}".format(response.status_code))
else:
self.error_log.error("Failed to send recovery data HTTP response {}".format(response.status_code))
def _send_report_to_server(self, share_identifiable=False, name='', email='', file_hash='', uptime='', text_box=''):
errorReporter = ErrorReporter(
"mantidplot", uptime, self._exit_code, share_identifiable, str(name), str(email), str(text_box),
str(file_hash))
status = errorReporter.sendErrorReport()
if status != 201:
self._view.display_message_box('Error contacting server', 'There was an error when sending the report.'
'Please contact [email protected] directly',
'http request returned with status {}'.format(status))
self.error_log.error("Failed to send error report http request returned status {}".format(status))
return status
def show_view(self):
self._view.show()
示例4: SettingsDiagnosticPresenter
# 需要导入模块: from mantid.kernel import Logger [as 别名]
# 或者: from mantid.kernel.Logger import information [as 别名]
#.........这里部分代码省略.........
def on_collapse(self):
self._presenter.on_collapse()
def on_expand(self):
self._presenter.on_expand()
def on_save_state_to_file(self):
self._presenter.on_save_state()
def __init__(self, parent_presenter):
super(SettingsDiagnosticPresenter, self).__init__()
self._view = None
self._parent_presenter = parent_presenter
# Logger
self.gui_logger = Logger("SANS GUI LOGGER")
def on_collapse(self):
self._view.collapse()
def on_expand(self):
self._view.expand()
def on_row_changed(self):
try:
row_index = self._view.get_current_row()
state = self.get_state(row_index)
if state:
self.display_state_diagnostic_tree(state)
except RuntimeError as e:
self.gui_logger.error(str(e))
self._parent_presenter.display_warning_box('Warning', 'Unable to find files.', str(e))
def on_update_rows(self):
"""
Update the row selection in the combobox
"""
current_row_index = self._view.get_current_row()
valid_row_indices = self._parent_presenter.get_row_indices()
new_row_index = -1
if current_row_index in valid_row_indices:
new_row_index = current_row_index
elif len(valid_row_indices) > 0:
new_row_index = valid_row_indices[0]
self._view.update_rows(valid_row_indices)
if new_row_index != -1:
self.set_row(new_row_index)
self.on_row_changed()
def set_row(self, index):
self._view.set_row(index)
def set_view(self, view):
if view:
self._view = view
# Set up row selection listener
listener = SettingsDiagnosticPresenter.ConcreteSettingsDiagnosticTabListener(self)
self._view.add_listener(listener)
# Set the default gui
self._set_default_gui()
def _set_default_gui(self):
self._view.update_rows([])
self.display_state_diagnostic_tree(state=None)
def get_state(self, index):
return self._parent_presenter.get_state_for_row(index)
def display_state_diagnostic_tree(self, state):
# Convert to dict before passing the state to the view
if state is not None:
state = state.property_manager
self._view.set_tree(state)
def on_save_state(self):
# Get the save location
save_location = self._view.get_save_location()
# Check if it exists
path_dir = os.path.dirname(save_location)
if not path_dir:
self.gui_logger.warning("The provided save location for the SANS state does not seem to exist. "
"Please provide a validate path")
return
file_name, _ = os.path.splitext(save_location)
full_file_path = file_name + JSON_SUFFIX
row_index = self._view.get_current_row()
state = self.get_state(row_index)
serialized_state = state.property_manager
with open(full_file_path, 'w') as f:
json.dump(serialized_state, f, sort_keys=True, indent=4)
self.gui_logger.information("The state for row {} has been saved to: {} ".format(row_index, full_file_path))
# Update the file name in the UI
self._view.set_save_location(full_file_path)
示例5: BilbySANSDataProcessor
# 需要导入模块: from mantid.kernel import Logger [as 别名]
# 或者: from mantid.kernel.Logger import information [as 别名]
#.........这里部分代码省略.........
time_mode = self.getProperty(
"TimeMode").value
# True if External time frame (i.e. choppers), False if Internal time frames (Neutron Velocity Selector)
account_for_gravity = self.getProperty("AccountForGravity").value
solid_angle_weighting = self.getProperty("SolidAngleWeighting").value
wide_angle_correction = self.getProperty("WideAngleCorrection").value
reduce_2d = self.getProperty("Reduce2D").value
# -- Masking --
if ws_samMsk:
self._apply_mask(ws_sam, ws_samMsk)
if ws_tranMsk:
self._apply_mask(ws_tranSam, ws_tranMsk)
self._apply_mask(ws_tranEmp, ws_tranMsk)
# -- Convert to Wavelength -- Only for the External time mode - choppers
if time_mode:
ws_sam = self._convert_units(ws_sam, "Wavelength")
ws_tranSam = self._convert_units(ws_tranSam, "Wavelength")
ws_tranEmp = self._convert_units(ws_tranEmp, "Wavelength")
# -- Transmission --
# Intuitively one would think rebin for NVS data is not needed, but it is required;
# not perfect match in binning leads to error like "not matching intervals for calculate_transmission"
ws_sam = self._rebin(ws_sam, binning_wavelength, preserveevents=False)
ws_tranSam = self._rebin(ws_tranSam, binning_wavelength_transm, preserveevents=False)
ws_tranEmp = self._rebin(ws_tranEmp, binning_wavelength_transm, preserveevents=False)
ws_tranroi = self._mask_to_roi(ws_tranMsk)
self.sanslog.information("FitMethod " + fitmethod)
self.sanslog.information("PolynomialOrder " + polynomialorder)
ws_tran = self._calculate_transmission(ws_tranSam, ws_tranEmp, ws_tranroi, fitmethod, polynomialorder,
binning_wavelength_transm)
ws_tranemp_scale = self._get_frame_count(ws_tranEmp)
ws_transam_scale = self._get_frame_count(ws_tranSam)
f = self._single_valued_ws(ws_tranemp_scale / ws_transam_scale)
ws_tran = self._multiply(ws_tran, f)
transmission_fit = ws_tran
self.setProperty("OutputWorkspaceTransmissionFit", transmission_fit)
# -- Blocked Beam Subtraction -- only if blk workspace has been provided (obviously)
if ws_blk:
ws_sam_time = self._get_frame_count(ws_sam)
ws_blk_time = self._get_frame_count(ws_blk)
ws_blk_scaling = self._single_valued_ws(ws_sam_time / ws_blk_time)
# remove estimated blk counts from sample workspace
self._apply_mask(ws_blk, ws_samMsk) # masking blocked beam the same way as sample data
if time_mode:
ws_blk = self._convert_units(ws_blk, "Wavelength")
ws_blk = self._rebin(ws_blk, binning_wavelength, preserveevents=False)
# estimated blk counts for given measurement time and bin width
ws_blk_est = self._multiply(ws_blk, ws_blk_scaling)
ws_sam = self._subtract(ws_sam, ws_blk_est)
# sensitivity
pixeladj = ws_sen
示例6: BeamCentrePresenter
# 需要导入模块: from mantid.kernel import Logger [as 别名]
# 或者: from mantid.kernel.Logger import information [as 别名]
class BeamCentrePresenter(object):
class ConcreteBeamCentreListener(BeamCentre.BeamCentreListener):
def __init__(self, presenter):
self._presenter = presenter
def on_run_clicked(self):
self._presenter.on_run_clicked()
class CentreFinderListener(WorkHandler.WorkListener):
def __init__(self, presenter):
super(BeamCentrePresenter.CentreFinderListener, self).__init__()
self._presenter = presenter
def on_processing_finished(self, result):
self._presenter.on_processing_finished_centre_finder(result)
def on_processing_error(self, error):
self._presenter.on_processing_error_centre_finder(error)
def __init__(self, parent_presenter, WorkHandler, BeamCentreModel, SANSCentreFinder):
super(BeamCentrePresenter, self).__init__()
self._view = None
self._parent_presenter = parent_presenter
self._work_handler = WorkHandler()
self._logger = Logger("SANS")
self._beam_centre_model = BeamCentreModel(SANSCentreFinder)
def set_view(self, view):
if view:
self._view = view
# Set up run listener
listener = BeamCentrePresenter.ConcreteBeamCentreListener(self)
self._view.add_listener(listener)
# Set the default gui
self._view.set_options(self._beam_centre_model)
def on_update_instrument(self, instrument):
self._beam_centre_model.set_scaling(instrument)
self._view.on_update_instrument(instrument)
def on_update_rows(self):
file_information = self._parent_presenter._table_model.get_file_information_for_row(0)
if file_information:
self._beam_centre_model.reset_to_defaults_for_instrument(file_information=file_information)
self._view.set_options(self._beam_centre_model)
def on_processing_finished_centre_finder(self, result):
# Enable button
self._view.set_run_button_to_normal()
# Update Centre Positions in model and GUI
if self._beam_centre_model.update_lab:
self._beam_centre_model.lab_pos_1 = result['pos1']
self._beam_centre_model.lab_pos_2 = result['pos2']
self._view.lab_pos_1 = self._beam_centre_model.lab_pos_1 * self._beam_centre_model.scale_1
self._view.lab_pos_2 = self._beam_centre_model.lab_pos_2 * self._beam_centre_model.scale_2
if self._beam_centre_model.update_hab:
self._beam_centre_model.hab_pos_1 = result['pos1']
self._beam_centre_model.hab_pos_2 = result['pos2']
self._view.hab_pos_1 = self._beam_centre_model.hab_pos_1 * self._beam_centre_model.scale_1
self._view.hab_pos_2 = self._beam_centre_model.hab_pos_2 * self._beam_centre_model.scale_2
def on_processing_error_centre_finder(self, error):
self._logger.warning("There has been an error. See more: {}".format(error))
self._view.set_run_button_to_normal()
def on_processing_error(self, error):
self._view.set_run_button_to_normal()
def on_run_clicked(self):
# Get the state information for the first row.
state = self._parent_presenter.get_state_for_row(0)
if not state:
self._logger.information("You can only calculate the beam centre if a user file has been loaded and there"
"valid sample scatter entry has been provided in the selected row.")
return
# Disable the button
self._view.set_run_button_to_processing()
#Update model
self._update_beam_model_from_view()
# Run the task
listener = BeamCentrePresenter.CentreFinderListener(self)
state_copy = copy.copy(state)
self._work_handler.process(listener, self._beam_centre_model.find_beam_centre, 0, state_copy)
def _update_beam_model_from_view(self):
self._beam_centre_model.r_min = self._view.r_min
self._beam_centre_model.r_max = self._view.r_max
self._beam_centre_model.max_iterations = self._view.max_iterations
self._beam_centre_model.tolerance = self._view.tolerance
self._beam_centre_model.left_right = self._view.left_right
self._beam_centre_model.verbose = self._view.verbose
self._beam_centre_model.COM = self._view.COM
self._beam_centre_model.up_down = self._view.up_down
#.........这里部分代码省略.........
示例7: SANSDataProcessor
# 需要导入模块: from mantid.kernel import Logger [as 别名]
# 或者: from mantid.kernel.Logger import information [as 别名]
#.........这里部分代码省略.........
time_mode = self.getProperty(
"TimeMode").value
# True if External time frame (i.e. choppers), False if Internal time frames (Neutron Velocity Selector)
account_for_gravity = self.getProperty("AccountForGravity").value
solid_angle_weighting = self.getProperty("SolidAngleWeighting").value
wide_angle_correction = self.getProperty("WideAngleCorrection").value
reduce_2d = self.getProperty("reduce_2D").value
# -- Masking --
if ws_sammsk:
self._apply_mask(ws_sam, ws_sammsk)
if ws_tranmsk:
self._apply_mask(ws_transam, ws_tranmsk)
self._apply_mask(ws_tranemp, ws_tranmsk)
# -- Convert to Wavelength -- Only for the External time mode - choppers
if time_mode:
ws_sam = self._convert_units(ws_sam, "Wavelength")
ws_transam = self._convert_units(ws_transam, "Wavelength")
ws_tranemp = self._convert_units(ws_tranemp, "Wavelength")
# -- Transmission --
# Intuitively one would think rebin for NVS data is not needed, but it does;
# not perfect match in binning leads to error like "not matching intervals for calculate_transmission"
ws_sam = self._rebin(ws_sam, binning_wavelength, preserveevents=False)
ws_transam = self._rebin(ws_transam, binning_wavelength_transm, preserveevents=False)
ws_tranemp = self._rebin(ws_tranemp, binning_wavelength_transm, preserveevents=False)
ws_tranroi = self._mask_to_roi(ws_tranmsk)
self.sanslog.information("FitMethod " + fitmethod)
self.sanslog.information("PolynomialOrder " + polynomialorder)
ws_tran = self._calculate_transmission(ws_transam, ws_tranemp, ws_tranroi, fitmethod, polynomialorder,
binning_wavelength_transm)
ws_tranemp_scale = self._get_frame_count(ws_tranemp)
ws_transam_scale = self._get_frame_count(ws_transam)
f = self._single_valued_ws(ws_tranemp_scale / ws_transam_scale)
ws_tran = self._multiply(ws_tran, f)
transmission_fit = ws_tran
self.setProperty("OutputWorkspaceTransmission_Fit", transmission_fit)
# -- Blocked Beam Subtraction -- only if blk workspace has been provided (obviously)
if ws_blk:
ws_sam_time = self._get_frame_count(ws_sam)
ws_blk_time = self._get_frame_count(ws_blk)
ws_blk_scaling = self._single_valued_ws(ws_sam_time / ws_blk_time)
# remove estimated blk counts from sample workspace
self._apply_mask(ws_blk, ws_sammsk) # masking blocked beam the same way as sample data
if time_mode:
ws_blk = self._convert_units(ws_blk, "Wavelength")
ws_blk = self._rebin(ws_blk, binning_wavelength, preserveevents=False)
# estimated blk counts for given measurement time and bin width
ws_blk_est = self._multiply(ws_blk, ws_blk_scaling)
ws_sam = self._subtract(ws_sam, ws_blk_est)
# sensitivity
pixeladj = ws_sen
示例8: ErrorReporterPresenter
# 需要导入模块: from mantid.kernel import Logger [as 别名]
# 或者: from mantid.kernel.Logger import information [as 别名]
class ErrorReporterPresenter(object):
SENDING_ERROR_MESSAGE = 'There was an error when sending the report.\nPlease contact [email protected] directly'
def __init__(self, view, exit_code, application='mantidplot'):
self.error_log = Logger("error")
self._view = view
self._exit_code = exit_code
self._application = application
self._view.set_report_callback(self.error_handler)
def do_not_share(self, continue_working=True):
self.error_log.notice("No information shared")
self._handle_exit(continue_working)
return -1
def share_non_identifiable_information(self, continue_working):
uptime = UsageService.getUpTime()
status = self._send_report_to_server(share_identifiable=False, uptime=uptime)
self.error_log.notice("Sent non-identifiable information")
self._handle_exit(continue_working)
return status
def share_all_information(self, continue_working, name, email, text_box):
uptime = UsageService.getUpTime()
try:
recovery_archive, file_hash = zip_recovery_directory()
except Exception as exc:
self.error_log.information("Error creating recovery archive: {}. No recovery information will be sent")
recovery_archive, file_hash = None, ""
status = self._send_report_to_server(share_identifiable=True, uptime=uptime, name=name, email=email,
file_hash=file_hash, text_box=text_box)
self.error_log.notice("Sent full information")
if status == 201 and recovery_archive:
self._upload_recovery_file(recovery_archive=recovery_archive)
try:
os.remove(recovery_archive)
except OSError as exc:
self.error_log.information("Unable to remove zipped recovery information: {}".format(str(exc)))
self._handle_exit(continue_working)
return status
def error_handler(self, continue_working, share, name, email, text_box):
if share == 0:
status = self.share_all_information(continue_working, name, email, text_box)
elif share == 1:
status = self.share_non_identifiable_information(continue_working)
elif share == 2:
status = self.do_not_share(continue_working)
else:
self.error_log.error("Unrecognised signal in errorreporter exiting")
self._handle_exit(continue_working)
status = -2
return status
def _handle_exit(self, continue_working):
if not continue_working:
self.error_log.error("Terminated by user.")
self._view.quit()
else:
self.error_log.error("Continue working.")
def _upload_recovery_file(self, recovery_archive):
url = ConfigService['errorreports.rooturl']
url = '{}/api/recovery'.format(url)
self.error_log.notice("Sending recovery file to address: {}".format(url))
files = {'file': open('{}'.format(recovery_archive), 'rb')}
try:
# timeout after 20 seconds to match the C++ error reporter timeout
response = requests.post(url, files=files, timeout=20)
except Exception as e:
self.error_log.error(
"Failed to send recovery data. Could not establish connection to URL: {}.\n\nFull trace:\n\n{}".format(
url, e))
return
# if this is reached, the connection was successful and some response was received
if response.status_code == 201:
self.error_log.notice("Uploaded recovery file to server. HTTP response {}".format(response.status_code))
elif response.status_code == 413:
self.error_log.notice(
"Data was too large, and was not accepted by the server. HTTP response {}".format(response.status_code))
else:
self.error_log.error("Failed to send recovery data. HTTP response {}".format(response.status_code))
def _send_report_to_server(self, share_identifiable=False, name='', email='', file_hash='', uptime='', text_box=''):
errorReporter = ErrorReporter(
self._application, uptime, self._exit_code, share_identifiable, str(name), str(email), str(text_box),
str(file_hash))
status = errorReporter.sendErrorReport()
if status != 201:
self._view.display_message_box('Error contacting server', self.SENDING_ERROR_MESSAGE,
'http request returned with status {}'.format(status))
self.error_log.error("Failed to send error report http request returned status {}".format(status))
return status
def show_view(self):
#.........这里部分代码省略.........