mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
enhance the in-line -h command help text
- the prompt argument comes before the optional arguments - usage statement shows 'invoke>' rather than 'invoke.py' - use pydoc pager to help display long help message
This commit is contained in:
parent
19a79caf41
commit
31869885d9
@ -82,6 +82,7 @@ with metadata_from_png():
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from argparse import Namespace, RawTextHelpFormatter
|
from argparse import Namespace, RawTextHelpFormatter
|
||||||
|
import pydoc
|
||||||
import shlex
|
import shlex
|
||||||
import json
|
import json
|
||||||
import hashlib
|
import hashlib
|
||||||
@ -115,6 +116,36 @@ PRECISION_CHOICES = [
|
|||||||
APP_ID = 'lstein/stable-diffusion'
|
APP_ID = 'lstein/stable-diffusion'
|
||||||
APP_VERSION = 'v1.15'
|
APP_VERSION = 'v1.15'
|
||||||
|
|
||||||
|
class ArgFormatter(argparse.RawTextHelpFormatter):
|
||||||
|
# use defined argument order to display usage
|
||||||
|
def _format_usage(self, usage, actions, groups, prefix):
|
||||||
|
if prefix is None:
|
||||||
|
prefix = 'usage: '
|
||||||
|
|
||||||
|
# if usage is specified, use that
|
||||||
|
if usage is not None:
|
||||||
|
usage = usage % dict(prog=self._prog)
|
||||||
|
|
||||||
|
# if no optionals or positionals are available, usage is just prog
|
||||||
|
elif usage is None and not actions:
|
||||||
|
usage = 'invoke>'
|
||||||
|
elif usage is None:
|
||||||
|
prog='invoke>'
|
||||||
|
# build full usage string
|
||||||
|
action_usage = self._format_actions_usage(actions, groups) # NEW
|
||||||
|
usage = ' '.join([s for s in [prog, action_usage] if s])
|
||||||
|
# omit the long line wrapping code
|
||||||
|
# prefix with 'usage:'
|
||||||
|
return '%s%s\n\n' % (prefix, usage)
|
||||||
|
|
||||||
|
class PagingArgumentParser(argparse.ArgumentParser):
|
||||||
|
'''
|
||||||
|
A custom ArgumentParser that uses pydoc to page its output.
|
||||||
|
'''
|
||||||
|
def print_help(self, file=None):
|
||||||
|
text = self.format_help()
|
||||||
|
pydoc.pager(text)
|
||||||
|
|
||||||
class Args(object):
|
class Args(object):
|
||||||
def __init__(self,arg_parser=None,cmd_parser=None):
|
def __init__(self,arg_parser=None,cmd_parser=None):
|
||||||
'''
|
'''
|
||||||
@ -480,8 +511,8 @@ class Args(object):
|
|||||||
|
|
||||||
# This creates the parser that processes commands on the dream> command line
|
# This creates the parser that processes commands on the dream> command line
|
||||||
def _create_dream_cmd_parser(self):
|
def _create_dream_cmd_parser(self):
|
||||||
parser = argparse.ArgumentParser(
|
parser = PagingArgumentParser(
|
||||||
formatter_class=RawTextHelpFormatter,
|
formatter_class=ArgFormatter,
|
||||||
description=
|
description=
|
||||||
"""
|
"""
|
||||||
*Image generation:*
|
*Image generation:*
|
||||||
|
Loading…
Reference in New Issue
Block a user