##// END OF EJS Templates
allow --help and config_file classes to differ...
MinRK -
Show More
@@ -123,7 +123,16 b' class Application(SingletonConfigurable):'
123
123
124 # A sequence of Configurable subclasses whose config=True attributes will
124 # A sequence of Configurable subclasses whose config=True attributes will
125 # be exposed at the command line.
125 # be exposed at the command line.
126 classes = List([])
126 classes = []
127 @property
128 def _help_classes(self):
129 """Define `App.help_classes` if CLI classes should differ from config file classes"""
130 return getattr(self, 'help_classes', self.classes)
131
132 @property
133 def _config_classes(self):
134 """Define `App.config_classes` if config file classes should differ from CLI classes."""
135 return getattr(self, 'config_classes', self.classes)
127
136
128 # The version string of this application.
137 # The version string of this application.
129 version = Unicode(u'0.0')
138 version = Unicode(u'0.0')
@@ -256,7 +265,7 b' class Application(SingletonConfigurable):'
256
265
257 lines = []
266 lines = []
258 classdict = {}
267 classdict = {}
259 for cls in self.classes:
268 for cls in self._help_classes:
260 # include all parents (up to, but excluding Configurable) in available names
269 # include all parents (up to, but excluding Configurable) in available names
261 for c in cls.mro()[:-3]:
270 for c in cls.mro()[:-3]:
262 classdict[c.__name__] = c
271 classdict[c.__name__] = c
@@ -331,7 +340,8 b' class Application(SingletonConfigurable):'
331 self.print_options()
340 self.print_options()
332
341
333 if classes:
342 if classes:
334 if self.classes:
343 help_classes = self._help_classes
344 if help_classes:
335 print("Class parameters")
345 print("Class parameters")
336 print("----------------")
346 print("----------------")
337 print()
347 print()
@@ -339,7 +349,7 b' class Application(SingletonConfigurable):'
339 print(p)
349 print(p)
340 print()
350 print()
341
351
342 for cls in self.classes:
352 for cls in help_classes:
343 cls.class_print_help()
353 cls.class_print_help()
344 print()
354 print()
345 else:
355 else:
@@ -412,7 +422,7 b' class Application(SingletonConfigurable):'
412 # it will be a dict by parent classname of classes in our list
422 # it will be a dict by parent classname of classes in our list
413 # that are descendents
423 # that are descendents
414 mro_tree = defaultdict(list)
424 mro_tree = defaultdict(list)
415 for cls in self.classes:
425 for cls in self._help_classes:
416 clsname = cls.__name__
426 clsname = cls.__name__
417 for parent in cls.mro()[1:-3]:
427 for parent in cls.mro()[1:-3]:
418 # exclude cls itself and Configurable,HasTraits,object
428 # exclude cls itself and Configurable,HasTraits,object
@@ -530,7 +540,7 b' class Application(SingletonConfigurable):'
530 lines.append('')
540 lines.append('')
531 lines.append('c = get_config()')
541 lines.append('c = get_config()')
532 lines.append('')
542 lines.append('')
533 for cls in self.classes:
543 for cls in self._config_classes:
534 lines.append(cls.class_config_section())
544 lines.append(cls.class_config_section())
535 return '\n'.join(lines)
545 return '\n'.join(lines)
536
546
General Comments 0
You need to be logged in to leave comments. Login now