summaryrefslogtreecommitdiff
path: root/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to '__init__.py')
-rw-r--r--__init__.py21
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