From 3090c28840e4ab5bccf130b0fc7a242ada82e3ab Mon Sep 17 00:00:00 2001 From: Andre Anjos <andre.dos.anjos@gmail.com> Date: Fri, 1 Mar 2024 10:00:17 +0100 Subject: [PATCH] [scripts.utils] Also track versions of dependencies on meta information saved with train and predict scripts --- src/mednet/scripts/utils.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/mednet/scripts/utils.py b/src/mednet/scripts/utils.py index a4e5432e..3f007dc0 100644 --- a/src/mednet/scripts/utils.py +++ b/src/mednet/scripts/utils.py @@ -81,7 +81,8 @@ def device_properties( def execution_metadata() -> dict[str, int | float | str]: - """Produce metadata concerning the running script, in the form of a dictionary. + """Produce metadata concerning the running script, in the form of a + dictionary. This function returns potentially useful metadata concerning program execution. It contains a certain number of preset variables. @@ -112,16 +113,20 @@ def execution_metadata() -> dict[str, int | float | str]: else: args.append(k) + # current date time, in ISO8610 format + datetime = __import__("datetime").datetime.now().astimezone().isoformat() + + # collects dependence information + package_name = __package__.split(".")[0] + requires = importlib.metadata.requires(package_name) or [] + dependence_names = [k.split()[0] for k in requires] + dependencies = {k: importlib.metadata.version(k) for k in dependence_names} + data = { + "datetime": datetime, "package-name": __package__.split(".")[0], - "package-version": importlib.metadata.version( - __package__.split(".")[0] - ), - "date": __import__("datetime") - .datetime.now() - .astimezone() - .replace(microsecond=0) - .isoformat(), + "package-version": importlib.metadata.version(package_name), + "dependencies": dependencies, "user": __import__("getpass").getuser(), "conda-env": os.environ.get("CONDA_DEFAULT_ENV", ""), "path": os.path.realpath(os.curdir), -- GitLab