diff --git a/bilby/core/sampler/__init__.py b/bilby/core/sampler/__init__.py index 7ec87be2335142070891dd3276b4c64dbbec5b3e..2e5fa1404f45bc2218a5276e7cb9a52449c07c69 100644 --- a/bilby/core/sampler/__init__.py +++ b/bilby/core/sampler/__init__.py @@ -4,7 +4,7 @@ import datetime from collections import OrderedDict import bilby -from ..utils import command_line_args, logger +from ..utils import command_line_args, logger, loaded_modules_dict from ..prior import PriorDict, DeltaFunction from .base_sampler import Sampler, SamplingMarginalisedParameterError @@ -141,6 +141,7 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', if meta_data is None: meta_data = dict() meta_data['likelihood'] = likelihood.meta_data + meta_data["loaded_modules"] = loaded_modules_dict() if command_line_args.bilby_zero_likelihood_mode: from bilby.core.likelihood import ZeroLikelihood diff --git a/bilby/core/utils.py b/bilby/core/utils.py index 0fb1aa4afe39a5289ecb702fa8cd56b25fc17c77..03380552db7c64e6c9395021be6dbc73038bd891 100644 --- a/bilby/core/utils.py +++ b/bilby/core/utils.py @@ -4,6 +4,7 @@ from distutils.spawn import find_executable import logging import os import shutil +import sys from math import fmod import argparse import inspect @@ -1269,6 +1270,15 @@ def get_function_path(func): return func +def loaded_modules_dict(): + module_names = sys.modules.keys() + vdict = {} + for key in module_names: + if "." not in key: + vdict[key] = str(getattr(sys.modules[key], "__version__", "N/A")) + return vdict + + class IllegalDurationAndSamplingFrequencyException(Exception): pass