1010
1111from codegen .gscli .generate .runner_imports import _generate_runner_imports
1212from codegen .gscli .generate .utils import LanguageType , generate_builtins_file
13- from codegen .sdk .code_generation .doc_utils .canonicals import get_canonical_codemod_class_mdx , get_canonical_codemod_classes
13+ from codegen .sdk .code_generation .codegen_sdk_codebase import get_codegen_sdk_codebase
14+ from codegen .sdk .code_generation .doc_utils .generate_docs_json import generate_docs_json
1415from codegen .sdk .code_generation .doc_utils .skills import format_all_skills
15- from codegen .sdk .code_generation .doc_utils .utils import get_all_classes_to_document
16- from codegen .sdk .code_generation .mdx_docs_generation import render_mdx_for_codebase_page , render_mdx_page_for_class
17- from codegen .sdk .code_generation .prompts .api_docs import get_codegen_sdk_codebase
18- from codegen .sdk .core .codebase import PyCodebaseType
19- from codegen .sdk .enums import ProgrammingLanguage
16+ from codegen .sdk .code_generation .mdx_docs_generation import render_mdx_page_for_class
2017from codegen .sdk .python import PyClass
2118from codegen .sdk .skills .core .utils import get_all_skills , get_guide_skills_dict
2219
@@ -110,18 +107,17 @@ def generate_docs(docs_dir: str) -> None:
110107
111108 This will generate docs using the codebase locally, including any unstaged changes
112109 """
113- codebase = get_codegen_sdk_codebase ()
114- generate_codegen_sdk_docs (docs_dir , codebase )
110+ generate_codegen_sdk_docs (docs_dir )
115111 # generate_canonical_codemod_docs(docs_dir, codebase)
116- generate_skills_docs (docs_dir )
117- generate_guides (docs_dir )
112+ # generate_skills_docs(docs_dir)
113+ # generate_guides(docs_dir)
118114
119115
120116def generate_guides (docs_dir : str ):
121117 """Updates code snippets in the guides with the latest skill implementations"""
122118 guide_skills = get_guide_skills_dict ()
123119 for guide_relative_path in guide_skills :
124- guide_file_path = os .path .join (docs_dir , "codebase-sdk " , str (guide_relative_path ) + ".mdx" )
120+ guide_file_path = os .path .join (docs_dir , "api-reference " , str (guide_relative_path ) + ".mdx" )
125121
126122 with open (guide_file_path ) as f :
127123 file_content = f .read ()
@@ -143,23 +139,20 @@ def get_snippet_pattern(target_name: str) -> str:
143139 return pattern
144140
145141
146- def generate_codegen_sdk_docs (docs_dir : str , codebase : PyCodebaseType ) -> None :
142+ def generate_codegen_sdk_docs (docs_dir : str ) -> None :
147143 """Generate the docs for the codegen_sdk API and update the mint.json"""
148144 print (colored ("Generating codegen_sdk docs" , "green" ))
149145
150146 # Generate docs page for codebase api and write to the file system
151- mdx_page = render_mdx_for_codebase_page (codebase )
152- os .makedirs (os .path .join (docs_dir , "codebase-sdk" ), exist_ok = True )
153- file_path = os .path .join (docs_dir , "codebase-sdk" , "codebase.mdx" )
154- with open (file_path , "w" ) as f :
155- f .write (mdx_page )
147+ codebase = get_codegen_sdk_codebase ()
148+ gs_docs = generate_docs_json (codebase , "HEAD" )
156149
157150 # Prepare the directories for the new docs
158151 # Delete existing documentation directories if they exist
159152 # So we remove generated docs for any classes which no longer exist
160- python_docs_dir = os .path .join (docs_dir , "codebase-sdk " , "python" )
161- typescript_docs_dir = os .path .join (docs_dir , "codebase-sdk " , "typescript" )
162- core_dir = os .path .join (docs_dir , "codebase-sdk " , "core" )
153+ python_docs_dir = os .path .join (docs_dir , "api-reference " , "python" )
154+ typescript_docs_dir = os .path .join (docs_dir , "api-reference " , "typescript" )
155+ core_dir = os .path .join (docs_dir , "api-reference " , "core" )
163156
164157 for dir_path in [python_docs_dir , typescript_docs_dir , core_dir ]:
165158 if os .path .exists (dir_path ):
@@ -170,27 +163,27 @@ def generate_codegen_sdk_docs(docs_dir: str, codebase: PyCodebaseType) -> None:
170163 os .makedirs (core_dir , exist_ok = True )
171164
172165 # Generate the docs pages for core, python, and typescript classes
173- classes = get_all_classes_to_document (codebase )
174166
175167 # Write the generated docs to the file system, splitting between core, python, and typescript
176168 # keep track of where we put each one so we can update the mint.json
177169 python_set = set ()
178170 typescript_set = set ()
179171 core_set = set ()
180172 # TODO replace this with new `get_mdx_for_class` function
181- for class_name , class_obj in classes .items ():
173+ for class_doc in gs_docs .classes :
174+ class_name = class_doc .title
182175 lower_class_name = class_name .lower ()
183176 if lower_class_name .startswith ("py" ):
184177 file_path = os .path .join (python_docs_dir , f"{ class_name } .mdx" )
185- python_set .add (f"codebase-sdk /python/{ class_name } " )
178+ python_set .add (f"api-reference /python/{ class_name } " )
186179 elif lower_class_name .startswith (("ts" , "jsx" )):
187180 file_path = os .path .join (typescript_docs_dir , f"{ class_name } .mdx" )
188- typescript_set .add (f"codebase-sdk /typescript/{ class_name } " )
181+ typescript_set .add (f"api-reference /typescript/{ class_name } " )
189182 else :
190183 file_path = os .path .join (core_dir , f"{ class_name } .mdx" )
191- core_set .add (f"codebase-sdk /core/{ class_name } " )
184+ core_set .add (f"api-reference /core/{ class_name } " )
192185
193- mdx_page = render_mdx_page_for_class (cls = class_obj , codebase = codebase )
186+ mdx_page = render_mdx_page_for_class (cls_doc = class_doc )
194187 with open (file_path , "w" ) as f :
195188 f .write (mdx_page )
196189 print (colored ("Finished writing new .mdx files" , "green" ))
@@ -201,7 +194,7 @@ def generate_codegen_sdk_docs(docs_dir: str, codebase: PyCodebaseType) -> None:
201194 mint_data = json .load (mint_file )
202195
203196 # Find the "Codebase SDK" group where we want to add the pages
204- codebase_sdk_group = next (group for group in mint_data ["navigation" ] if group ["group" ] == "GraphSitter Reference" )
197+ codebase_sdk_group = next (group for group in mint_data ["navigation" ] if group ["group" ] == "API Reference" )
205198
206199 # Update the pages for each language group
207200 for group in codebase_sdk_group ["pages" ]:
@@ -243,26 +236,3 @@ def filter_class(cls: PyClass):
243236 if decorator .name == "skill_impl" and "external=True" in decorator .source :
244237 return True
245238 return False
246-
247-
248- def generate_canonical_codemod_docs (docs_dir : str , codebase : PyCodebaseType ) -> None :
249- """Generates docs for all canonical codemods"""
250- print (colored ("Generating canonical codemod docs" , "green" ))
251-
252- print (colored ("> Grabbing canonicals" , "green" ))
253- classes = get_canonical_codemod_classes (codebase , language = ProgrammingLanguage .PYTHON )
254-
255- # =====[ Write the canonical docs to the file system ]=====
256- examples_dir = os .path .join (docs_dir , "codebase-sdk" , "examples" )
257- print (colored (f"> Generating docs in { examples_dir } " , "green" ))
258- docstrings = {k : get_canonical_codemod_class_mdx (v ) for k , v in classes .items ()}
259- for k , v in docstrings .items ():
260- file_path = os .path .join (examples_dir , f"{ k } .mdx" )
261- with open (file_path , "w" ) as f :
262- f .write (v )
263-
264- print (colored ("> Writing to disk" , "green" ))
265-
266-
267- if __name__ == "__main__" :
268- generate_skills_docs ("docs" )
0 commit comments