Skip to content

Commit fad36df

Browse files
committed
New shared function add_parser_verbosity_group().
1 parent 9d71171 commit fad36df

3 files changed

Lines changed: 40 additions & 24 deletions

File tree

relink.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@
1212
import time
1313
from pathlib import Path
1414

15-
from shared import DEFAULT_INPUTDATA_ROOT, DEFAULT_STAGING_ROOT, get_log_level
15+
from shared import (
16+
DEFAULT_INPUTDATA_ROOT,
17+
DEFAULT_STAGING_ROOT,
18+
get_log_level,
19+
add_parser_verbosity_group,
20+
)
1621

1722
# Set up logger
1823
logger = logging.getLogger(__name__)
@@ -175,7 +180,11 @@ def find_owned_files_scandir(item, user_uid, inputdata_root=DEFAULT_INPUTDATA_RO
175180

176181

177182
def replace_files_with_symlinks(
178-
item_to_process, target_dir, username, inputdata_root=DEFAULT_INPUTDATA_ROOT, dry_run=False
183+
item_to_process,
184+
target_dir,
185+
username,
186+
inputdata_root=DEFAULT_INPUTDATA_ROOT,
187+
dry_run=False,
179188
):
180189
"""
181190
Finds files owned by a specific user in a source directory tree,
@@ -357,17 +366,8 @@ def parse_arguments():
357366
help=argparse.SUPPRESS,
358367
)
359368

360-
# Verbosity options (mutually exclusive)
361-
verbosity_group = parser.add_mutually_exclusive_group()
362-
verbosity_group.add_argument(
363-
"-v", "--verbose", action="store_true", help="Enable verbose output"
364-
)
365-
verbosity_group.add_argument(
366-
"-q",
367-
"--quiet",
368-
action="store_true",
369-
help="Quiet mode (show only warnings and errors)",
370-
)
369+
# Add verbosity options
370+
add_parser_verbosity_group(parser)
371371

372372
parser.add_argument(
373373
"--dry-run",

rimport

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,8 @@ def build_parser() -> argparse.ArgumentParser:
8989
help="Check whether file(s) is/are already published.",
9090
)
9191

92-
# Verbosity options (mutually exclusive)
93-
verbosity_group = parser.add_mutually_exclusive_group()
94-
verbosity_group.add_argument(
95-
"-v", "--verbose", action="store_true", help="Enable verbose output (DEBUG level)"
96-
)
97-
verbosity_group.add_argument(
98-
"-q",
99-
"--quiet",
100-
action="store_true",
101-
help="Quiet mode (show only warnings and errors)",
102-
)
92+
# Add verbosity options
93+
shared.add_parser_verbosity_group(parser)
10394

10495
# Provide -help to mirror legacy behavior (in addition to -h and --help)
10596
parser.add_argument(

shared.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"""
44

55
import logging
6+
from argparse import ArgumentParser
67

78
DEFAULT_INPUTDATA_ROOT = "/glade/campaign/cesm/cesmdata/cseg/inputdata/"
89
DEFAULT_STAGING_ROOT = (
@@ -28,3 +29,27 @@ def get_log_level(quiet: bool = False, verbose: bool = False) -> int:
2829
if verbose:
2930
return logging.DEBUG
3031
return logging.INFO
32+
33+
34+
def add_parser_verbosity_group(parser: ArgumentParser):
35+
"""Add mutually exclusive verbosity options to an argument parser.
36+
37+
Adds -v/--verbose and -q/--quiet flags as a mutually exclusive group.
38+
39+
Args:
40+
parser: ArgumentParser instance to add the verbosity group to.
41+
42+
Returns:
43+
The mutually exclusive argument group that was created.
44+
"""
45+
verbosity_group = parser.add_mutually_exclusive_group()
46+
verbosity_group.add_argument(
47+
"-v", "--verbose", action="store_true", help="Enable verbose output (DEBUG level)"
48+
)
49+
verbosity_group.add_argument(
50+
"-q",
51+
"--quiet",
52+
action="store_true",
53+
help="Quiet mode (show only warnings and errors)",
54+
)
55+
return verbosity_group

0 commit comments

Comments
 (0)