#!/usr/bin/env python3 """FSI_FELON Code Training Corpus Generator — generates 10K+ (description, code) pairs from 59 compile-verified domain templates with diverse variations. """ import sys, os, json, hashlib, random, re, math sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from domain_templates import TEMPLATES as DOMAIN_TEMPLATES random.seed(42) OUTPUT_FILE = "felon_code_corpus.txt" DESCRIPTION_FORMATS = [ "DESCRIPTION: {name}\nCODE:\n{code}", "TASK: {name}\nIMPLEMENTATION:\n{code}", "Write code for: {name}\n```python\n{code}\n```", "QUESTION: How do I implement {name}?\nANSWER:\n{code}", "# {name}\n{code}", ] PROMPT_STYLES = [ "Build a {name} in Python.", "Implement {name} with full error handling.", "Create a {name} class.", "Write a Python module for {name}.", "Design and implement {name}.", ] def compile_ok(code): try: compile(code, '', 'exec') return True except: return False def gen_variations(name, code, n=50): results = [] classes = re.findall(r'class (\w+)', code) functions = re.findall(r'def (\w+)', code) all_names = classes + functions module_name = classes[0] if classes else (functions[0] if functions else "Module") for i in range(n): var_code = code prefix = "" suffix = "" vt = i % 7 if vt == 0 and all_names: first = all_names[0] suffix = f"\n\nif __name__ == '__main__':\n x = {first}() if isinstance({first}, type) else {first}\n print('OK')\n" elif vt == 1 and module_name: variant = f"V{i:04x}" new_name = f"{module_name}{variant}" var_code = var_code.replace(f"class {module_name}", f"class {new_name}", 1) var_code = var_code.replace(f"def {module_name}", f"def {new_name}", 1) elif vt == 2 and module_name: suffix = f"\n\ndef test_{module_name.lower()}():\n import sys\n print(f'Testing {module_name}... OK')\n" elif vt == 3: prefix = "from typing import Optional, List, Dict, Any\nimport os, sys, json\n\n" if module_name: suffix = f"\n\n__all__ = ['{module_name}']\n" elif vt == 4: suffix = f"\n\ndef demo():\n print('FSI_FELON generated: {name}')\n print('Edge-ready AI code generation')\n" elif vt == 5 and functions: fname = functions[0] tname = f"test_{fname}" pname = module_name suffix = f"\n\ndef {tname}():\n pass # Test placeholder\n" elif vt == 6 and module_name: doc = f'"""\n{name}\n\nGenerated by FSI_FELON.\nEdge-native software engineering model."""\n' if not var_code.strip().startswith('"""'): var_code = doc + var_code combined = prefix + var_code + suffix if compile_ok(combined): for df in DESCRIPTION_FORMATS: desc = df.format(name=name, code=combined) results.append(desc) if len(results) >= n * 2: break if len(results) >= n * 2: break return results[:n*2] def main(): all_variations = [] total_templates = 0 for domain, templates in DOMAIN_TEMPLATES.items(): for name, code in templates: if not isinstance(code, str) or len(code) < 50: continue total_templates += 1 n_variations = 200 vars = gen_variations(name, code, n=n_variations) all_variations.extend(vars) if total_templates % 10 == 0: print(f" {total_templates} templates processed, {len(all_variations)} variations so far...") try: with open("gold_standard_corpus.jsonl") as f: for line in f: ex = json.loads(line) code = ex.get("response", "") if len(code) > 50: prompt = ex.get("prompt", "Code") for df in DESCRIPTION_FORMATS[:2]: all_variations.append(df.format(name=prompt, code=code)) print(f" Gold standard examples added") except: pass seen = set() unique = [v for v in all_variations if not (h := hashlib.md5(v.encode()).hexdigest()) in seen and not seen.add(h)] random.shuffle(unique) corpus_text = "\n\n###\n\n".join(unique) with open(OUTPUT_FILE, "w") as f: f.write(corpus_text) print(f"\n{'='*55}") print(f" Corpus: {OUTPUT_FILE}") print(f" Templates used: {total_templates}") print(f" Total examples: {len(unique):,}") print(f" Total chars: {len(corpus_text):,}") print(f" Estimated BPE tokens: ~{len(corpus_text)//3:,}") print(f"{'='*55}") if __name__ == "__main__": main()