summaryrefslogtreecommitdiff
path: root/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to '__init__.py')
-rw-r--r--__init__.py56
1 files changed, 22 insertions, 34 deletions
diff --git a/__init__.py b/__init__.py
index 099145f..2d475a2 100644
--- a/__init__.py
+++ b/__init__.py
@@ -2,52 +2,29 @@
from __future__ import print_function
-# install_requires of ruamel.base is not really required but the old
-# ruamel.base installed __init__.py, and thus a new version should
-# be installed at some point
_package_data = dict(
- full_package_name="ruamel.std.argparse",
- version_info=(0, 7, 1),
+ full_package_name='ruamel.std.argparse',
+ version_info=(0, 8, 0),
+ __version__='0.8.0',
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",
+ description='Enhancements to argparse: extra actions, subparser aliases, smart formatter, a decorator based wrapper', # NOQA
entry_points=None,
- install_requires=dict(
- any=[]
- ),
+ since=2007,
+ keywords='argparse enhanced',
+ install_requires=[],
universal=True,
)
-
-# < from ruamel.util.new import _convert_version
-def _convert_version(tup):
- """create a PEP 386 pseudo-format conformant string from tuple tup"""
- ret_val = str(tup[0]) # first is always digit
- next_sep = "." # separator for next extension, can be "" or "."
- for x in tup[1:]:
- if isinstance(x, int):
- ret_val += next_sep + str(x)
- next_sep = '.'
- continue
- first_letter = x[0].lower()
- next_sep = ''
- if first_letter in 'abcr':
- ret_val += 'rc' if first_letter == 'r' else first_letter
- elif first_letter in 'pd':
- ret_val += '.post' if first_letter == 'p' else '.dev'
- return ret_val
-
-
-# <
version_info = _package_data['version_info']
-__version__ = _convert_version(version_info)
-
-del _convert_version
+__version__ = _package_data['__version__']
import sys # NOQA
+import os # NOQA
import argparse # NOQA
from argparse import ArgumentParser # NOQA
+import glob # NOQA
+from importlib import import_module # NOQA
PY3 = sys.version_info[0] == 3
@@ -176,6 +153,7 @@ class ProgramBase(object):
"""
self._verbose = kw.pop('verbose', 0)
aliases = kw.pop('aliases', 0)
+ self._full_package_name = kw.pop('full_package_name', None)
self._parser = argparse.ArgumentParser(*args, **kw)
if aliases and sys.version_info < (3,):
self._parser.register('action', 'parsers', SubParsersAction) # NOQA
@@ -184,6 +162,16 @@ 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:
+ for file_name in file_names:
+ dn, fn = file_name.split(os.sep)
+ fn = fn.replace('.py', '')
+ module = import_module(
+ '.' + dn + '.' + fn,
+ package=self._full_package_name,
+ )
+ sp = module.load(self) # NOQA
def add_subparsers(method_name_list, parser, level=0):
if not method_name_list: