equal
deleted
inserted
replaced
5 import tree_parse |
5 import tree_parse |
6 |
6 |
7 # path to file containing the page metadata tree |
7 # path to file containing the page metadata tree |
8 PAGE_TREE_FILE = "pages/list" |
8 PAGE_TREE_FILE = "pages/list" |
9 |
9 |
|
10 class PageTreeError (Exception) : |
|
11 """ |
|
12 Error parsing/loading the page tree |
|
13 """ |
|
14 |
|
15 pass |
10 |
16 |
11 class PageInfo (object) : |
17 class PageInfo (object) : |
12 """ |
18 """ |
13 Contains metainformation about a page |
19 Contains metainformation about a page |
14 """ |
20 """ |
116 """ |
122 """ |
117 |
123 |
118 # parse tree |
124 # parse tree |
119 tree = tree_parse.parse(path, ':') |
125 tree = tree_parse.parse(path, ':') |
120 |
126 |
|
127 if not tree : |
|
128 raise PageTreeError("No root node found") |
|
129 |
121 def _create_node (parent, item) : |
130 def _create_node (parent, item) : |
122 """ |
131 """ |
123 Creates and returns a PageInfo from the given parent node and (line_number, line, children) tuple item |
132 Creates and returns a PageInfo from the given parent node and (line_number, line, children) tuple item |
124 """ |
133 """ |
125 |
134 |
126 # unpack |
135 # unpack |
127 line_number, line, children = item |
136 line_number, line, children = item |
128 |
137 |
129 # parse line |
138 # parse line |
130 url, title = line.split(':') |
139 url = title = None |
|
140 |
|
141 try : |
|
142 url, title = line.split(':') |
|
143 |
|
144 except : |
|
145 raise PageTreeError("Invalid line: %s:%d: %r" % (path, line_number, line)) |
131 |
146 |
132 # remove whitespace |
147 # remove whitespace |
133 url = url.strip() |
148 url = url.strip() |
134 title = title.strip() |
149 title = title.strip() |
135 |
150 |