deb-python-cliff/cliff/_argparse.py
Akihiro Motoki f2c381c708 Ensure python standard argparse module is loaded
When 'import argparse' is used in cliff.something module,
cliff.argparse is loaded instead of python standard argparse.
This causes cliff.sphinxext failure with no attribute _HelpAction.

This can be avoided by renaming cliff.argparse to non-overlapping
module name like _argparse. cliff.argparse is for internal use,
so I believe it is safe to rename the module.

Closes-Bug: #1692018
Change-Id: Ic34f61581316c662dd2d672bc2c088dcef2100a9
2017-05-20 02:16:34 +09:00

31 lines
1.1 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""Special argparse module that allows to bypass abbrev mode."""
from __future__ import absolute_import
from argparse import * # noqa
import sys
if sys.version_info < (3, 5):
class ArgumentParser(ArgumentParser): # noqa
def __init__(self, *args, **kwargs):
self.allow_abbrev = kwargs.pop("allow_abbrev", True)
super(ArgumentParser, self).__init__(*args, **kwargs)
def _get_option_tuples(self, option_string):
if self.allow_abbrev:
return super(ArgumentParser, self)._get_option_tuples(
option_string)
return ()