File: vmtk.py

package info (click to toggle)
vmtk 1.3%2Bdfsg-2.1%2Bdeb9u1
  • links: PTS, VCS
  • area: non-free
  • in suites: stretch
  • size: 8,932 kB
  • sloc: cpp: 82,947; ansic: 31,817; python: 21,462; perl: 381; makefile: 93; ruby: 41; sh: 19
file content (100 lines) | stat: -rw-r--r-- 3,506 bytes parent folder | download | duplicates (2)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!${PYTHON_SHEBANG}

import sys
import os

if __name__ == '__main__':

    if sys.platform == 'win32':

        vmtkhome = os.path.dirname(os.path.abspath(__file__))

        if vmtkhome.endswith('bin'):
            vmtkhome = os.path.join(os.path.dirname(os.path.abspath(__file__)),"..")
        else:
            vmtkhome = os.path.join(os.path.dirname(os.path.abspath(__file__)),"..","..","..")

        if ( vmtkhome == os.path.join("C:",os.path.sep,"Python27","Lib","site-packages","vmtk","bin","..") ):
            os.environ["PYTHONPATH"] = os.path.join(vmtkhome)
        else:
            os.environ["PYTHONPATH"] = os.path.join(vmtkhome,"lib","python2.7","site-packages")

        sys.path.append(os.path.join(vmtkhome,"bin"))
        sys.path.append(os.environ["PYTHONPATH"])
        os.environ["PATH"] += os.path.pathsep + os.path.join(vmtkhome,"bin")

    import vtk
    from vmtk import pypes

    vmtkOptions = ['--help', '--ui', '--file']

    if len(sys.argv) > 1 and sys.argv[1] not in vmtkOptions:
        arguments = sys.argv[1:]
        print "Executing", ' '.join(arguments)
        pipe = pypes.Pype()
        pipe.ExitOnError = 0
        pipe.Arguments = arguments
        pipe.ParseArguments()
        pipe.Execute()
        sys.exit(0)
    elif len(sys.argv) > 1 and '--file' in sys.argv:
        fileindex = sys.argv.index('--file')+1
        if fileindex < len(sys.argv):
            inputfile = open(sys.argv[fileindex],'r')
            physicalLines = [line for line in inputfile.readlines() if line and line.strip() and line.strip()[0]!='#']
            lines = []
            for line in physicalLines:
                if lines and lines[-1].endswith('\\\n'):
                    lines[-1] = lines[-1][:-2] + line
                else:
                    lines.append(line)
            for line in lines:
                pipe = pypes.Pype()
                pipe.ExitOnError = 0
                pipe.Arguments = line.split()
                pipe.ParseArguments()
                pipe.Execute()
    elif '--help' in sys.argv:
        print 'Usage: \tvmtk [--ui pad|console]\t\tStart in interactive mode\n\tvmtk [PYPE]\t\t\tExecute the pype [PYPE]\n\tvmtk --file [FILE]\t\tExecute the content of file [FILE]'
        sys.exit(0)
    else:
        ui = 'pad'
        if '--ui' in sys.argv and sys.argv.index('--ui') != len(sys.argv)-1:
            ui = sys.argv[sys.argv.index('--ui')+1]

        if ui == 'pad':
            try:
                from vmtk import pypepad
            except ImportError:
                print "error"
                ui = 'console'
            else:
                pypepad.RunPypeTkPad()

        if ui == 'console':
            try:
                import readline
            except ImportError:
                pass
            else:
                readline.parse_and_bind("tab: complete")

            while 1:
                try:
                    inputString = raw_input("vmtk> ")
                except EOFError:
                    sys.stdout.write('\n')
                    sys.exit(0)
                if not inputString:
                    continue
                print "Executing", inputString
                splitString = inputString.split()
                pipe = pypes.Pype()
                pipe.ExitOnError = 0
                pipe.Arguments = inputString.split()
                pipe.ParseArguments()
                try:
                    pipe.Execute()
                except Exception:
                    continue