| | """ |
| | Example usage of the ProjectImporter module |
| | |
| | This script demonstrates how to use the standalone project importer |
| | to fetch code from various sources without Gradio. |
| | """ |
| |
|
| | import sys |
| | import os |
| |
|
| | |
| | sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
| |
|
| | from project_importer import ProjectImporter |
| |
|
| |
|
| | def example_import_space(): |
| | """Example: Import a HuggingFace Space""" |
| | print("=" * 80) |
| | print("Example 1: Importing a HuggingFace Space") |
| | print("=" * 80) |
| | |
| | importer = ProjectImporter() |
| | result = importer.import_space("akhaliq", "anycoder") |
| | |
| | print(f"Status: {result['status']}") |
| | print(f"Message: {result['message']}") |
| | print(f"Language: {result['language']}") |
| | print(f"Files: {len(result['metadata'].get('files', []))}") |
| | print(f"\nFirst 500 characters of code:\n{result['code'][:500]}...") |
| | print() |
| |
|
| |
|
| | def example_import_model(): |
| | """Example: Import a HuggingFace Model""" |
| | print("=" * 80) |
| | print("Example 2: Importing a HuggingFace Model") |
| | print("=" * 80) |
| | |
| | importer = ProjectImporter() |
| | result = importer.import_model("meta-llama/Llama-3.2-1B-Instruct") |
| | |
| | print(f"Status: {result['status']}") |
| | print(f"Message: {result['message']}") |
| | print(f"Language: {result['language']}") |
| | print(f"Pipeline Tag: {result['metadata'].get('pipeline_tag')}") |
| | print(f"\nCode:\n{result['code']}") |
| | print() |
| |
|
| |
|
| | def example_import_github(): |
| | """Example: Import a GitHub Repository""" |
| | print("=" * 80) |
| | print("Example 3: Importing from GitHub") |
| | print("=" * 80) |
| | |
| | importer = ProjectImporter() |
| | result = importer.import_github_repo("huggingface", "transformers") |
| | |
| | print(f"Status: {result['status']}") |
| | print(f"Message: {result['message']}") |
| | print(f"Language: {result['language']}") |
| | print(f"\nFirst 500 characters of code:\n{result['code'][:500]}...") |
| | print() |
| |
|
| |
|
| | def example_import_from_url(): |
| | """Example: Import from any URL""" |
| | print("=" * 80) |
| | print("Example 4: Import from URL (automatic detection)") |
| | print("=" * 80) |
| | |
| | importer = ProjectImporter() |
| | |
| | |
| | urls = [ |
| | "https://huggingface.co/spaces/akhaliq/anycoder", |
| | "https://huggingface.co/meta-llama/Llama-3.2-1B-Instruct", |
| | "https://github.com/huggingface/diffusers" |
| | ] |
| | |
| | for url in urls: |
| | print(f"\nImporting: {url}") |
| | result = importer.import_from_url(url) |
| | print(f" Status: {result['status']}") |
| | print(f" Language: {result['language']}") |
| | print(f" Message: {result['message']}") |
| |
|
| |
|
| | def example_save_to_file(): |
| | """Example: Save imported code to a file""" |
| | print("=" * 80) |
| | print("Example 5: Save imported code to file") |
| | print("=" * 80) |
| | |
| | importer = ProjectImporter() |
| | result = importer.import_model("stabilityai/stable-diffusion-3.5-large") |
| | |
| | if result['status'] == 'success': |
| | output_file = "imported_sd3.5_code.py" |
| | with open(output_file, 'w', encoding='utf-8') as f: |
| | f.write(result['code']) |
| | print(f"Code saved to: {output_file}") |
| | else: |
| | print(f"Failed to import: {result['message']}") |
| | print() |
| |
|
| |
|
| | def example_with_metadata(): |
| | """Example: Working with metadata""" |
| | print("=" * 80) |
| | print("Example 6: Working with metadata") |
| | print("=" * 80) |
| | |
| | importer = ProjectImporter() |
| | result = importer.import_model("Qwen/Qwen2.5-Coder-32B-Instruct") |
| | |
| | print(f"Status: {result['status']}") |
| | print(f"Message: {result['message']}") |
| | print(f"\nMetadata:") |
| | for key, value in result['metadata'].items(): |
| | print(f" {key}: {value}") |
| | |
| | |
| | if result['metadata'].get('has_alternatives'): |
| | print("\n⨠This model has multiple code options available!") |
| | print(" - Inference code (serverless)") |
| | print(" - Local code (transformers/diffusers)") |
| | print() |
| |
|
| |
|
| | def main(): |
| | """Run all examples""" |
| | print("\nπ ProjectImporter Examples\n") |
| | |
| | try: |
| | example_import_space() |
| | except Exception as e: |
| | print(f"β Space import failed: {e}\n") |
| | |
| | try: |
| | example_import_model() |
| | except Exception as e: |
| | print(f"β Model import failed: {e}\n") |
| | |
| | try: |
| | example_import_github() |
| | except Exception as e: |
| | print(f"β GitHub import failed: {e}\n") |
| | |
| | try: |
| | example_import_from_url() |
| | except Exception as e: |
| | print(f"β URL import failed: {e}\n") |
| | |
| | try: |
| | example_with_metadata() |
| | except Exception as e: |
| | print(f"β Metadata example failed: {e}\n") |
| | |
| | print("\nβ
Examples completed!") |
| |
|
| |
|
| | if __name__ == "__main__": |
| | main() |
| |
|
| |
|