From 451ee92e0af60484aa4c6d7fc2caa67d50cc443a Mon Sep 17 00:00:00 2001 From: Clair Mould <86794332+clmould@users.noreply.github.com> Date: Tue, 5 Nov 2024 11:44:27 +0000 Subject: [PATCH 1/2] allow process version to be printed to terminal --- process/__init__.py | 3 +++ process/main.py | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/process/__init__.py b/process/__init__.py index e69de29bb2..da0ebfd4be 100644 --- a/process/__init__.py +++ b/process/__init__.py @@ -0,0 +1,3 @@ +from importlib.metadata import version + +__version__ = version("process") diff --git a/process/main.py b/process/main.py index 67e5bb77cb..284bea9566 100644 --- a/process/main.py +++ b/process/main.py @@ -74,6 +74,7 @@ from process.impurity_radiation import initialise_imprad from process.caller import write_output_files +import process from pathlib import Path import os @@ -191,6 +192,11 @@ def parse_args(self, args): action="store_true", help="Produce a filled json from --mfile arg in working dir", ) + parser.add_argument( + "--version", + action="store_true", + help="Print the version of PROCESS to the terminal", + ) # If args is not None, then parse the supplied arguments. This is likely # to come from the test suite when testing command-line arguments; the @@ -202,6 +208,9 @@ def parse_args(self, args): def run_mode(self): """Determine how to run Process.""" + if self.args.version: + print(process.__version__) + return # Store run object: useful for testing if self.args.varyiterparams: self.run = VaryRun(self.args.varyiterparamsconfig, self.args.solver) From 616b521cab84421f2f39ebf0632d9e36b7ade5af Mon Sep 17 00:00:00 2001 From: Clair Mould <86794332+clmould@users.noreply.github.com> Date: Tue, 5 Nov 2024 13:15:10 +0000 Subject: [PATCH 2/2] add version monkeypatch to test_run_mode --- tests/unit/test_main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unit/test_main.py b/tests/unit/test_main.py index 1b775f8070..858886cf67 100644 --- a/tests/unit/test_main.py +++ b/tests/unit/test_main.py @@ -101,6 +101,7 @@ def test_run_mode(process_obj, monkeypatch): # Mock the args attributes for --varyiterparams and --varyiterparamsconfig monkeypatch.setattr(process_obj, "args", argparse.Namespace(), raising=False) monkeypatch.setattr(process_obj.args, "varyiterparams", True, raising=False) + monkeypatch.setattr(process_obj.args, "version", False, raising=False) monkeypatch.setattr( process_obj.args, "varyiterparamsconfig", "file.conf", raising=False )