From c5034cbdd9e347f84c0ecc755815b2b85f6bd179 Mon Sep 17 00:00:00 2001 From: Marina Ganeva <m.ganeva@fz-juelich.de> Date: Thu, 26 Mar 2015 14:18:49 +0100 Subject: [PATCH] Pylint warnings fixed. --- .../plugins/algorithms/LoadDNSLegacy.py | 46 ++++++---- .../plugins/algorithms/dnsdata.py | 84 ++++++++++--------- .../instrument/DNS_Definition_PAonly.xml | 6 +- 3 files changed, 78 insertions(+), 58 deletions(-) diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadDNSLegacy.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadDNSLegacy.py index 2c2dc6d489d..56d8bf21af9 100644 --- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadDNSLegacy.py +++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/LoadDNSLegacy.py @@ -11,11 +11,13 @@ class LoadDNSLegacy(PythonAlgorithm): """ def category(self): """ + Returns categore """ return 'DataHandling' def name(self): """ + Returns name """ return "LoadDNSLegacy" @@ -23,10 +25,12 @@ class LoadDNSLegacy(PythonAlgorithm): return "Load the DNS Legacy data file to the mantid workspace." def PyInit(self): - self.declareProperty(FileProperty("Filename", "", FileAction.Load, ['.d_dat']), + self.declareProperty(FileProperty("Filename", "", \ + FileAction.Load, ['.d_dat']), \ "Name of DNS experimental data file.") - self.declareProperty(WorkspaceProperty("OutputWorkspace","",direction=Direction.Output), - doc="Name of the workspace to store the loaded experimental data.") + self.declareProperty(WorkspaceProperty("OutputWorkspace", \ + "", direction=Direction.Output), \ + doc="Name of the workspace to store the experimental data.") return @@ -39,42 +43,52 @@ class LoadDNSLegacy(PythonAlgorithm): # load data array from the given file data_array = np.loadtxt(filename) ndet = 24 - #nbins = 1 - dataX = np.zeros(ndet) - dataY = data_array[0:ndet,1:] + dataY = data_array[0:ndet, 1:] dataE = np.sqrt(dataY) - # create workspace - __temporary_workspace__ = api.CreateWorkspace(DataX=dataX, DataY=dataY, DataE=dataE, NSpec=ndet,UnitX="Wavelength") + __temporary_workspace__ = api.CreateWorkspace(DataX=dataX, \ + DataY=dataY, DataE=dataE, NSpec=ndet, UnitX="Wavelength") api.LoadInstrument(__temporary_workspace__, InstrumentName='DNS') # load run information metadata = DNSdata() metadata.read_legacy(filename) run = __temporary_workspace__.mutableRun() - run.setStartAndEndTime(DateAndTime(metadata.start_time), DateAndTime(metadata.end_time)) + run.setStartAndEndTime(DateAndTime(metadata.start_time), \ + DateAndTime(metadata.end_time)) # rotate the detector bank to the proper position - api.RotateInstrumentComponent(__temporary_workspace__, "bank0", X=0,Y=1,Z=0, Angle=metadata.deterota) - + api.RotateInstrumentComponent(__temporary_workspace__, \ + "bank0", X=0, Y=1, Z=0, Angle=metadata.deterota) # add sample log Ei - Ei = getEnergy(metadata.wavelength) - api.AddSampleLog(__temporary_workspace__, 'Ei', LogText=str(Ei), LogType='Number') + energy = get_energy(metadata.wavelength) + api.AddSampleLog(__temporary_workspace__, \ + 'Ei', LogText=str(energy), LogType='Number') + # add other sample logs + api.AddSampleLog(__temporary_workspace__, 'deterota', \ + LogText=str(metadata.deterota), LogType='Number') + api.AddSampleLog(__temporary_workspace__, 'huber', \ + LogText=str(metadata.huber), LogType='Number') + api.AddSampleLog(__temporary_workspace__, 'T1', \ + LogText=str(metadata.t1), LogType='Number') + api.AddSampleLog(__temporary_workspace__, 'T2', \ + LogText=str(metadata.t2), LogType='Number') + api.AddSampleLog(__temporary_workspace__, 'Tsp', \ + LogText=str(metadata.tsp), LogType='Number') self.setProperty("OutputWorkspace", __temporary_workspace__) self.log().debug('LoadDNSLegacy: OK') api.DeleteWorkspace(__temporary_workspace__) - return -def getEnergy(wavelength): +def get_energy(wavelength): """ Calculates neutron energy in eV from the given wavelength in Angstrom """ - return (1e-3*81.73 / wavelength**2) + return 1e-3*81.73 / wavelength**2 # Register algorithm with Mantid AlgorithmFactory.subscribe(LoadDNSLegacy) diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/dnsdata.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/dnsdata.py index 299afdd732b..97f14ac5e68 100644 --- a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/dnsdata.py +++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/dnsdata.py @@ -1,14 +1,10 @@ -import os, sys, re -import numpy as np +import sys, re import datetime -sys.path.append('/Users/ganeva/build/parse/parse-1.6.6') -from parse import * - class DNSdata: """ class which describes the DNS data structure - will be used for data read-in and write-out routines + will be used for data read-in and write-out routines """ def __init__(self): self.title = "" @@ -65,15 +61,15 @@ class DNSdata: """ with open(filename, 'r') as fhandler: # read file content and split it into blocks - splitsymbol = '#--------------------------------------------------------------------------' + splitsymbol = \ + '#--------------------------------------------------------------------------' unparsed = fhandler.read() blocks = unparsed.split(splitsymbol) - # parse each block + # parse each block # parse block 0 (header) res = parse_header(blocks[0]) - #[TODO:] - #if not res: raise Exception "wrong file format" else + #if not res: raise Exception "wrong file format" else try: self.run_number = res['file'] self.experiment_number = res['exp'] @@ -81,30 +77,32 @@ class DNSdata: self.userid = res['userid'] except: raise ValueError("The file %s does not contain valid DNS data format." % filename) - # parse block 1 (general information) b1splitted = map(str.strip, blocks[1].split('#')) - b1rest = [el for el in b1splitted] # otherwise unexpected behaviour due to the removed lines - #[TODO:] get rid of parse + b1rest = [el for el in b1splitted] + r_user = re.compile("User:\s*(?P<name>.*?$)") + r_sample = re.compile("Sample:\s*(?P<sample>.*?$)") + r_coil = re.compile("^(?P<coil>.*?)\s*xyz-coil.*") + r_filter = re.compile("^(?P<filter>.*?)\s*Be-filter.*") for line in b1splitted: - res = parse('User: {user_name}', line) + res = r_user.match(line) if res: - self.user_name = res['user_name'] + self.user_name = res.group("name") b1rest.remove(line) - res = parse('Sample: {sample_descr}', line) + res = r_sample.match(line) if res: - self.sample_description = res['sample_descr'] + self.sample_description = res.group("sample") b1rest.remove(line) - res = parse('{coil_status} xyz-coil,', line) + res = r_coil.match(line) if res: - self.coil_status = res['coil_status'] + self.coil_status = res.group("coil") b1rest.remove(line) - res = parse('{filter_status} Be-filter', line) + res = r_filter.match(line) if res: - self.befilter_status = res['filter_status'] + self.befilter_status = res.group("filter") b1rest.remove(line) # the rest unparsed lines go to notes for the moment - # [TODO]: parse more information about the sample, e.g. space group etc. + # [TODO]: parse more information about the sample self.notes = ' '.join(b1rest) # parse block 2 (wavelength and mochromator angle) @@ -113,7 +111,7 @@ class DNSdata: # assume that theta and lambda are always on the fixed positions # assume theta is give in degree, lambda in nm line = b2splitted[2].split() - self.monochromator_angle = float(line[2]) + self.monochromator_angle = float(line[2]) self.wavelength = float(line[3])*10.0 # parse block 3 (motors position) @@ -126,17 +124,25 @@ class DNSdata: self.cradle_lower = float(b3splitted[6].split()[1]) self.cradle_upper = float(b3splitted[7].split()[1]) # Slit_i, convert mm to meter - self.slit_i_upper_blade_position = 0.001*float(b3splitted[9].split()[2]) - self.slit_i_lower_blade_position = 0.001*float(b3splitted[10].split()[1]) - self.slit_i_left_blade_position = 0.001*float(b3splitted[11].split()[2]) - self.slit_i_right_blade_position = 0.001*float(b3splitted[12].split()[1]) + self.slit_i_upper_blade_position = \ + 0.001*float(b3splitted[9].split()[2]) + self.slit_i_lower_blade_position = \ + 0.001*float(b3splitted[10].split()[1]) + self.slit_i_left_blade_position = \ + 0.001*float(b3splitted[11].split()[2]) + self.slit_i_right_blade_position = \ + 0.001*float(b3splitted[12].split()[1]) # Slit_f - self.slit_f_upper_blade_position = 0.001*float(b3splitted[14].split()[1]) - self.slit_f_lower_blade_position = 0.001*float(b3splitted[15].split()[1]) + self.slit_f_upper_blade_position = \ + 0.001*float(b3splitted[14].split()[1]) + self.slit_f_lower_blade_position = \ + 0.001*float(b3splitted[15].split()[1]) # Detector_position vertical - self.detector_position_vertical = 0.001*float(b3splitted[16].split()[1]) + self.detector_position_vertical = \ + 0.001*float(b3splitted[16].split()[1]) # Polarizer - self.polarizer_translation = 0.001*float(b3splitted[19].split()[1]) + self.polarizer_translation = \ + 0.001*float(b3splitted[19].split()[1]) self.polarizer_rotation = float(b3splitted[20].split()[1]) # parse block 4 (B-fields), only currents in A are taken @@ -152,8 +158,8 @@ class DNSdata: # parse block 5 (Temperatures) # assume: T1=cold_head_temperature, T2=sample_temperature b5splitted = map(str.strip, blocks[5].split('#')) - self.t1 = float(b5splitted[2].split()[1]) - self.t2 = float(b5splitted[3].split()[1]) + self.t1 = float(b5splitted[2].split()[1]) + self.t2 = float(b5splitted[3].split()[1]) self.tsp = float(b5splitted[4].split()[1]) # parse block 6 (TOF parameters) @@ -188,18 +194,18 @@ def parse_header(h): parses the header string and returns the parsed dictionary """ d = {} - regexp=re.compile("(\w+)=(\w+)") - result=regexp.finditer(h) + regexp = re.compile("(\w+)=(\w+)") + result = regexp.finditer(h) for r in result: d[r.groups()[0]] = r.groups()[1] return d -if __name__== '__main__': +if __name__ == '__main__': fname = sys.argv[1] - d = DNSdata() - d.read_legacy(fname) - print d.__dict__ + dns_data = DNSdata() + dns_data.read_legacy(fname) + print dns_data.__dict__ diff --git a/Code/Mantid/instrument/DNS_Definition_PAonly.xml b/Code/Mantid/instrument/DNS_Definition_PAonly.xml index ef9ccbf867c..4ce03f311d6 100644 --- a/Code/Mantid/instrument/DNS_Definition_PAonly.xml +++ b/Code/Mantid/instrument/DNS_Definition_PAonly.xml @@ -46,7 +46,7 @@ <value val="0"/> </parameter> <parameter name="t-position"> - <logfile id="deterota" eq="0.0+value"/> + <logfile id="deterota" extract-single-value-as="first_value"/> </parameter> <parameter name="p-position"> <value val="0"/> @@ -55,11 +55,11 @@ <value val="0"/> </parameter> <parameter name="roty"> - <logfile id="deterota" eq="0.0+value"/> + <logfile id="deterota" eq="0.0+value" extract-single-value-as="first_value"/> </parameter> <parameter name="rotz"> <value val="0"/> - </parameter> + </parameter> </location> </component> </type> -- GitLab