Skip to content

Commit

Permalink
Move creation of ArgumentParser to caller
Browse files Browse the repository at this point in the history
  • Loading branch information
erikjohnston committed Jul 15, 2019
1 parent 37b524f commit fdefb9e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
4 changes: 3 additions & 1 deletion synapse/app/admin_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import argparse
import logging
import sys

Expand Down Expand Up @@ -105,7 +106,8 @@ def export_data_command(hs, user_id, directory):


def start(config_options):
parser = HomeServerConfig.create_argument_parser("Synapse Admin Command")
parser = argparse.ArgumentParser(description="Synapse Admin Command")
HomeServerConfig.add_arguments_to_parser(parser)

subparser = parser.add_subparsers(
title="Admin Commands",
Expand Down
15 changes: 5 additions & 10 deletions synapse/config/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,27 +231,24 @@ def load_config(cls, description, argv):
Returns: Config object.
"""
config_parser = cls.create_argument_parser(description)
config_parser = argparse.ArgumentParser(description=description)
cls.add_arguments_to_parser(config_parser)
obj, _ = cls.load_config_with_parser(config_parser, argv)

return obj

@classmethod
def create_argument_parser(cls, description):
"""Create an ArgumentParser instance with all the config flags.
def add_arguments_to_parser(cls, config_parser):
"""Adds all the config flags to an ArgumentParser.
Doesn't support config-file-generation: used by the worker apps.
Used for workers where we want to add extra flags/subcommands.
Args:
description (str): App description
Returns:
ArgumentParser
config_parser (ArgumentParser): App description
"""

config_parser = argparse.ArgumentParser(description=description)
config_parser.add_argument(
"-c",
"--config-path",
Expand All @@ -273,8 +270,6 @@ def create_argument_parser(cls, description):
# `add_arguments` should be side effect free so this is probably fine.
cls.invoke_all_static("add_arguments", config_parser)

return config_parser

@classmethod
def load_config_with_parser(cls, config_parser, argv):
"""Parse the commandline and config files with the given parser
Expand Down

0 comments on commit fdefb9e

Please sign in to comment.