Revision 6676
Added by Aaron Marcuse-Kubitza about 12 years ago
dict2redmine | ||
---|---|---|
58 | 58 |
class RedmineDictWriter: |
59 | 59 |
'''Formats rows as Redmine sections containing a table''' |
60 | 60 |
|
61 |
def __init__(self, term_col, header, stream): |
|
61 |
def __init__(self, term_col, def_col, header, stream):
|
|
62 | 62 |
header.pop(term_col) |
63 |
header.pop(def_col) |
|
63 | 64 |
|
64 | 65 |
self.term_col = term_col |
66 |
self.def_col = def_col |
|
65 | 67 |
self.header = header |
66 | 68 |
self.stream = stream |
67 | 69 |
|
68 | 70 |
def writerow(self, row): |
69 |
term = row.pop(self.term_col) |
|
70 |
self.stream.write('\nh3. '+term+'\n\n') |
|
71 |
term = row[self.term_col] |
|
72 |
def_ = row[self.def_col] |
|
73 |
self.stream.write('h3. '+term+'\n\n') |
|
74 |
if def_: self.stream.write(def_+'\n\n') |
|
71 | 75 |
|
72 | 76 |
table = RedmineTableWriter(self.stream) |
73 | 77 |
for i, col_name in enumerate(self.header): |
74 |
value = row[i] |
|
75 |
if value: table.writerow([redmine_bold(col_name), value]) |
|
78 |
if i not in set([self.term_col, self.def_col]): |
|
79 |
value = row[i] |
|
80 |
if value: table.writerow([redmine_bold(col_name), value]) |
|
81 |
self.stream.write('\n') |
|
76 | 82 |
|
77 | 83 |
|
78 | 84 |
def main(): |
79 |
try: _prog_name, term_col, sources_col = sys.argv |
|
85 |
try: _prog_name, term_col, def_col, sources_col = sys.argv
|
|
80 | 86 |
except ValueError: raise SystemExit('Usage: '+sys.argv[0] |
81 |
+' <spreadsheet term_col# sources_col# >redmine') |
|
82 |
term_col, sources_col = map(int, [term_col, sources_col])
|
|
87 |
+' <spreadsheet term_col# definition_col# sources_col# >redmine')
|
|
88 |
term_col, def_col, sources_col = map(int, [term_col, def_col, sources_col])
|
|
83 | 89 |
|
84 | 90 |
# Translate input |
85 | 91 |
reader = csv.reader(sys.stdin) |
86 | 92 |
header = reader.next() |
87 |
writer = RedmineDictWriter(term_col, header, sys.stdout) |
|
93 |
writer = RedmineDictWriter(term_col, def_col, header, sys.stdout)
|
|
88 | 94 |
for row in reader: |
89 | 95 |
term = row[term_col] |
90 | 96 |
sources = row[sources_col].split(source_sep) |
Also available in: Unified diff
dict2redmine: Put the definition before and outside of the fields table