def add_file(self, path, title, download_url, write_data=True, ext=None, license=None, copyright_holder=None, **node_data):
        """ add_file: Creates file in csv and writes file to zip
            Args:
                path: (str) where in zip to write file
                title: (str) content's title
                download_url: (str) url or local path to download from
                write_data: (boolean) indicates whether to add as a csv entry (optional)
                ext: (str) extension to use for file
                license (str): content's license
                copyright_holder (str): holder of content's license (required except for PUBLIC_DOMAIN)
                license_description (str): description of content's license (optional)
                source_id: (str) content's original id (optional)
                description: (str) description of content (optional)
                author (str): who created the content (optional)
                language (str): language of content (optional)
                thumbnail (str):  path to thumbnail in zip (optional)
            Returns: path to file in zip
        """
        if write_data:
            assert license, "Files must have a license"
            copyright_holder = None if not copyright_holder or copyright_holder.strip() == '' else copyright_holder
            assert license in NO_COPYRIGHT_HOLDER_REQUIRED or copyright_holder, "Licenses must have a copyright holder if they are not public domain"

        self._parse_path(path)
        if not ext:
            _name, ext = os.path.splitext(download_url or "")
            ext = ext.lower()  # normalize to lowercase extensions inside zip archive
        filepath = "{}/{}{}".format(path, title, ext)
        if download_url and filepath:
            self._write_to_zip(filepath, read(download_url))
            if write_data:
                self._commit(filepath, title, license=license, copyright_holder=copyright_holder, **node_data)
            return filepath
add_file: Creates file in csv and writes file to zip
            Args:
                path: (str) where in zip to write file
                title: (str) content's title
                download_url: (str) url or local path to download from
                write_data: (boolean) indicates whether to add as a csv entry (optional)
                ext: (str) extension to use for file
                license (str): content's license
                copyright_holder (str): holder of content's license (required except for PUBLIC_DOMAIN)
                license_description (str): description of content's license (optional)
                source_id: (str) content's original id (optional)
                description: (str) description of content (optional)
                author (str): who created the content (optional)
                language (str): language of content (optional)
                thumbnail (str):  path to thumbnail in zip (optional)
            Returns: path to file in zip