Remove deprecated CLI tool
parent
fc04300140
commit
6519cfbb9e
3
setup.py
3
setup.py
|
@ -45,8 +45,5 @@ I use for web applications in the future.
|
||||||
'milla.request_validator': [
|
'milla.request_validator': [
|
||||||
'default = milla.auth:RequestValidator'
|
'default = milla.auth:RequestValidator'
|
||||||
],
|
],
|
||||||
'console_scripts': [
|
|
||||||
'milla-cli = milla.cli:main'
|
|
||||||
],
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
116
src/milla/cli.py
116
src/milla/cli.py
|
@ -1,116 +0,0 @@
|
||||||
# Copyright 2011 Dustin C. Hatch
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
'''Module milla.cli
|
|
||||||
|
|
||||||
.. deprecated:: 0.2
|
|
||||||
|
|
||||||
This module is unmaintained and will be removed soon. Please do not use it.
|
|
||||||
|
|
||||||
:Created: May 30, 2011
|
|
||||||
:Author: dustin
|
|
||||||
:Updated: $Date$
|
|
||||||
:Updater: $Author$
|
|
||||||
'''
|
|
||||||
import argparse
|
|
||||||
import pkg_resources
|
|
||||||
import warnings
|
|
||||||
|
|
||||||
|
|
||||||
warnings.warn('The milla.cli module is unmaintained and will be removed soon',
|
|
||||||
DeprecationWarning, stacklevel=2)
|
|
||||||
|
|
||||||
|
|
||||||
class CommandWarning(UserWarning):
|
|
||||||
'''A warning raised when a command cannot be loaded or used'''
|
|
||||||
|
|
||||||
|
|
||||||
class CommandLineInterface(object):
|
|
||||||
'''Wrapper class for the Milla CLI'''
|
|
||||||
|
|
||||||
PROGNAME = 'milla-cli'
|
|
||||||
EPGROUP = 'milla.command'
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.parser = argparse.ArgumentParser(prog=self.PROGNAME)
|
|
||||||
subparsers = None
|
|
||||||
subcmds = pkg_resources.iter_entry_points(self.EPGROUP)
|
|
||||||
for cmd in subcmds:
|
|
||||||
try:
|
|
||||||
Command = cmd.load()
|
|
||||||
except Exception as e:
|
|
||||||
warnings.warn("Unable to load command from entry point named "
|
|
||||||
"'{epname}': {e}".format(
|
|
||||||
epname=cmd,
|
|
||||||
e=e,
|
|
||||||
), CommandWarning)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if not hasattr(Command, 'name') or not Command.name:
|
|
||||||
warnings.warn("Command '{cmd}' from '{mod}' does not have a "
|
|
||||||
"name and cannot be used".format(
|
|
||||||
cmd=Command.__name__,
|
|
||||||
mod=Command.__module__
|
|
||||||
), CommandWarning)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if not subparsers:
|
|
||||||
subparsers = self.parser.add_subparsers()
|
|
||||||
subcmd = subparsers.add_parser(Command.name, *Command.parser_args,
|
|
||||||
**Command.parser_kwargs)
|
|
||||||
Command.setup_args(subcmd)
|
|
||||||
subcmd.set_defaults(func=Command())
|
|
||||||
|
|
||||||
|
|
||||||
class Command(object):
|
|
||||||
'''Base class for "commands"
|
|
||||||
|
|
||||||
To create a command, subclass this class and override the following
|
|
||||||
attributes:
|
|
||||||
|
|
||||||
* ``name`` -- Name of the subcommand
|
|
||||||
* ``parser_args`` -- arguments to pass to ``add_parser`` when
|
|
||||||
creating the ArgumentParser for the command
|
|
||||||
* ``parser_kwargs`` -- keywords to pass to ``add_parser``
|
|
||||||
* ``setup_args()`` -- Class method called to add arguments, etc. to
|
|
||||||
the command subparser.
|
|
||||||
'''
|
|
||||||
|
|
||||||
#: Tuple of arguments to pass to the ArgumentParser constructor
|
|
||||||
parser_args = ()
|
|
||||||
#: Dict of keywords to pass to the ArgumentParser constructor
|
|
||||||
parser_kwargs = {}
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def setup_args(cls, parser):
|
|
||||||
'''Add arguments, etc to the command subparser
|
|
||||||
|
|
||||||
Override this method to add arguments, options, etc. to the
|
|
||||||
subparser for the command. The default implementation does
|
|
||||||
not add anything.
|
|
||||||
|
|
||||||
:param parser: An instance of ``ArgumentParser`` for the
|
|
||||||
``milla-cli`` subcommand
|
|
||||||
'''
|
|
||||||
|
|
||||||
pass
|
|
||||||
|
|
||||||
def main():
|
|
||||||
'''Entry point for the ``milla-cli`` console script'''
|
|
||||||
|
|
||||||
cli = CommandLineInterface()
|
|
||||||
args = cli.parser.parse_args()
|
|
||||||
func = args.func
|
|
||||||
del args.func
|
|
||||||
func.args = args
|
|
||||||
func()
|
|
Loading…
Reference in New Issue