Changeset 200
- Timestamp:
- 05/15/05 09:56:51 (4 years ago)
- Files:
-
- manage/branches/python/CLI.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
manage/branches/python/CLI.py
r199 r200 15 15 LABEL = 'LABEL' 16 16 GLOBAL_LABEL = 'GLOBAL_LABEL' 17 # Heading label for GROUP 18 GROUP_HEADING = 'GROUP_HEADING' 19 # Group ordering (numeric value) 17 # Group ordering ((order, heading) tuple or just heading) 20 18 GROUP = 'GROUP' 21 19 # Override default sort order … … 317 315 return { key : help } 318 316 elif htype is types.FunctionType: 319 return help(self)317 return dict(help(self)) 320 318 else: 321 319 raise TypeError("expected dict, tuple or str for HELP branch, got %s" % htype) … … 323 321 324 322 def extract_help(self, grammar): 325 out = []323 out = {(9999, None) : []} 326 324 grammar = self.copy_grammar_shallow(grammar) 327 325 for k in self.sort_grammar_keys(self.filter_grammar(grammar), grammar): 326 group = (9999, None) 328 327 v = grammar[k] 328 if type(v) is dict and GROUP in v: 329 group = v[GROUP] 330 if type(group) is int: 331 group = (group, None) 332 elif type(group) is not tuple: 333 group = (9999, group) 334 if group not in out: out[group] = [] 329 335 help = None 330 336 if _is_command(k): … … 342 348 if not help: 343 349 if type(k) is not types.FunctionType: 344 out .append([ k, "No HELP for this grammar node." ])350 out[group].append([ k, "No HELP for this grammar node." ]) 345 351 else: 346 352 keys = help.keys() 347 353 for k in keys: 348 out .append([k, help[k]])354 out[group].append([k, help[k]]) 349 355 # Do a real sort? 350 out.sort() 356 for k in out: 357 out[k].sort() 351 358 return out 352 359 353 360 def candidates(self, grammar): 354 return [x[0] for x in self.extract_help(grammar)] 361 out = [] 362 for group in self.extract_help(grammar).values(): 363 for help in group: 364 out.append(help[0]) 365 return out 355 366 356 367 def executable(self):
