diff options
Diffstat (limited to 'server/continuedev/models/generate_json_schema.py')
-rw-r--r-- | server/continuedev/models/generate_json_schema.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/server/continuedev/models/generate_json_schema.py b/server/continuedev/models/generate_json_schema.py new file mode 100644 index 00000000..88a1db68 --- /dev/null +++ b/server/continuedev/models/generate_json_schema.py @@ -0,0 +1,54 @@ +import os + +from pydantic import schema_json_of + +from ..core.config import ContinueConfig +from ..core.context import ContextItem +from ..core.main import FullState, History, HistoryNode, SessionInfo +from ..core.models import Models +from ..libs.llm.base import LLM +from .filesystem import FileEdit, RangeInFile +from .filesystem_edit import FileEditWithFullContents +from .main import Position, Range, Traceback, TracebackFrame + +MODELS_TO_GENERATE = ( + [Position, Range, Traceback, TracebackFrame] + + [RangeInFile, FileEdit] + + [FileEditWithFullContents] + + [History, HistoryNode, FullState, SessionInfo] + + [ContinueConfig] + + [ContextItem] + + [Models] + + [LLM] +) + +RENAMES = {"ExampleClass": "RenamedName"} + +SCHEMA_DIR = "../schema/json" + + +def clear_schemas(): + for filename in os.listdir(SCHEMA_DIR): + if filename.endswith(".json"): + os.remove(os.path.join(SCHEMA_DIR, filename)) + + +def main(): + clear_schemas() + for model in MODELS_TO_GENERATE: + title = RENAMES.get(model.__name__, model.__name__) + try: + json = schema_json_of(model, indent=2, title=title) + except Exception as e: + import traceback + + print(f"Failed to generate json schema for {title}: {e}") + traceback.print_exc() + continue # pun intended + + with open(f"{SCHEMA_DIR}/{title}.json", "w") as f: + f.write(json) + + +if __name__ == "__main__": + main() |