| 1311 | # -- OptionGroup methods ------------------------------------------- |
| 1312 | |
| 1313 | def add_option_group(self, *args, **kwargs): |
| 1314 | # XXX lots of overlap with OptionContainer.add_option() |
| 1315 | if isinstance(args[0], str): |
| 1316 | group = OptionGroup(self, *args, **kwargs) |
| 1317 | elif len(args) == 1 and not kwargs: |
| 1318 | group = args[0] |
| 1319 | if not isinstance(group, OptionGroup): |
| 1320 | raise TypeError("not an OptionGroup instance: %r" % group) |
| 1321 | if group.parser is not self: |
| 1322 | raise ValueError("invalid OptionGroup (wrong parser)") |
| 1323 | else: |
| 1324 | raise TypeError("invalid arguments") |
| 1325 | |
| 1326 | self.option_groups.append(group) |
| 1327 | return group |
| 1328 | |
| 1329 | def get_option_group(self, opt_str): |
| 1330 | option = (self._short_opt.get(opt_str) or |