codebook / potato /server_utils /arg_utils.py
davidjurgens's picture
Deploy: Potato — Codebook Annotation
aceb1b2 verified
Raw
History Blame Contribute Delete
4.45 kB
"""
Utility functions around parsing arguments.
"""
from argparse import ArgumentParser
def arguments():
"""
Creates and returns the arg parser for Potato on the command line.
"""
parser = ArgumentParser()
parser.set_defaults(show_path=False, show_similarity=False)
parser.add_argument(
"mode",
choices=['start', 'migrate', 'reset-password', 'codebook'],
help="set the mode when potato is used, currently supporting: start, migrate, reset-password, codebook",
default="start",
)
parser.add_argument("config_file")
parser.add_argument(
"-p",
"--port",
action="store",
type=int,
dest="port",
help="The port to run on",
default=None,
)
parser.add_argument(
"-v", "--verbose", action="store_true", help="Report verbose output", default=False
)
parser.add_argument(
"--debug", action="store_true", help="Launch in debug mode with no login", default=False
)
parser.add_argument(
"--debug-log",
action="store",
type=str,
dest="debug_log",
choices=['all', 'ui', 'server', 'none'],
help="Control debug logging: 'all' (UI and server), 'ui' (frontend only), 'server' (backend only), 'none' (disable)",
default=None,
)
parser.add_argument(
"--debug-phase",
action="store",
type=str,
dest="debug_phase",
help="Skip directly to a specific phase (e.g., 'annotation', 'poststudy') or page name. Requires --debug flag.",
default=None,
)
parser.add_argument(
"--veryVerbose",
action="store_true",
dest="very_verbose",
help="Report very verbose output",
default=False,
)
parser.add_argument(
"--with-custom-js",
action="store_true",
dest="customjs",
help="Use a custom js module served from vite."
)
parser.add_argument(
"--custom-js-hostname",
action="store",
type=str,
dest="customjs_hostname",
help="custom hostname for potato.js serving",
default=None,
)
parser.add_argument(
"--require-password",
action="store",
type=lambda x: str(x).lower() == 'true',
dest="require_password",
help="Whether to require password authentication (true/false). If not specified, uses config file value.",
default=None,
)
parser.add_argument(
"--persist-sessions",
action="store_true",
dest="persist_sessions",
help="Enable session persistence between server restarts (default: False)",
default=False,
)
# SSL arguments (from master branch)
parser.add_argument(
"--ssl-cert",
action="store",
type=str,
dest="ssl_cert",
help="custom ssl cert location (should end in .pem)",
default=None
)
parser.add_argument(
"--ssl-key",
action="store",
type=str,
dest="ssl_key",
help="custom ssl key location (should end in .pem)",
default=None
)
# Migration-specific arguments
parser.add_argument(
"--to-v2",
action="store_true",
dest="to_v2",
help="[migrate mode] Migrate configuration to v2 format",
default=False,
)
parser.add_argument(
"--output", "-o",
dest="output_file",
help="[migrate mode] Output file path (default: print to stdout)",
default=None,
)
parser.add_argument(
"--in-place", "-i",
action="store_true",
dest="in_place",
help="[migrate mode] Modify the config file in place",
default=False,
)
parser.add_argument(
"--dry-run",
action="store_true",
dest="dry_run",
help="[migrate mode] Show what changes would be made without applying them",
default=False,
)
parser.add_argument(
"--quiet", "-q",
action="store_true",
dest="quiet",
help="[migrate mode] Suppress informational output",
default=False,
)
# Password reset arguments
parser.add_argument(
"--username",
action="store",
type=str,
dest="username",
help="[reset-password mode] Username to reset password for",
default=None,
)
return parser.parse_args()