예제 #1
0
    def run(self):
        old_out = sys.stdout
        old_err = sys.stderr
        sys.stdout = self.out
        sys.stderr = self.err

        pargs = docopt(__doc__, self.argv, version=meta.version_description)

        df = None
        infile = pargs['<acq_file>']
        try:
            if infile == '-':
                df = BytesIO(sys.stdin.read())
            else:
                df = open(infile, 'rb')
        except:
            sys.stderr.write("Error reading {0}\n".format(infile))
            sys.exit(1)

        self.reader = Reader(df)
        try:
            self.reader._read_headers()
        except:
            sys.stderr.write("Error reading headers!\n")
            # Don't exit here; it'll still print what it can.

        if pargs['--debug']:
            self.__print_debug()
        else:
            self.__print_simple()

        sys.stderr = old_err
        sys.stdout = old_out
예제 #2
0
def canonical_files():
    versions = ['3.8.1', '4.1.0', '4.4.0']
    return dict(
        (
            (ver, dataset), Reader.read(
                data_file_name(dataset, ver, '-c')).datafile
        )
        for ver, dataset in itertools.product(versions, DATASETS)
    )
예제 #3
0
    def run(self):
        old_err = sys.stderr
        sys.stderr = self.err
        pargs = docopt(__doc__, self.argv, version=version.description)
        try:
            import scipy  # noqa -- catch this error before matlabwriter
        except:
            sys.stderr.write("scipy is required for writing matlab files\n")
            sys.exit(1)
        infile = pargs['<acq_file>']
        matfile = pargs['<mat_file>']
        compress = pargs['--compress']

        data = Reader.read(infile).datafile
        MatlabWriter.write_file(data, matfile, compress=compress)

        sys.stderr = old_err
예제 #4
0
파일: acq2mat.py 프로젝트: njvack/bioread
    def run(self):
        old_err = sys.stderr
        sys.stderr = self.err
        pargs = docopt(
            __doc__,
            self.argv,
            version=version.description)
        try:
            import scipy  # noqa -- catch this error before matlabwriter
        except:
            sys.stderr.write("scipy is required for writing matlab files\n")
            sys.exit(1)
        infile = pargs['<acq_file>']
        matfile = pargs['<mat_file>']
        compress = pargs['--compress']

        data = Reader.read(infile).datafile
        MatlabWriter.write_file(data, matfile, compress=compress)

        sys.stderr = old_err
예제 #5
0
파일: acq_info.py 프로젝트: njvack/bioread
    def run(self):
        old_out = sys.stdout
        old_err = sys.stderr
        sys.stdout = self.out
        sys.stderr = self.err

        pargs = docopt(
            __doc__,
            self.argv,
            version=version.description)

        df = None
        infile = pargs['<acq_file>']
        try:
            if infile == '-':
                df = BytesIO(sys.stdin.read())
            else:
                df = open(infile, 'rb')
        except:
            sys.stderr.write("Error reading {0}\n".format(infile))
            sys.exit(1)

        self.reader = Reader(df)
        try:
            self.reader._read_headers()
        except:
            sys.stderr.write("Error reading headers!\n")
            # Don't exit here; it'll still print what it can.

        if pargs['--debug']:
            self.__print_debug()
        else:
            self.__print_simple()

        sys.stderr = old_err
        sys.stdout = old_out
예제 #6
0
def test_reading(pathname):
    assert Reader.read(pathname), 'Error reading {0}'.format(pathname)
예제 #7
0
class AcqInfoRunner(object):

    def __init__(self, argv, out=None, err=None):
        self.argv = argv
        if out is None:
            out = sys.stdout
        self.out = out
        if err is None:
            err = sys.stderr
        self.err = err

    def run(self):
        old_out = sys.stdout
        old_err = sys.stderr
        sys.stdout = self.out
        sys.stderr = self.err

        pargs = docopt(
            __doc__,
            self.argv,
            version=version.description)

        df = None
        infile = pargs['<acq_file>']
        try:
            if infile == '-':
                df = BytesIO(sys.stdin.read())
            else:
                df = open(infile, 'rb')
        except:
            sys.stderr.write("Error reading {0}\n".format(infile))
            sys.exit(1)

        self.reader = Reader(df)
        try:
            self.reader._read_headers()
        except:
            sys.stderr.write("Error reading headers!\n")
            # Don't exit here; it'll still print what it can.

        if pargs['--debug']:
            self.__print_debug()
        else:
            self.__print_simple()

        sys.stderr = old_err
        sys.stdout = old_out

    def __print_simple(self):
        gh = self.reader.graph_header
        chs = self.reader.channel_headers
        cdhs = self.reader.channel_dtype_headers
        print("File revision: %s" % gh.file_revision)
        print("Sample time: %s" % gh.sample_time)
        print("Compressed: %s" % gh.compressed)
        print("Number of channels: %s" % gh.channel_count)
        for ch, cdh in zip(chs, cdhs):
            print("%s:" % ch.name)
            print("\tUnits: %s" % ch.units)
            print("\tNumber of samples: %s" % ch.point_count)
            print("\tFrequency divider: %s" % ch.frequency_divider)

    def __print_debug(self):
        gh = self.reader.graph_header
        fh = self.reader.foreign_header
        chs = self.reader.channel_headers
        cdhs = self.reader.channel_dtype_headers

        print("Graph header starts at offset %s" % gh.offset)
        print(gh.data)
        print("\n")
        for i, ch in enumerate(chs):
            print("Channel header %s starts at offset %s" % (i, ch.offset))
            print(ch.data)
            print("\n")
        print("Foreign header starts at offset %s" % fh.offset)
        print(fh.data)
        print("\n")
        for i, cdh in enumerate(cdhs):
            print(
                "Channel dtype header %s starts at offset %s" %
                (i, cdh.offset))
            print(cdh.data)
            print("\n")

        if not gh.compressed:
            print("Data starts at offset %s" % self.reader.data_start_offset)
        else:
            mch = self.reader.main_compression_header
            cchs = self.reader.channel_compression_headers
            print("Main compression header starts at offset %s" % mch.offset)
            print("\n")
            for i, cch in enumerate(cchs):
                print(
                    "Channel compression header %s starts at offset %s" %
                    (i, cch.offset))
                print(cch.data)
                print(
                    "Compressed data starts at offset %s" %
                    cch.compressed_data_offset)
                print("\n")