akhaliq/anycoder
3.3k
1"""2Example usage of the ProjectImporter module3 4This script demonstrates how to use the standalone project importer5to fetch code from various sources without Gradio.6"""7 8import sys9import os10 11# Add parent directory to path12sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))13 14from project_importer import ProjectImporter15 16 17def example_import_space():18 """Example: Import a HuggingFace Space"""19 print("=" * 80)20 print("Example 1: Importing a HuggingFace Space")21 print("=" * 80)22 23 importer = ProjectImporter()24 result = importer.import_space("akhaliq", "anycoder")25 26 print(f"Status: {result['status']}")27 print(f"Message: {result['message']}")28 print(f"Language: {result['language']}")29 print(f"Files: {len(result['metadata'].get('files', []))}")30 print(f"\nFirst 500 characters of code:\n{result['code'][:500]}...")31 print()32 33 34def example_import_model():35 """Example: Import a HuggingFace Model"""36 print("=" * 80)37 print("Example 2: Importing a HuggingFace Model")38 print("=" * 80)39 40 importer = ProjectImporter()41 result = importer.import_model("meta-llama/Llama-3.2-1B-Instruct")42 43 print(f"Status: {result['status']}")44 print(f"Message: {result['message']}")45 print(f"Language: {result['language']}")46 print(f"Pipeline Tag: {result['metadata'].get('pipeline_tag')}")47 print(f"\nCode:\n{result['code']}")48 print()49 50 51def example_import_github():52 """Example: Import a GitHub Repository"""53 print("=" * 80)54 print("Example 3: Importing from GitHub")55 print("=" * 80)56 57 importer = ProjectImporter()58 result = importer.import_github_repo("huggingface", "transformers")59 60 print(f"Status: {result['status']}")61 print(f"Message: {result['message']}")62 print(f"Language: {result['language']}")63 print(f"\nFirst 500 characters of code:\n{result['code'][:500]}...")64 print()65 66 67def example_import_from_url():68 """Example: Import from any URL"""69 print("=" * 80)70 print("Example 4: Import from URL (automatic detection)")71 print("=" * 80)72 73 importer = ProjectImporter()74 75 # Test different URL types76 urls = [77 "https://huggingface.co/spaces/akhaliq/anycoder",78 "https://huggingface.co/meta-llama/Llama-3.2-1B-Instruct",79 "https://github.com/huggingface/diffusers"80 ]81 82 for url in urls:83 print(f"\nImporting: {url}")84 result = importer.import_from_url(url)85 print(f" Status: {result['status']}")86 print(f" Language: {result['language']}")87 print(f" Message: {result['message']}")88 89 90def example_save_to_file():91 """Example: Save imported code to a file"""92 print("=" * 80)93 print("Example 5: Save imported code to file")94 print("=" * 80)95 96 importer = ProjectImporter()97 result = importer.import_model("stabilityai/stable-diffusion-3.5-large")98 99 if result['status'] == 'success':100 output_file = "imported_sd3.5_code.py"101 with open(output_file, 'w', encoding='utf-8') as f:102 f.write(result['code'])103 print(f"Code saved to: {output_file}")104 else:105 print(f"Failed to import: {result['message']}")106 print()107 108 109def example_with_metadata():110 """Example: Working with metadata"""111 print("=" * 80)112 print("Example 6: Working with metadata")113 print("=" * 80)114 115 importer = ProjectImporter()116 result = importer.import_model("Qwen/Qwen2.5-Coder-32B-Instruct")117 118 print(f"Status: {result['status']}")119 print(f"Message: {result['message']}")120 print(f"\nMetadata:")121 for key, value in result['metadata'].items():122 print(f" {key}: {value}")123 124 # Check if there are alternatives125 if result['metadata'].get('has_alternatives'):126 print("\nโจ This model has multiple code options available!")127 print(" - Inference code (serverless)")128 print(" - Local code (transformers/diffusers)")129 print()130 131 132def main():133 """Run all examples"""134 print("\n๐ ProjectImporter Examples\n")135 136 try:137 example_import_space()138 except Exception as e:139 print(f"โ Space import failed: {e}\n")140 141 try:142 example_import_model()143 except Exception as e:144 print(f"โ Model import failed: {e}\n")145 146 try:147 example_import_github()148 except Exception as e:149 print(f"โ GitHub import failed: {e}\n")150 151 try:152 example_import_from_url()153 except Exception as e:154 print(f"โ URL import failed: {e}\n")155 156 try:157 example_with_metadata()158 except Exception as e:159 print(f"โ Metadata example failed: {e}\n")160 161 print("\nโ
Examples completed!")162 163 164if __name__ == "__main__":165 main()166 167 