From a4e3f2ff7109c167962af624f0cf8ffa244ea3c9 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Wed, 24 Nov 2021 13:01:13 +0000 Subject: [PATCH 1/2] Fix main for Python2 --- softioc/__main__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/softioc/__main__.py b/softioc/__main__.py index a091af43..43c86809 100644 --- a/softioc/__main__.py +++ b/softioc/__main__.py @@ -3,7 +3,7 @@ from argparse import ArgumentParser import subprocess -from softioc import __version__ +from . import __version__ def main(args=None): @@ -14,7 +14,7 @@ def main(args=None): "arg", help="Any arguments to pass to the script", nargs="*") parsed_args = parser.parse_args(args) # Execute as subprocess - cmd = [sys.executable, parsed_args.script, *parsed_args.arg] + cmd = [sys.executable, parsed_args.script] + parsed_args.arg subprocess.Popen(cmd).communicate() From 5c39790e5137f2ce4254dcf3d3dd075a50ad19ee Mon Sep 17 00:00:00 2001 From: AlexWells Date: Thu, 25 Nov 2021 10:33:07 +0000 Subject: [PATCH 2/2] Make script optional+pass everything to subprocess This restores previous behaviour of the pythonSoftIOC executable, which would give you a Python command line interpreter. --- softioc/__main__.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/softioc/__main__.py b/softioc/__main__.py index 43c86809..b7c0069a 100644 --- a/softioc/__main__.py +++ b/softioc/__main__.py @@ -9,12 +9,17 @@ def main(args=None): parser = ArgumentParser() parser.add_argument("--version", action="version", version=__version__) - parser.add_argument("script", help="The python script to run") + parser.add_argument( + "script", help="The python script to run", nargs="?", default=None) parser.add_argument( "arg", help="Any arguments to pass to the script", nargs="*") - parsed_args = parser.parse_args(args) - # Execute as subprocess - cmd = [sys.executable, parsed_args.script] + parsed_args.arg + parsed_args, unknown = parser.parse_known_args(args) + + # Execute as subprocess. + cmd = [sys.executable] + parsed_args.arg + unknown + if parsed_args.script: + cmd.insert(1, parsed_args.script) + subprocess.Popen(cmd).communicate()