diff options
Diffstat (limited to '__init__.py')
-rw-r--r-- | __init__.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/__init__.py b/__init__.py index 2d475a2..967150f 100644 --- a/__init__.py +++ b/__init__.py @@ -4,8 +4,8 @@ from __future__ import print_function _package_data = dict( full_package_name='ruamel.std.argparse', - version_info=(0, 8, 0), - __version__='0.8.0', + version_info=(0, 8, 1), + __version__='0.8.1', author='Anthon van der Neut', author_email='a.van.der.neut@ruamel.eu', description='Enhancements to argparse: extra actions, subparser aliases, smart formatter, a decorator based wrapper', # NOQA @@ -31,7 +31,7 @@ PY3 = sys.version_info[0] == 3 if PY3: string_types = str, else: - string_types = basestring, + string_types = basestring, # NOQA store_true = 'store_true' store_false = 'store_false' @@ -162,10 +162,14 @@ class ProgramBase(object): self._sub_parsers = None methods_with_sub_parsers = [] # list to process, multilevel all_methods_with_sub_parsers = [] - file_names = glob.glob('*/__plug_in__.py') if self._full_package_name: + module = import_module( + self._full_package_name, + ) + file_names = glob.glob(os.path.join(os.path.dirname(module.__file__), + '*/__plug_in__.py')) for file_name in file_names: - dn, fn = file_name.split(os.sep) + _, dn, fn = file_name.rsplit(os.sep, 2) fn = fn.replace('.py', '') module = import_module( '.' + dn + '.' + fn, @@ -194,7 +198,7 @@ class ProgramBase(object): parser = ssp.add_parser(*arg, **method._sub_parser['kw']) info['parser'] = parser res = add_subparsers(info.get('ordering', []), - parser, level=level+1) + parser, level=level + 1) if res is None: # only set default if there are no subparsers, otherwise # defaults override @@ -240,7 +244,7 @@ class ProgramBase(object): else: v = info[k] print(' ' + ' ' * level, k, '->', v) - dump(info.get('ordering', []), level=level+1) + dump(info.get('ordering', []), level=level + 1) self._sub_parsers = add_subparsers( ProgramBase._methods_with_sub_parsers, self._parser) @@ -316,7 +320,7 @@ class ProgramBase(object): parent._sub_parser['sp'] = ssp sub_parsers = ssp arg = method._sub_parser['args'] - if not arg or not isinstance(arg[0], basestring): + if not arg or not isinstance(arg[0], basestring): # NOQA arg = list(arg) arg.insert(0, method.__name__) sp = sub_parsers.add_parser(*arg, @@ -517,4 +521,5 @@ def set_default_subparser(self, name, args=None): else: args.insert(0, name) + argparse.ArgumentParser.set_default_subparser = set_default_subparser |