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) 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 )