source: sasview/test/sasdataloader/plugins/test_reader.py @ e9920cd

magnetic_scattrelease-4.2.2ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249unittest-saveload
Last change on this file since e9920cd was aaf5e49, checked in by andyfaff, 8 years ago

MAINT: few more print instances

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[959eb01]1"""
2This software was developed by the University of Tennessee as part of the
3Distributed Data Analysis of Neutron Scattering Experiments (DANSE)
4project funded by the US National Science Foundation.
5
6See the license text in license.txt
7
8copyright 2008, University of Tennessee
9"""
[aaf5e49]10from __future__ import print_function
11
[959eb01]12import os
13import numpy as np
14from sas.sascalc.dataloader.data_info import Data1D
15
16
17class Reader:
18    """
19        Test reader to check plugin functionality
20    """
21    ## File type
22    type = ["ASCII files (*.test)|*.test"]
23    ## List of allowed extensions
24    ext=['.test'] 
25   
26    def read(self, path):
27        """
28            Load data file
29           
30            @param path: file path
31            @return: Data1D object, or None
32            @raise RuntimeError: when the file can't be opened
33            @raise ValueError: when the length of the data vectors are inconsistent
34        """
35        if os.path.isfile(path):
36            basename  = os.path.basename(path)
37            root, extension = os.path.splitext(basename)
38            if extension.lower() in self.ext:
39                try:
40                    input_f =  open(path,'r')
41                except :
42                    raise  RuntimeError, "ascii_reader: cannot open %s" % path
43                buff = input_f.read()
44                lines = buff.split('\n')
45                x  = np.zeros(0)
46                y  = np.zeros(0)
47                dy = np.zeros(0)
48                output = Data1D(x, y, dy=dy)
49                self.filename = output.filename = basename
50           
51                for line in lines:
52                    x  = np.append(x,  float(line))
53                   
54                output.x = x
55                return output
56        else:
57            raise RuntimeError, "%s is not a file" % path
58        return None
59   
60if __name__ == "__main__": 
61    reader = Reader()
62    output = reader.read("../test/test_data.test")
[aaf5e49]63    print(output.x)
[959eb01]64   
65   
66                       
Note: See TracBrowser for help on using the repository browser.