From b3ee514ace65bbac9a9af72db8a0cb9fe0d8c949 Mon Sep 17 00:00:00 2001 From: Patrick Date: Fri, 13 Jun 2025 07:08:03 +0200 Subject: [PATCH 1/6] created badge+ --- assets/datafast-badge-web.png | Bin 0 -> 8561 bytes assets/datafast-badge.svg | 1 + 2 files changed, 1 insertion(+) create mode 100644 assets/datafast-badge-web.png create mode 100644 assets/datafast-badge.svg diff --git a/assets/datafast-badge-web.png b/assets/datafast-badge-web.png new file mode 100644 index 0000000000000000000000000000000000000000..dac5f200f135d5b483129ef0aba1366149f39981 GIT binary patch literal 8561 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 X=&9-u3H$u#PZ4r&l%>mF8~gtcS@=42 literal 0 HcmV?d00001 diff --git a/assets/datafast-badge.svg b/assets/datafast-badge.svg new file mode 100644 index 0000000..8563be5 --- /dev/null +++ b/assets/datafast-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file From 33f054984700d08f9a06f89d6e02e4f80416f136 Mon Sep 17 00:00:00 2001 From: Patrick Date: Fri, 13 Jun 2025 07:22:23 +0200 Subject: [PATCH 2/6] template for card --- datafast/datafast_card_template.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 datafast/datafast_card_template.md diff --git a/datafast/datafast_card_template.md b/datafast/datafast_card_template.md new file mode 100644 index 0000000..e620d6f --- /dev/null +++ b/datafast/datafast_card_template.md @@ -0,0 +1,11 @@ +--- +{{ card_data }} +{{ config_data }} +--- +[Built with Datafast](https://github.com/patrickfleith/datafast) + +# {{ pretty_name }} + +This dataset was generated using Datafast (v{{ datafast_version }}), an open-source package to generate high-quality and diverse synthetic text datasets for LLMs. + From 6d91c6faaa98a2c8ddaa215e08e8add685a952e4 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sat, 14 Jun 2025 12:42:58 +0200 Subject: [PATCH 3/6] Utils to generate the card --- datafast/card_utils.py | 178 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 datafast/card_utils.py diff --git a/datafast/card_utils.py b/datafast/card_utils.py new file mode 100644 index 0000000..f280509 --- /dev/null +++ b/datafast/card_utils.py @@ -0,0 +1,178 @@ +import os +import re +from pathlib import Path +from huggingface_hub import HfApi, DatasetCard, DatasetCardData +from huggingface_hub.file_download import hf_hub_download + +def extract_readme_metadata(repo_id: str, token: str | None = None) -> str: + """Extracts the metadata from the README.md file of the dataset repository. + We have to download the previous README.md file in the repo, extract the metadata from it. + Args: + repo_id: The ID of the repository to push to, from the `push_to_hub` method. + token: The token to authenticate with the Hugging Face Hub, from the `push_to_hub` method. + Returns: + The metadata extracted from the README.md file of the dataset repository as a str. + """ + try: + readme_path = Path( + hf_hub_download(repo_id, "README.md", repo_type="dataset", token=token) + ) + # Extract the content between the '---' markers + metadata_match = re.findall(r"---\n(.*?)\n---", readme_path.read_text(), re.DOTALL) + + if not metadata_match: + print("No YAML metadata found in the README.md") + return "" + + return metadata_match[0] + + except Exception as e: + print(f"Failed to extract metadata from README.md: {e}") + return "" + + +def extract_dataset_info(repo_id: str, token: str | None = None) -> str: + """ + Extract dataset_info section from README metadata. + + Args: + repo_id: The dataset repository ID + token: Optional HuggingFace token for authentication + + Returns: + The dataset_info section as a string, or empty string if not found + """ + readme_metadata = extract_readme_metadata(repo_id=repo_id, token=token) + if not readme_metadata: + return "" + + section_prefix = "dataset_info:" + if section_prefix not in readme_metadata: + return "" + + try: + # Extract the part after `dataset_info:` prefix + config_data = section_prefix + readme_metadata.split(section_prefix)[1] + return config_data + except IndexError: + print("Failed to extract dataset_info section from metadata") + return "" + + +def _generate_and_upload_dataset_card( + repo_id: str, + token: str | None = None, + template_path: str | None = None +) -> None: + """ + Internal implementation that generates and uploads a dataset card to Hugging Face Hub. + + This is the core implementation function called by the public upload_dataset_card() function. + It handles the actual card generation and uploading without performing configuration checks. + + The dataset card includes: + 1. Pipeline subset descriptions based on enabled stages + 2. Full sanitized configuration for reproducibility + 3. YourBench version and other metadata + 4. Preserved dataset_info from the existing card for proper configuration display + + Args: + template_path: Optional custom template path + """ + + try: + # Load template + if not template_path: + # Try to find template in utils directory + current_dir = os.path.dirname(__file__) + template_path = os.path.join(current_dir, "datafast_card_template.md") + + if not os.path.exists(template_path): + print(f"Template file not found: {template_path}") + return + + with open(template_path, "r", encoding="utf-8") as f: + template_str = f.read() + + # Get HF token + if not token: + token = os.getenv("HF_TOKEN", None) + + # Extract dataset_info section from existing README if available + config_data = extract_dataset_info(repo_id=repo_id, token=token) + print(f"Extracted dataset_info section, length: {len(config_data) if config_data else 0} characters") + + dataset_name = repo_id.split("/")[-1] + pretty_name = dataset_name.replace("-", " ").replace("_", " ").title() + + card_data_kwargs = { + "pretty_name": pretty_name + } + + # Create DatasetCardData with our metadata + card_data = DatasetCardData(**card_data_kwargs) + + # Get YourBench version + from importlib.metadata import version, PackageNotFoundError + + try: + version_str = version("datafast") + except PackageNotFoundError: + # Fallback for development installs + version_str = "dev" + + # Prepare template variables + template_vars = { + "pretty_name": card_data.pretty_name, + "datafast_version": version_str, + "config_data": config_data, # Use the extracted dataset_info section + } + + print("Rendering dataset card from template") + print(f"Template variables: {list(template_vars.keys())}") + + # Render card with our template and variables + card = DatasetCard.from_template( + card_data=card_data, + template_str=template_str, + **template_vars + ) + + print("Template rendered successfully") + print(f"Rendered card content length: {len(str(card))} characters") + + # Push to hub + print(f"Pushing dataset card to hub: {repo_id}") + card.push_to_hub(repo_id, token=token) + + print(f"Dataset card successfully uploaded to: https://huggingface.co/datasets/{repo_id}") + + except Exception as e: + print(f"Failed to upload dataset card: {e}") + print("Full traceback:") + + +def upload_dataset_card(repo_id: str, token: str | None = None, template_path: str | None = None) -> None: + """ + Public interface to generate and upload a dataset card to Hugging Face Hub. + + This function performs configuration checks (like offline mode) + and then delegates to the internal _generate_and_upload_dataset_card() implementation. + It should be called at the end of the pipeline when all subsets are available. + + Args: + repo_id: The ID of the repository to push to + token: The token to authenticate with the Hugging Face Hub + template_path: Optional custom template path + """ + try: + + print(f"Uploading dataset card to repository: {repo_id}") + _generate_and_upload_dataset_card( + repo_id=repo_id, + token=token, + template_path=template_path + ) + + except Exception as e: + print(f"Error uploading dataset card: {e}") \ No newline at end of file From d9be6943e58f2be3aeabafdee135ac98b08d3e8f Mon Sep 17 00:00:00 2001 From: Patrick Date: Sat, 14 Jun 2025 12:43:50 +0200 Subject: [PATCH 4/6] Update push_to_hub to upload card by default --- datafast/datasets.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/datafast/datasets.py b/datafast/datasets.py index 06f04c9..925a245 100644 --- a/datafast/datasets.py +++ b/datafast/datasets.py @@ -116,12 +116,13 @@ def to_jsonl(self, filepath: str, rows: list[Any] = None, append: bool = False): def push_to_hub( self, repo_id: str, - token: Optional[str] = None, + token: str | None = None, private: bool = False, - commit_message: Optional[str] = None, - train_size: Optional[float] = None, - seed: Optional[int] = None, - shuffle: Optional[bool] = True, + commit_message: str | None = None, + train_size: float | None = None, + seed: int | None = None, + shuffle: bool | None = True, + upload_card: bool = True, ) -> str: """Push the dataset to Hugging Face Hub. @@ -134,6 +135,7 @@ def push_to_hub( (e.g., 0.8 for 80% train) seed: Optional random seed for train_test_split shuffle: Optional boolean to shuffle the data for train_test_split + upload_card: Whether to automatically upload a dataset card after pushing Returns: str: URL of the dataset on the Hub @@ -204,6 +206,16 @@ def push_to_hub( ) raise + # Upload dataset card if requested + if upload_card: + try: + from datafast.card_utils import upload_dataset_card + upload_dataset_card(repo_id=repo_id, token=token) + print("Dataset card uploaded successfully") + except Exception as e: + print(f"Warning: Failed to upload dataset card: {e}") + # Continue even if card upload fails + return f"https://huggingface.co/datasets/{repo_id}" From e5e55980447325c9fdb35945a7e87d89a994ee08 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sat, 14 Jun 2025 12:44:30 +0200 Subject: [PATCH 5/6] Fixed documentation --- datafast/card_utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datafast/card_utils.py b/datafast/card_utils.py index f280509..b5df9c5 100644 --- a/datafast/card_utils.py +++ b/datafast/card_utils.py @@ -73,7 +73,7 @@ def _generate_and_upload_dataset_card( The dataset card includes: 1. Pipeline subset descriptions based on enabled stages 2. Full sanitized configuration for reproducibility - 3. YourBench version and other metadata + 3. Datafast version and other metadata 4. Preserved dataset_info from the existing card for proper configuration display Args: @@ -112,7 +112,7 @@ def _generate_and_upload_dataset_card( # Create DatasetCardData with our metadata card_data = DatasetCardData(**card_data_kwargs) - # Get YourBench version + # Get datafast version from importlib.metadata import version, PackageNotFoundError try: From 739e90760659815e35a2ce80f74560fb88947d17 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sat, 14 Jun 2025 12:46:22 +0200 Subject: [PATCH 6/6] simplifying quickstart example --- datafast/examples/quickstart_example.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datafast/examples/quickstart_example.py b/datafast/examples/quickstart_example.py index 76d5671..6cff340 100644 --- a/datafast/examples/quickstart_example.py +++ b/datafast/examples/quickstart_example.py @@ -7,7 +7,7 @@ classes=[ {"name": "positive", "description": "Text expressing positive emotions or approval"}, {"name": "negative", "description": "Text expressing negative emotions or criticism"}, - {"name": "neutral", "description": "Text with neutral emotions or indifference"} + # {"name": "neutral", "description": "Text with neutral emotions or indifference"} ], num_samples_per_prompt=3, output_file="outdoor_activities_sentiments.jsonl", @@ -34,7 +34,7 @@ from datafast.llms import OpenAIProvider, AnthropicProvider, GeminiProvider, OllamaProvider providers = [ - OpenAIProvider(model_id="gpt-4.1-mini-2025-04-14"), + OpenAIProvider(model_id="gpt-4.1-nano"), # AnthropicProvider(model_id="claude-3-5-haiku-latest"), # GeminiProvider(model_id="gemini-2.0-flash"), # OllamaProvider(model_id="gemma3:12b")