21504: Style arv-mount argument creation consistently
authorBrett Smith <brett.smith@curii.com>
Sun, 25 Feb 2024 03:44:47 +0000 (22:44 -0500)
committerBrett Smith <brett.smith@curii.com>
Sun, 25 Feb 2024 03:44:47 +0000 (22:44 -0500)
This is purely a code style change: every argparse argument is created
with one argument per line. This is preparation for readability
reorganization I'm about to do.

Remove arguments that match the argparse defaults as part of this.

Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>

services/fuse/arvados_fuse/command.py

index 610da477cad48e4dcf63d3f019c597256174a759..cec5053c64903da025525f3b9bd58ef01f69ba60 100644 (file)
@@ -28,105 +28,305 @@ class ArgumentParser(argparse.ArgumentParser):
     def __init__(self):
         super(ArgumentParser, self).__init__(
             parents=[arv_cmd.retry_opt],
-            description='''Mount Keep data under the local filesystem.  Default mode is --home''',
+            description="""
+Mount Keep data under the local filesystem.  Default mode is --home
+""",
             epilog="""
     Note: When using the --exec feature, you must either specify the
     mountpoint before --exec, or mark the end of your --exec arguments
     with "--".
             """)
-        self.add_argument('--version', action='version',
-                          version=u"%s %s" % (sys.argv[0], __version__),
-                          help='Print version and exit.')
-        self.add_argument('mountpoint', type=str, help="""Mount point.""")
-        self.add_argument('--allow-other', action='store_true',
-                            help="""Let other users read the mount""")
-        self.add_argument('--subtype', type=str, metavar='STRING',
-                            help="""Report mounted filesystem type as "fuse.STRING", instead of just "fuse".""")
+        self.add_argument(
+            '--version',
+            action='version',
+            version=u"%s %s" % (sys.argv[0], __version__),
+            help='Print version and exit.',
+        )
+        self.add_argument(
+            'mountpoint',
+            help="""Mount point.""",
+        )
+        self.add_argument(
+            '--allow-other',
+            action='store_true',
+            help="""Let other users read the mount""",
+        )
+        self.add_argument(
+            '--subtype',
+            metavar='STRING',
+            help="""Report mounted filesystem type as "fuse.STRING", instead of just "fuse".""",
+        )
 
         mode = self.add_mutually_exclusive_group()
-
-        mode.add_argument('--all', action='store_const', const='all', dest='mode',
-                                help="""Mount a subdirectory for each mode: home, shared, by_tag, by_id (default if no --mount-* arguments are given).""")
-        mode.add_argument('--custom', action='store_const', const=None, dest='mode',
-                                help="""Mount a top level meta-directory with subdirectories as specified by additional --mount-* arguments (default if any --mount-* arguments are given).""")
-        mode.add_argument('--home', action='store_const', const='home', dest='mode',
-                                help="""Mount only the user's home project.""")
-        mode.add_argument('--shared', action='store_const', const='shared', dest='mode',
-                                help="""Mount only list of projects shared with the user.""")
-        mode.add_argument('--by-tag', action='store_const', const='by_tag', dest='mode',
-                                help="""Mount subdirectories listed by tag.""")
-        mode.add_argument('--by-id', action='store_const', const='by_id', dest='mode',
-                                help="""Mount subdirectories listed by portable data hash or uuid.""")
-        mode.add_argument('--by-pdh', action='store_const', const='by_pdh', dest='mode',
-                                help="""Mount subdirectories listed by portable data hash.""")
-        mode.add_argument('--project', type=str, metavar='UUID',
-                                help="""Mount the specified project.""")
-        mode.add_argument('--collection', type=str, metavar='UUID_or_PDH',
-                                help="""Mount only the specified collection.""")
+        mode.add_argument(
+            '--all',
+            action='store_const',
+            const='all',
+            dest='mode',
+            help="""
+Mount a subdirectory for each mode: home, shared, by_tag, by_id
+(default if no --mount-* arguments are given).
+""",
+        )
+        mode.add_argument(
+            '--custom',
+            action='store_const',
+            const=None,
+            dest='mode',
+            help="""
+Mount a top level meta-directory with subdirectories as specified by additional --mount-* arguments
+(default if any --mount-* arguments are given).
+""",
+        )
+        mode.add_argument(
+            '--home',
+            action='store_const',
+            const='home',
+            dest='mode',
+            help="""Mount only the user's home project.""",
+        )
+        mode.add_argument(
+            '--shared',
+            action='store_const',
+            const='shared',
+            dest='mode',
+            help="""Mount only list of projects shared with the user.""",
+        )
+        mode.add_argument(
+            '--by-tag',
+            action='store_const',
+            const='by_tag',
+            dest='mode',
+            help="""Mount subdirectories listed by tag.""",
+        )
+        mode.add_argument(
+            '--by-id',
+            action='store_const',
+            const='by_id',
+            dest='mode',
+            help="""Mount subdirectories listed by portable data hash or uuid.""",
+        )
+        mode.add_argument(
+            '--by-pdh',
+            action='store_const',
+            const='by_pdh',
+            dest='mode',
+            help="""Mount subdirectories listed by portable data hash.""",
+        )
+        mode.add_argument(
+            '--project',
+            metavar='UUID',
+            help="""Mount the specified project.""",
+        )
+        mode.add_argument(
+            '--collection',
+            metavar='UUID_or_PDH',
+            help="""Mount only the specified collection.""",
+        )
 
         mounts = self.add_argument_group('Custom mount options')
-        mounts.add_argument('--mount-by-pdh',
-                            type=str, metavar='PATH', action='append', default=[],
-                            help="Mount each readable collection at mountpoint/PATH/P where P is the collection's portable data hash.")
-        mounts.add_argument('--mount-by-id',
-                            type=str, metavar='PATH', action='append', default=[],
-                            help="Mount each readable collection at mountpoint/PATH/UUID and mountpoint/PATH/PDH where PDH is the collection's portable data hash and UUID is its UUID.")
-        mounts.add_argument('--mount-by-tag',
-                            type=str, metavar='PATH', action='append', default=[],
-                            help="Mount all collections with tag TAG at mountpoint/PATH/TAG/UUID.")
-        mounts.add_argument('--mount-home',
-                            type=str, metavar='PATH', action='append', default=[],
-                            help="Mount the current user's home project at mountpoint/PATH.")
-        mounts.add_argument('--mount-shared',
-                            type=str, metavar='PATH', action='append', default=[],
-                            help="Mount projects shared with the current user at mountpoint/PATH.")
-        mounts.add_argument('--mount-tmp',
-                            type=str, metavar='PATH', action='append', default=[],
-                            help="Create a new collection, mount it in read/write mode at mountpoint/PATH, and delete it when unmounting.")
-
-
-        self.add_argument('--debug', action='store_true', help="""Debug mode""")
-        self.add_argument('--logfile', help="""Write debug logs and errors to the specified file (default stderr).""")
-        self.add_argument('--foreground', action='store_true', help="""Run in foreground (default is to daemonize unless --exec specified)""", default=False)
-        self.add_argument('--encoding', type=str, help="Character encoding to use for filesystem, default is utf-8 (see Python codec registry for list of available encodings)", default="utf-8")
-
-        self.add_argument('--file-cache', type=int, help="File data cache size, in bytes (default 8 GiB for disk-based cache or 256 MiB with RAM-only cache)", default=0)
-        self.add_argument('--directory-cache', type=int, help="Directory data cache size, in bytes (default 128 MiB)", default=128*1024*1024)
+        mounts.add_argument(
+            '--mount-by-pdh',
+            metavar='PATH',
+            action='append',
+            default=[],
+            help="""
+Mount each readable collection at mountpoint/PATH/P
+where P is the collection's portable data hash.
+""",
+        )
+        mounts.add_argument(
+            '--mount-by-id',
+            metavar='PATH',
+            action='append',
+            default=[],
+            help="""
+Mount each readable collection at mountpoint/PATH/UUID and mountpoint/PATH/PDH
+where PDH is the collection's portable data hash and UUID is its UUID.
+""",
+        )
+        mounts.add_argument(
+            '--mount-by-tag',
+            metavar='PATH',
+            action='append',
+            default=[],
+            help="Mount all collections with tag TAG at mountpoint/PATH/TAG/UUID.",
+        )
+        mounts.add_argument(
+            '--mount-home',
+            metavar='PATH',
+            action='append',
+            default=[],
+            help="Mount the current user's home project at mountpoint/PATH.",
+        )
+        mounts.add_argument(
+            '--mount-shared',
+            metavar='PATH',
+            action='append',
+            default=[],
+            help="Mount projects shared with the current user at mountpoint/PATH.",
+        )
+        mounts.add_argument(
+            '--mount-tmp',
+            metavar='PATH',
+            action='append',
+            default=[],
+            help="""
+Create a new collection, mount it in read/write mode at mountpoint/PATH,
+and delete it when unmounting.
+""",
+        )
+
+        self.add_argument(
+            '--debug',
+            action='store_true',
+            help="""Debug mode""",
+        )
+        self.add_argument(
+            '--logfile',
+            help="""Write debug logs and errors to the specified file (default stderr).""",
+        )
+        self.add_argument(
+            '--foreground',
+            action='store_true',
+            default=False,
+            help="""Run in foreground (default is to daemonize unless --exec specified)""",
+        )
+        self.add_argument(
+            '--encoding',
+            default="utf-8",
+            help="""
+Character encoding to use for filesystem, default is utf-8
+(see Python codec registry for list of available encodings)"
+""",
+        )
+
+        self.add_argument(
+            '--file-cache',
+            type=int,
+            default=0,
+            help="""
+File data cache size, in bytes
+(default 8 GiB for disk-based cache or 256 MiB with RAM-only cache)
+""",
+        )
+        self.add_argument(
+            '--directory-cache',
+            type=int,
+            default=128*1024*1024,
+            help="Directory data cache size, in bytes (default 128 MiB)",
+        )
 
         cachetype = self.add_mutually_exclusive_group()
-        cachetype.add_argument('--ram-cache', action='store_false', dest='disk_cache', help="Use in-memory caching only", default=True)
-        cachetype.add_argument('--disk-cache', action='store_true', dest='disk_cache', help="Use disk based caching (default)", default=True)
+        cachetype.add_argument(
+            '--ram-cache',
+            action='store_false',
+            default=True,
+            dest='disk_cache',
+            help="Use in-memory caching only",
+        )
+        cachetype.add_argument(
+            '--disk-cache',
+            action='store_true',
+            default=True,
+            dest='disk_cache',
+            help="Use disk based caching (default)",
+        )
 
-        self.add_argument('--disk-cache-dir', type=str, help="Disk cache location (default ~/.cache/arvados/keep)", default=None)
+        self.add_argument(
+            '--disk-cache-dir',
+            help="Disk cache location (default ~/.cache/arvados/keep)",
+        )
 
-        self.add_argument('--disable-event-listening', action='store_true', help="Don't subscribe to events on the API server", dest="disable_event_listening", default=False)
+        self.add_argument(
+            '--disable-event-listening',
+            action='store_true',
+            dest='disable_event_listening',
+            default=False,
+            help="Don't subscribe to events on the API server",
+        )
 
-        self.add_argument('--read-only', action='store_false', help="Mount will be read only (default)", dest="enable_write", default=False)
-        self.add_argument('--read-write', action='store_true', help="Mount will be read-write", dest="enable_write", default=False)
-        self.add_argument('--storage-classes', type=str, metavar='CLASSES', help="Specify comma separated list of storage classes to be used when saving data of new collections", default=None)
+        self.add_argument(
+            '--read-only',
+            action='store_false',
+            default=False,
+            dest='enable_write',
+            help="Mount will be read only (default)",
+        )
+        self.add_argument(
+            '--read-write',
+            action='store_true',
+            default=False,
+            dest='enable_write',
+            help="Mount will be read-write",
+        )
+        self.add_argument(
+            '--storage-classes',
+            metavar='CLASSES',
+            help="Specify comma separated list of storage classes to be used when saving data of new collections",
+        )
 
-        self.add_argument('--crunchstat-interval', type=float, help="Write stats to stderr every N seconds (default disabled)", default=0)
+        self.add_argument(
+            '--crunchstat-interval',
+            type=float,
+            default=0.0,
+            help="Write stats to stderr every N seconds (default disabled)",
+        )
 
         unmount = self.add_mutually_exclusive_group()
-        unmount.add_argument('--unmount', action='store_true', default=False,
-                             help="Forcefully unmount the specified mountpoint (if it's a fuse mount) and exit. If --subtype is given, unmount only if the mount has the specified subtype. WARNING: This command can affect any kind of fuse mount, not just arv-mount.")
-        unmount.add_argument('--unmount-all', action='store_true', default=False,
-                             help="Forcefully unmount every fuse mount at or below the specified path and exit. If --subtype is given, unmount only mounts that have the specified subtype. Exit non-zero if any other types of mounts are found at or below the given path. WARNING: This command can affect any kind of fuse mount, not just arv-mount.")
-        unmount.add_argument('--replace', action='store_true', default=False,
-                             help="If a fuse mount is already present at mountpoint, forcefully unmount it before mounting")
-        self.add_argument('--unmount-timeout',
-                          type=float, default=2.0,
-                          help="Time to wait for graceful shutdown after --exec program exits and filesystem is unmounted")
+        unmount.add_argument(
+            '--unmount',
+            action='store_true',
+            default=False,
+            help="""
+Forcefully unmount the specified mountpoint (if it's a fuse mount) and exit.
+If --subtype is given, unmount only if the mount has the specified subtype.
+WARNING: This command can affect any kind of fuse mount, not just arv-mount.
+""",
+        )
+        unmount.add_argument(
+            '--unmount-all',
+            action='store_true',
+            default=False,
+            help="""
+Forcefully unmount every fuse mount at or below the specified path and exit.
+If --subtype is given, unmount only mounts that have the specified subtype.
+Exit non-zero if any other types of mounts are found at or below the given path.
+WARNING: This command can affect any kind of fuse mount, not just arv-mount.
+""",
+        )
+        unmount.add_argument(
+            '--replace',
+            action='store_true',
+            default=False,
+            help="""
+If a fuse mount is already present at mountpoint, forcefully unmount it before mounting
+""",
+        )
+        self.add_argument(
+            '--unmount-timeout',
+            type=float,
+            default=2.0,
+            help="""
+Time to wait for graceful shutdown after --exec program exits and filesystem is unmounted
+""",
+        )
         self.add_argument(
             '--filters',
             type=arv_cmd.JSONArgument(arv_cmd.validate_filters),
-            help="""Filters to apply to all project, shared, and tag directory
-contents. Pass filters as either a JSON string or a path to a JSON file.
+            help="""
+Filters to apply to all project, shared, and tag directory contents.
+Pass filters as either a JSON string or a path to a JSON file.
 The JSON object should be a list of filters in Arvados API list filter syntax.
-""")
-        self.add_argument('--exec', type=str, nargs=argparse.REMAINDER,
-                            dest="exec_args", metavar=('command', 'args', '...', '--'),
-                            help="""Mount, run a command, then unmount and exit""")
+""",
+        )
+        self.add_argument(
+            '--exec',
+            nargs=argparse.REMAINDER,
+            dest="exec_args",
+            metavar=('command', 'args', '...', '--'),
+            help="""Mount, run a command, then unmount and exit""",
+        )
 
 
 class Mount(object):