3
|
1 #!/usr/bin/env python
|
|
2
|
|
3 """
|
|
4 Author: George Weingart
|
|
5 Description: Dynamically read columns from input file for UI
|
|
6 """
|
|
7
|
|
8 #####################################################################################
|
|
9 #Copyright (C) <2012>
|
|
10 #
|
|
11 #Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
12 #this software and associated documentation files (the "Software"), to deal in the
|
|
13 #Software without restriction, including without limitation the rights to use, copy,
|
|
14 #modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
|
15 #and to permit persons to whom the Software is furnished to do so, subject to
|
|
16 #the following conditions:
|
|
17 #
|
|
18 #The above copyright notice and this permission notice shall be included in all copies
|
|
19 #or substantial portions of the Software.
|
|
20 #
|
|
21 #THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
22 #INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
23 #PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
24 #HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
25 #OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
26 #SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
27 #####################################################################################
|
|
28
|
|
29 __author__ = "George Weingart"
|
|
30 __copyright__ = "Copyright 2012"
|
|
31 __credits__ = ["George Weingart"]
|
|
32 __license__ = "MIT"
|
|
33 __maintainer__ = "George Weingart"
|
|
34 __email__ = "george.weingart@gmail.com"
|
|
35 __status__ = "Development"
|
|
36
|
|
37 import sys,string,time
|
|
38 from pprint import pprint
|
|
39
|
|
40 def red(st,l):
|
|
41 if len(st) <= l: return st
|
|
42 l1,l2 = l/2,l/2
|
|
43 return st[:l1]+".."+st[len(st)-l2:]
|
|
44
|
|
45 def get_cols(data,full_names):
|
|
46 if data == "": return []
|
|
47 max_len =32
|
|
48 fname = data.dataset.file_name
|
|
49 input_file = open(fname,'rU')
|
|
50 input_lines = input_file.readlines()
|
|
51 input_file.close()
|
|
52 table_lines = []
|
|
53 for x in input_lines:
|
|
54 first_column = x.split('\t')[0]
|
|
55 table_lines.append(first_column)
|
|
56
|
|
57 opt = []
|
|
58 rc = ''
|
|
59 lines = []
|
|
60 try:
|
|
61 lines = [(red((rc+v.split()[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(table_lines) if v]
|
|
62
|
|
63 except:
|
|
64 l1 = '*ALL*'
|
|
65 l2 = 1
|
|
66 l3 = False
|
|
67 MyList = [l1,l2,l3]
|
|
68 lines.append(MyList)
|
|
69 return opt+lines
|
|
70
|
|
71 def get_cols_add_line(data,full_names,lastmeta):
|
|
72 if data == "": return []
|
|
73 display_to = 1
|
|
74 try:
|
|
75 display_to = int(lastmeta)
|
|
76 except:
|
|
77 pass
|
|
78
|
|
79 max_len = 32
|
|
80 fname = data.dataset.file_name
|
|
81 input_file = open(fname,'rU')
|
|
82 input_lines = input_file.readlines()
|
|
83 input_file.close()
|
|
84 table_lines = []
|
|
85 for x in input_lines:
|
|
86 first_column = x.split('\t')[0]
|
|
87 table_lines.append(first_column)
|
|
88 table_lines.insert(0,'-')
|
|
89 if not display_to == 1:
|
|
90 del table_lines[display_to + 1:]
|
|
91
|
|
92
|
|
93 opt = []
|
|
94 rc = ''
|
|
95 lines = []
|
|
96 try:
|
|
97 lines = [(red((rc+v.split()[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(table_lines) if v]
|
|
98
|
|
99 except:
|
|
100 l1 = '*ALL*'
|
|
101 l2 = 1
|
|
102 l3 = False
|
|
103 MyList = [l1,l2,l3]
|
|
104 lines.append(MyList)
|
|
105 return opt+lines
|
|
106
|
|
107 def get_cols_features(data,full_names,lastmeta):
|
|
108 if data == "": return []
|
|
109 display_from = 1
|
|
110 try:
|
|
111 display_from = int(lastmeta)
|
|
112 except:
|
|
113 pass
|
|
114 max_len = 32
|
|
115 fname = data.dataset.file_name
|
|
116 input_file = open(fname,'rU')
|
|
117
|
|
118 input_lines = input_file.readlines()
|
|
119 input_file.close()
|
|
120 table_lines = []
|
|
121 for x in input_lines:
|
|
122 first_column = x.split('\t')[0]
|
|
123 table_lines.append(first_column)
|
|
124
|
|
125 opt = []
|
|
126 rc = ''
|
|
127 del table_lines[:display_from]
|
|
128 lines = []
|
|
129 try:
|
|
130 lines = [(red((rc+v.split()[0]),max_len),'%d' % (i+1),False) for i,v in enumerate(table_lines) if v]
|
|
131
|
|
132 except:
|
|
133 l1 = '*ALL*'
|
|
134 l2 = 1
|
|
135 l3 = False
|
|
136 MyList = [l1,l2,l3]
|
|
137 lines.append(MyList)
|
|
138 return opt+lines
|