summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2019-07-15 13:43:25 +0100
committerErik Johnston <erik@matrix.org>2019-07-15 14:09:35 +0100
commitfdefb9e29a7c28e5b218fc8d9745a2ec58bc3d27 (patch)
tree897e196ec367fa598aee1521addffad431478c14
parentFix up comments (diff)
downloadsynapse-fdefb9e29a7c28e5b218fc8d9745a2ec58bc3d27.tar.xz
Move creation of ArgumentParser to caller
-rw-r--r--synapse/app/admin_cmd.py4
-rw-r--r--synapse/config/_base.py15
2 files changed, 8 insertions, 11 deletions
diff --git a/synapse/app/admin_cmd.py b/synapse/app/admin_cmd.py
index e618a62432..c4d752593a 100644
--- a/synapse/app/admin_cmd.py
+++ b/synapse/app/admin_cmd.py
@@ -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
 
@@ -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",
diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index 74a7980ebe..8c3acff03e 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -231,27 +231,24 @@ class Config(object):
 
         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",
@@ -273,8 +270,6 @@ class Config(object):
         # `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