import os from datasets.download.download_config import DownloadConfig from datasets.utils.file_utils import cached_path from datasets.utils.hub import hf_hub_url def get_readme_path(dataset_name): readme_path = hf_hub_url(dataset_name, "README.md") return cached_path(readme_path, download_config=DownloadConfig()) def update_readme(dataset_name, subreddit, latest_date, new_rows): path = get_readme_path(dataset_name=dataset_name) readme_text = f""" ## Dataset Overview The goal is to have an open dataset of `{subreddit}` submissions. Im leveraging PRAW and the reddit API to get downloads. There is a limit of 1000 in an API call and limited search functionality, so this is run every day to get new submissions. ## Update Frequency The dataset is updated daily with the most recent day being `{latest_date}`where we added `{new_rows}` new rows. ## Licensing [Reddit Licensing terms](https://www.redditinc.com/policies/data-api-terms) as accessed on October 25: > The Content created with or submitted to our Services by Users (“User Content”) is owned by Users and not by Reddit. Subject to your complete and ongoing compliance with the Data API Terms, Reddit grants you a non-exclusive, non-transferable, non-sublicensable, and revocable license to copy and display the User Content using the Data API solely as necessary to develop, deploy, distribute, and run your App to your App Users. You may not modify the User Content except to format it for such display. You will comply with any requirements or restrictions imposed on usage of User Content by their respective owners, which may include "all rights reserved" notices, Creative Commons licenses, or other terms and conditions that may be agreed upon between you and the owners. Except as expressly permitted by this section, no other rights or licenses are granted or implied, including any right to use User Content for other purposes, such as for training a machine learning or AI model, without the express permission of rightsholders in the applicable User Content My take is that you cant use this data for *training* without getting permission. """ append_readme(path=path, readme_text=readme_text) return readme_text def append_readme(path, readme_text): generated_below_marker = "--- Generated Below ---" with open(path, "r") as file: content = file.read() if generated_below_marker in content: index = content.index(generated_below_marker) + len(generated_below_marker) content = content[:index] + "\n\n" + readme_text else: content += "\n\n" + generated_below_marker + "\n\n" + readme_text + "\n" with open(path, "w") as file: file.write(content)