This is mainly intended for custom CLIs that may load a config file
which already sets the debug flag and does not make use of the `FLASK_*`
env vars at all.
sort by endpoint by default
combine sort flags
sort methods
ignore HEAD and OPTIONS methods by default
rearrange columns
use format to build row format string
rework tests
add changelog
Before:
```
C:\dev\tmp>py -2 -m flask run
Traceback (most recent call last):
File "C:\Python27\lib\runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "C:\Python27\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "c:\dev\sourcetree\flask\flask\__main__.py", line 15, in <module>
main(as_module=True)
File "c:\dev\sourcetree\flask\flask\cli.py", line 523, in main
cli.main(args=args, prog_name=name)
File "c:\dev\sourcetree\flask\flask\cli.py", line 383, in main
return AppGroup.main(self, *args, **kwargs)
File "C:\Python27\lib\site-packages\click\core.py", line 697, in main
rv = self.invoke(ctx)
File "C:\Python27\lib\site-packages\click\core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Python27\lib\site-packages\click\core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Python27\lib\site-packages\click\core.py", line 535, in invoke
return callback(*args, **kwargs)
File "C:\Python27\lib\site-packages\click\decorators.py", line 64, in new_func
return ctx.invoke(f, obj, *args[1:], **kwargs)
File "C:\Python27\lib\site-packages\click\core.py", line 535, in invoke
return callback(*args, **kwargs)
File "c:\dev\sourcetree\flask\flask\cli.py", line 433, in run_command
app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
File "c:\dev\sourcetree\flask\flask\cli.py", line 153, in __init__
self._load_unlocked()
File "c:\dev\sourcetree\flask\flask\cli.py", line 177, in _load_unlocked
self._app = rv = self.loader()
File "c:\dev\sourcetree\flask\flask\cli.py", line 238, in load_app
rv = locate_app(self.app_import_path)
File "c:\dev\sourcetree\flask\flask\cli.py", line 91, in locate_app
__import__(module)
File "C:\dev\tmp\error.py", line 1, in <module>
import whatisthisidonteven
ImportError: No module named whatisthisidonteven
```
After:
```
C:\dev\tmp>py -2 -m flask run
Usage: python -m flask run [OPTIONS]
Error: There was an error trying to import the app (error):
Traceback (most recent call last):
File "c:\dev\sourcetree\flask\flask\cli.py", line 91, in locate_app
__import__(module)
File "C:\dev\tmp\error.py", line 1, in <module>
import whatisthisidonteven
ImportError: No module named whatisthisidonteven```