Ejemplo n.º 1
0
def write_classlist_to_file(current_class: Class):
    """
    Write classlist data to disk as JSON dict, according to Class object's
    Class.json_dict and Class.to_json_str methods.

    CAUTION: conversion to JSON will convert int/float keys to strings, and
    keep them as strings when loading.

    :param current_class: Class object
    :return: Path
    """
    class_name = current_class.name
    data_filename = class_name + CLASSLIST_DATA_FILE_TYPE
    classlist_data_path = CLASSLIST_DATA_PATH.joinpath(class_name,
                                                       data_filename)

    json_class_data = current_class.to_json_str()

    # Make data path if it doesn't exist.
    classlist_data_path.parent.mkdir(parents=True, exist_ok=True)

    with open(classlist_data_path, 'w') as classlist_file:
        classlist_file.write(json_class_data)

    return classlist_data_path
Ejemplo n.º 2
0
    def _write_classlist_to_file(self, current_class: Class) -> None:
        """
        Write classlist data to disk as JSON dict, according to Class object's
        Class.json_dict and Class.to_json_str methods.

        CAUTION: conversion to JSON will convert int/float keys to strings, and
        keep them as strings when loading.

        :param current_class: Class object
        :return: None
        """
        class_id = current_class.id
        data_filename = class_id + self.class_data_file_type
        classlist_data_path = self.class_data_path.joinpath(class_id, data_filename)

        json_class_data = current_class.to_json_str()

        # Make data path if it doesn't exist.
        classlist_data_path.parent.mkdir(parents=True, exist_ok=True)

        with open(classlist_data_path, 'w') as classlist_file:
            classlist_file.write(json_class_data)