From 32f263d09348bced4400f65baadcff3b8c4d84a7 Mon Sep 17 00:00:00 2001 From: Dibri Nsofor Date: Mon, 4 Nov 2024 14:02:33 -0700 Subject: [PATCH 1/8] added flag for plugin args Signed-off-by: Dibri Nsofor --- mypy/main.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mypy/main.py b/mypy/main.py index c83ac180817b6..d8a600662d3dc 100644 --- a/mypy/main.py +++ b/mypy/main.py @@ -1138,6 +1138,12 @@ def add_invertible_flag( action="store_true", help="Skip cache internal consistency checks based on mtime", ) + incremental_group.add_argument( + "--plugins", + nargs='*', + dest="special-opts:cli_plugins", + help="Include user defined plugins during Mypy's type analysis", + ) internals_group = parser.add_argument_group( title="Advanced options", description="Debug and customize mypy internals." @@ -1499,6 +1505,10 @@ def set_strict_flags() -> None: special_opts = argparse.Namespace() parser.parse_args(args, SplitNamespace(options, special_opts, "special-opts:")) + # Parse extra plugins passed via cli args + if special_opts.cli_plugins: + options.plugins.extend(special_opts.cli_plugins) + # The python_version is either the default, which can be overridden via a config file, # or stored in special_opts and is passed via the command line. options.python_version = special_opts.python_version or options.python_version From 5f37fbd2f370fd34023da1dcfed05df7559d8d21 Mon Sep 17 00:00:00 2001 From: Dibri Nsofor Date: Mon, 4 Nov 2024 14:12:54 -0700 Subject: [PATCH 2/8] reformat string literal Signed-off-by: Dibri Nsofor --- mypy/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mypy/main.py b/mypy/main.py index d8a600662d3dc..bdd4eddc71140 100644 --- a/mypy/main.py +++ b/mypy/main.py @@ -1140,7 +1140,7 @@ def add_invertible_flag( ) incremental_group.add_argument( "--plugins", - nargs='*', + nargs="*", dest="special-opts:cli_plugins", help="Include user defined plugins during Mypy's type analysis", ) From 368bb704ea2f52d88b9375dfe5cea5aff4eed870 Mon Sep 17 00:00:00 2001 From: Dibri Nsofor Date: Mon, 4 Nov 2024 14:36:56 -0700 Subject: [PATCH 3/8] updated docs Signed-off-by: Dibri Nsofor --- docs/source/command_line.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/source/command_line.rst b/docs/source/command_line.rst index cbd72a217d29e..a711305720ecc 100644 --- a/docs/source/command_line.rst +++ b/docs/source/command_line.rst @@ -1082,6 +1082,11 @@ in developing or debugging mypy internals. This flag will invoke the Python debugger when mypy encounters a fatal error. +.. option:: --plugins {MODULE|PLUGIN_FILE} ... + + This flag acts as a supplementary way to pass (a list of) plugins to customize + Mypy's type checking approach. See :ref:`extending-mypy` for more details. + .. option:: --show-traceback, --tb If set, this flag will display a full traceback when mypy From d8ff91831c41ff20248448668b60537b3f2896f2 Mon Sep 17 00:00:00 2001 From: Dibri Nsofor Date: Mon, 4 Nov 2024 14:42:18 -0700 Subject: [PATCH 4/8] moved logic to internals Signed-off-by: Dibri Nsofor --- mypy/main.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mypy/main.py b/mypy/main.py index bdd4eddc71140..bab1dbe919259 100644 --- a/mypy/main.py +++ b/mypy/main.py @@ -1138,17 +1138,17 @@ def add_invertible_flag( action="store_true", help="Skip cache internal consistency checks based on mtime", ) - incremental_group.add_argument( - "--plugins", - nargs="*", - dest="special-opts:cli_plugins", - help="Include user defined plugins during Mypy's type analysis", - ) internals_group = parser.add_argument_group( title="Advanced options", description="Debug and customize mypy internals." ) internals_group.add_argument("--pdb", action="store_true", help="Invoke pdb on fatal error") + internals_group.add_argument( + "--plugins", + nargs="*", + dest="special-opts:cli_plugins", + help="Include user defined plugins during Mypy's type analysis", + ) internals_group.add_argument( "--show-traceback", "--tb", action="store_true", help="Show traceback on fatal error" ) From ee5114e08cc27723a4ff154d9fb176f83780122c Mon Sep 17 00:00:00 2001 From: Dibri Nsofor Date: Mon, 4 Nov 2024 16:01:34 -0700 Subject: [PATCH 5/8] renamed flag, updated docs, rewrote logic -- replaced nargs with str opt Signed-off-by: Dibri Nsofor --- docs/source/command_line.rst | 2 +- mypy/main.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/source/command_line.rst b/docs/source/command_line.rst index a711305720ecc..3c7e06ca17c33 100644 --- a/docs/source/command_line.rst +++ b/docs/source/command_line.rst @@ -1082,7 +1082,7 @@ in developing or debugging mypy internals. This flag will invoke the Python debugger when mypy encounters a fatal error. -.. option:: --plugins {MODULE|PLUGIN_FILE} ... +.. option:: --extend-plugins {MODULE|PLUGIN_FILE} ... This flag acts as a supplementary way to pass (a list of) plugins to customize Mypy's type checking approach. See :ref:`extending-mypy` for more details. diff --git a/mypy/main.py b/mypy/main.py index bab1dbe919259..a2c3a83ac284f 100644 --- a/mypy/main.py +++ b/mypy/main.py @@ -1144,8 +1144,9 @@ def add_invertible_flag( ) internals_group.add_argument("--pdb", action="store_true", help="Invoke pdb on fatal error") internals_group.add_argument( - "--plugins", - nargs="*", + "--extend-plugins", "--ep", + type=lambda s: [item.strip() for item in s.split(',')], + metavar="{MODULE|PLUGIN_FILE}", dest="special-opts:cli_plugins", help="Include user defined plugins during Mypy's type analysis", ) @@ -1508,6 +1509,7 @@ def set_strict_flags() -> None: # Parse extra plugins passed via cli args if special_opts.cli_plugins: options.plugins.extend(special_opts.cli_plugins) + print(special_opts.cli_plugins) # The python_version is either the default, which can be overridden via a config file, # or stored in special_opts and is passed via the command line. From 0c8a764187f6e9578cef3adf7175956391ec5630 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 21:43:47 +0000 Subject: [PATCH 6/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/source/command_line.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/command_line.rst b/docs/source/command_line.rst index 3c7e06ca17c33..e06d5db935704 100644 --- a/docs/source/command_line.rst +++ b/docs/source/command_line.rst @@ -1084,7 +1084,7 @@ in developing or debugging mypy internals. .. option:: --extend-plugins {MODULE|PLUGIN_FILE} ... - This flag acts as a supplementary way to pass (a list of) plugins to customize + This flag acts as a supplementary way to pass (a list of) plugins to customize Mypy's type checking approach. See :ref:`extending-mypy` for more details. .. option:: --show-traceback, --tb From 43a00d0b154bcbb86ee420b5744d13043447f9ac Mon Sep 17 00:00:00 2001 From: Dibri Nsofor Date: Mon, 4 Nov 2024 16:10:48 -0700 Subject: [PATCH 7/8] shorter flag Signed-off-by: Dibri Nsofor --- docs/source/command_line.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/command_line.rst b/docs/source/command_line.rst index e06d5db935704..76f403000ce36 100644 --- a/docs/source/command_line.rst +++ b/docs/source/command_line.rst @@ -1082,7 +1082,7 @@ in developing or debugging mypy internals. This flag will invoke the Python debugger when mypy encounters a fatal error. -.. option:: --extend-plugins {MODULE|PLUGIN_FILE} ... +.. option:: --extend-plugins, --ep {MODULE|PLUGIN_FILE} ... This flag acts as a supplementary way to pass (a list of) plugins to customize Mypy's type checking approach. See :ref:`extending-mypy` for more details. From 05447a39f0582d436c19b900fc0653d76952787c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 23:11:34 +0000 Subject: [PATCH 8/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- mypy/main.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mypy/main.py b/mypy/main.py index a2c3a83ac284f..3ed00c47abf28 100644 --- a/mypy/main.py +++ b/mypy/main.py @@ -1144,8 +1144,9 @@ def add_invertible_flag( ) internals_group.add_argument("--pdb", action="store_true", help="Invoke pdb on fatal error") internals_group.add_argument( - "--extend-plugins", "--ep", - type=lambda s: [item.strip() for item in s.split(',')], + "--extend-plugins", + "--ep", + type=lambda s: [item.strip() for item in s.split(",")], metavar="{MODULE|PLUGIN_FILE}", dest="special-opts:cli_plugins", help="Include user defined plugins during Mypy's type analysis",