Skip to content

Commit

Permalink
Make add_cylc_rose_options() a method of CylcOptionParser
Browse files Browse the repository at this point in the history
  • Loading branch information
MetRonnie committed Jul 16, 2021
1 parent fa6e8b2 commit 742f70a
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 54 deletions.
39 changes: 39 additions & 0 deletions cylc/flow/option_parsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,45 @@ def add_std_options(self):
dest="icp",
)

def add_cylc_rose_options(self) -> None:
"""Add extra options for cylc-rose plugin if it is installed."""
try:
__import__('cylc.rose')
except ImportError:
return
self.add_option(
"--opt-conf-key", "-O",
help=(
"Use optional Rose Config Setting "
"(If Cylc-Rose is installed)"
),
action="append",
default=[],
dest="opt_conf_keys"
)
self.add_option(
"--define", '-D',
help=(
"Each of these overrides the `[SECTION]KEY` setting in a "
"`rose-suite.conf` file. "
"Can be used to disable a setting using the syntax "
"`--define=[SECTION]!KEY` or even `--define=[!SECTION]`."
),
action="append",
default=[],
dest="defines"
)
self.add_option(
"--rose-template-variable", '-S',
help=(
"As `--define`, but with an implicit `[SECTION]` for "
"workflow variables."
),
action="append",
default=[],
dest="rose_template_vars"
)

def parse_args(self, api_args, remove_opts=None):
"""Parse options and arguments, overrides OptionParser.parse_args.
Expand Down
3 changes: 1 addition & 2 deletions cylc/flow/scripts/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
from cylc.flow.config import WorkflowConfig
from cylc.flow.option_parsers import CylcOptionParser as COP
from cylc.flow.pathutil import get_workflow_run_dir
from cylc.flow.scripts.install import add_cylc_rose_options
from cylc.flow.templatevars import get_template_vars
from cylc.flow.terminal import cli_function
from cylc.flow.workflow_files import WorkflowFiles, parse_reg
Expand Down Expand Up @@ -101,7 +100,7 @@ def get_option_parser():
"overrides any settings it shares with those higher up."),
action="store_true", default=False, dest="print_hierarchy")

parser = add_cylc_rose_options(parser)
parser.add_cylc_rose_options()

return parser

Expand Down
3 changes: 1 addition & 2 deletions cylc/flow/scripts/graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
from cylc.flow.config import WorkflowConfig
from cylc.flow.exceptions import UserInputError
from cylc.flow.option_parsers import CylcOptionParser as COP
from cylc.flow.scripts.install import add_cylc_rose_options
from cylc.flow.templatevars import get_template_vars
from cylc.flow.terminal import cli_function
from cylc.flow.workflow_files import parse_reg
Expand Down Expand Up @@ -218,7 +217,7 @@ def get_option_parser():
action='store',
)

parser = add_cylc_rose_options(parser)
parser.add_cylc_rose_options()

return parser

Expand Down
47 changes: 1 addition & 46 deletions cylc/flow/scripts/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,51 +83,6 @@
from optparse import Values


def add_cylc_rose_options(parser):
"""Add extra options for cylc-rose plugin if it is installed.
Args:
parser: An option parser object
"""
try:
__import__('cylc.rose')
parser.add_option(
"--opt-conf-key", "-O",
help=(
"Use optional Rose Config Setting "
"(If Cylc-Rose is installed)"
),
action="append",
default=[],
dest="opt_conf_keys"
)
parser.add_option(
"--define", '-D',
help=(
"Each of these overrides the `[SECTION]KEY` setting in a "
"`rose-suite.conf` file. "
"Can be used to disable a setting using the syntax "
"`--define=[SECTION]!KEY` or even `--define=[!SECTION]`."
),
action="append",
default=[],
dest="defines"
)
parser.add_option(
"--rose-template-variable", '-S',
help=(
"As `--define`, but with an implicit `[SECTION]` for "
"workflow variables."
),
action="append",
default=[],
dest="rose_template_vars"
)
except ImportError:
pass
return parser


def get_option_parser():
parser = COP(
__doc__, comms=True, prep=True,
Expand Down Expand Up @@ -172,7 +127,7 @@ def get_option_parser():
default=False,
dest="no_symlinks")

parser = add_cylc_rose_options(parser)
parser.add_cylc_rose_options()

return parser

Expand Down
3 changes: 1 addition & 2 deletions cylc/flow/scripts/list.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@

from cylc.flow.config import WorkflowConfig
from cylc.flow.option_parsers import CylcOptionParser as COP
from cylc.flow.scripts.install import add_cylc_rose_options
from cylc.flow.templatevars import get_template_vars
from cylc.flow.terminal import cli_function
from cylc.flow.workflow_files import parse_reg
Expand Down Expand Up @@ -86,7 +85,7 @@ def get_option_parser():
"initial cycle point, by default). Use '-p , ' for the default range.",
metavar="[START],[STOP]", action="store", default=None, dest="prange")

parser = add_cylc_rose_options(parser)
parser.add_cylc_rose_options()
return parser


Expand Down
3 changes: 1 addition & 2 deletions cylc/flow/scripts/validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
CylcOptionParser as COP,
Options
)
from cylc.flow.scripts.install import add_cylc_rose_options
from cylc.flow.workflow_files import parse_reg


Expand Down Expand Up @@ -73,7 +72,7 @@ def get_option_parser():
default="live", dest="run_mode",
choices=['live', 'dummy', 'dummy-local', 'simulation'])

parser = add_cylc_rose_options(parser)
parser.add_cylc_rose_options()

parser.set_defaults(is_validate=True)

Expand Down

0 comments on commit 742f70a

Please sign in to comment.