1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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()
|