Commit 4ed676c4 authored by David Hendriks's avatar David Hendriks
Browse files

fixed several functions

parent 6de75cde
Loading
Loading
Loading
Loading
+36 −11
Original line number Diff line number Diff line
@@ -195,7 +195,7 @@ def parse_binary_c_version_info(version_info_string):
            "mass_g": mass_g,
            "mass_amu": mass_amu,
        }
    version_info_dict["isotopes"] = isotope_dict
    version_info_dict["isotopes"] = isotope_dict if isotope_dict else None

    ##########################
    # Argpairs:
@@ -212,7 +212,7 @@ def parse_binary_c_version_info(version_info_string):
        else:
            argpair_dict[split_info[0]][split_info[1]] = split_info[2]

    version_info_dict["argpairs"] = argpair_dict
    version_info_dict["argpairs"] = argpair_dict if argpair_dict else None

    ##########################
    # ensembles:
@@ -225,7 +225,7 @@ def parse_binary_c_version_info(version_info_string):
        split_info = el.split("Ensemble ")[-1].split(" is ")
        if len(split_info) > 1:
            ensemble_dict[int(split_info[0])] = split_info[-1]
    version_info_dict["ensembles"] = ensemble_dict
    version_info_dict["ensembles"] = ensemble_dict if ensemble_dict else None

    ##########################
    # macros:
@@ -254,7 +254,7 @@ def parse_binary_c_version_info(version_info_string):
            macros_dict[param_name] = param_type_dict[param_type](param_value)
        except ValueError:
            macros_dict[param_name] = str(param_value)
    version_info_dict["macros"] = macros_dict
    version_info_dict["macros"] = macros_dict if macros_dict else None

    ##########################
    # Elements:
@@ -283,7 +283,7 @@ def parse_binary_c_version_info(version_info_string):
            "amt_isotopes": len(isotopes),
            "isotopes": isotopes,
        }
    version_info_dict["elements"] = version_info_dict
    version_info_dict["elements"] = elements_dict if elements_dict else None

    ##########################
    # dt_limits:
@@ -300,7 +300,7 @@ def parse_binary_c_version_info(version_info_string):
            "value": float(split_info[-1]),
        }

    version_info_dict["dt_limits"] = dt_limits_dict
    version_info_dict["dt_limits"] = dt_limits_dict if dt_limits_dict else None

    ##########################
    # Nucleosynthesis sources:
@@ -314,7 +314,7 @@ def parse_binary_c_version_info(version_info_string):
        split_info = el.split("Nucleosynthesis source")[-1].strip().split(" is ")
        nucsyn_sources_dict[int(split_info[0])] = split_info[-1]

    version_info_dict["nucleosynthesis_sources"] = nucsyn_sources_dict
    version_info_dict["nucleosynthesis_sources"] = nucsyn_sources_dict if nucsyn_sources_dict else None

    ##########################
    # miscellaneous:
@@ -329,16 +329,29 @@ def parse_binary_c_version_info(version_info_string):

    git_branch = [el for el in cleaned if el.startswith("git branch")]
    misc_dict["git_branch"] = git_branch[0].split("git branch ")[-1].replace('"', "")
    cleaned = cleaned-set(git_branch)

    build = [el for el in cleaned if el.startswith("Build")]
    misc_dict["build"] = build[0].split("Build: ")[-1].replace('"', "")
    cleaned = cleaned-set(build)

    email = [el for el in cleaned if el.startswith("Email")]
    misc_dict["email"] = email[0].split("Email ")[-1].split(",")
    cleaned = cleaned-set(email)

    misc_dict["uncaught"] = cleaned
    other_items = set([el for el in cleaned if ' is ' in el])
    cleaned = cleaned - other_items

    version_info_dict["miscellaneous"] = misc_dict
    for el in other_items:
        split = el.split(' is ')
        key = split[0].strip()
        val = ' is '.join(split[1:]).strip()
        misc_dict[key] = val


    misc_dict["uncaught"] = "\n".join(cleaned)

    version_info_dict["miscellaneous"] = misc_dict if misc_dict else None
    return version_info_dict


@@ -957,6 +970,18 @@ class binarycDecoder(json.JSONDecoder):
            return o


class BinaryCEncoder(json.JSONEncoder):
    def default(self, o):
        print('inarycoij')
        try:
            str_repr = str(o)
        except TypeError:
            pass
        else:
            return str_repr
        # Let the base class default method raise the TypeError
        return JSONEncoder.default(self, o)

def binaryc_json_serializer(obj):
    """
    Custom serializer for binary_c to use when functions are present in the dictionary
@@ -967,9 +992,9 @@ def binaryc_json_serializer(obj):

    if inspect.isfunction(obj):
        return str(obj)
    else:
        return obj


def handle_ensemble_string_to_json(raw_output):
    """
    Function that deals with the raw output of the ensemble and