File: callback.py

package info (click to toggle)
libgetdata 0.7.3-6
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 9,688 kB
  • ctags: 2,996
  • sloc: ansic: 56,077; sh: 10,976; fortran: 4,349; f90: 3,641; cpp: 3,528; python: 1,205; makefile: 857
file content (50 lines) | stat: -rw-r--r-- 1,066 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import sys
import os
import array
import pygetdata

#callback
def parser_callback(pdata, extra):
  if (extra != "extra stuff"):
    print "extra =", extra;
    sys.exit(1)

  if (pdata["suberror"] != 8):
    print "suberror =", pdata["suberror"]
    sys.exit(1);

  if (pdata["line"] != "bad line\n"):
    print "line =", pdata["line"]
    sys.exit(1);

  if (pdata["linenum"] != 2):
    print "linenum =", pdata["linenum"]
    sys.exit(1);

  if (pdata["filename"] != "dirfile/format"):
    print "filename =", pdata["filename"]
    sys.exit(1);

  return pygetdata.SYNTAX_IGNORE;

# create the dirfile first
data=array.array("H",range(3,7000,7))
os.system("rm -rf dirfile")
os.mkdir("dirfile")
file=open("dirfile/data", 'w')
data.tofile(file)
file.close()

file=open("dirfile/format", "w")
file.write("data RAW UINT16 8\nbad line\n")
file.close()

d=pygetdata.dirfile("dirfile", pygetdata.RDONLY, callback=parser_callback,
    extra="extra stuff");
error=d.error;

os.system("rm -rf dirfile")

if (error != pygetdata.E_OK):
  print "error = ", error
  sys.exit(1)