diff --git a/src/mednet/scripts/utils.py b/src/mednet/scripts/utils.py index a4e5432e229c69e5d8dbd5224a63ca90b96aa4b2..3f007dc0e8c1d6a97d8b03507e70cd37437a70df 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),