This will save the data to a filename
        :param clean_data: func call that will clean the data before saving it
        :param raw:        obj of the return object from request
        :param trash:      bool if true puts the file in the Trash folder
        :param filename:   str of the file to save to.
        :return:           str of the full path of the file

def save(self, filename=None, clean_data=False, raw=False, trash=False):
        """
        This will save the data to a filename
        :param clean_data: func call that will clean the data before saving it
        :param raw:        obj of the return object from request
        :param trash:      bool if true puts the file in the Trash folder
        :param filename:   str of the file to save to.
        :return:           str of the full path of the file
        """
        full_path = get_filename(filename or self.filename or self.name, trash)
        data = raw and self.raw_data or self.data

        if clean_data:
            data = self.clean_data(data)

        with open(full_path, 'w') as fn:
            if filename.endswith('.json'):
                fn.write(json.dumps(data, indent=2, separators=(',', ': ')))
            else:
                fn.write(str(data))
        self.filename = full_path
        return full_path