44
55[ ← README] ( ../README.md ) | [ ← CLI Reference] ( 03-cli-reference.md ) | [ Output Formats →] ( 05-output-formats.md )
66
7+ ## Package Structure
8+
9+ Code2Logic is organized into subpackages for cleaner imports:
10+
11+ | Package | Contents |
12+ | ---------| ----------|
13+ | ` code2logic.core ` | Models, Analyzer, Errors |
14+ | ` code2logic.formats ` | All generators (YAML, JSON, TOON, etc.) |
15+ | ` code2logic.llm ` | LLM clients and intent extraction |
16+ | ` code2logic.tools ` | Benchmark, Review, Refactor |
17+ | ` code2logic.integrations ` | MCP server |
18+
19+ ``` python
20+ # Traditional imports (still work)
21+ from code2logic import analyze_project, YAMLGenerator
22+
23+ # Organized imports
24+ from code2logic.core import ProjectInfo, ProjectAnalyzer
25+ from code2logic.formats import TOONGenerator, LogicMLGenerator
26+ from code2logic.llm import get_client
27+ from code2logic.tools import run_benchmark
28+ ```
29+
730## Core Functions
831
932### analyze_project
@@ -88,10 +111,20 @@ class ClassInfo:
88111
89112## Generators
90113
114+ All generators are available from ` code2logic.formats ` :
115+
116+ ``` python
117+ from code2logic.formats import (
118+ MarkdownGenerator, JSONGenerator, YAMLGenerator,
119+ CSVGenerator, CompactGenerator, GherkinGenerator,
120+ TOONGenerator, LogicMLGenerator
121+ )
122+ ```
123+
91124### MarkdownGenerator
92125
93126``` python
94- from code2logic.generators import MarkdownGenerator
127+ from code2logic.formats import MarkdownGenerator
95128
96129gen = MarkdownGenerator()
97130output = gen.generate(project, detail = ' standard' )
@@ -101,7 +134,7 @@ output = gen.generate(project, detail='standard')
101134### JSONGenerator
102135
103136``` python
104- from code2logic.generators import JSONGenerator
137+ from code2logic.formats import JSONGenerator
105138
106139gen = JSONGenerator()
107140output = gen.generate(project, flat = False , detail = ' standard' )
@@ -111,16 +144,36 @@ output = gen.generate(project, flat=False, detail='standard')
111144### YAMLGenerator
112145
113146``` python
114- from code2logic.generators import YAMLGenerator
147+ from code2logic.formats import YAMLGenerator
115148
116149gen = YAMLGenerator()
117150output = gen.generate(project, flat = False , detail = ' standard' )
118151```
119152
153+ ### TOONGenerator
154+
155+ ``` python
156+ from code2logic.formats import TOONGenerator
157+
158+ gen = TOONGenerator(use_tabs = False )
159+ output = gen.generate(project, detail = ' standard' )
160+ # TOON: Token-Oriented Object Notation (6x smaller than JSON)
161+ ```
162+
163+ ### LogicMLGenerator
164+
165+ ``` python
166+ from code2logic.formats import LogicMLGenerator
167+
168+ gen = LogicMLGenerator()
169+ spec = gen.generate(project)
170+ output = spec.content # LogicMLSpec has .content attribute
171+ ```
172+
120173### CSVGenerator
121174
122175``` python
123- from code2logic.generators import CSVGenerator
176+ from code2logic.formats import CSVGenerator
124177
125178gen = CSVGenerator()
126179output = gen.generate(project, detail = ' standard' )
@@ -129,7 +182,7 @@ output = gen.generate(project, detail='standard')
129182### CompactGenerator
130183
131184``` python
132- from code2logic.generators import CompactGenerator
185+ from code2logic.formats import CompactGenerator
133186
134187gen = CompactGenerator()
135188output = gen.generate(project)
@@ -139,7 +192,7 @@ output = gen.generate(project)
139192### GherkinGenerator
140193
141194``` python
142- from code2logic.gherkin import GherkinGenerator
195+ from code2logic.formats import GherkinGenerator
143196
144197gen = GherkinGenerator()
145198output = gen.generate(project, detail = ' standard' )
@@ -157,12 +210,33 @@ output = gen.generate(project)
157210
158211## LLM Clients
159212
160- ### OllamaClient
213+ All LLM clients are available from ` code2logic.llm ` :
161214
162215``` python
163- from code2logic.llm import OllamaClient
216+ from code2logic.llm import (
217+ get_client, BaseLLMClient,
218+ OpenRouterClient, OllamaLocalClient, LiteLLMClient
219+ )
220+ ```
221+
222+ ### get_client (Recommended)
223+
224+ ``` python
225+ from code2logic.llm import get_client
226+
227+ # Auto-detect best available client
228+ client = get_client()
229+
230+ # Or specify provider
231+ client = get_client(provider = ' ollama' , model = ' qwen2.5-coder:7b' )
232+ ```
233+
234+ ### OllamaLocalClient
235+
236+ ``` python
237+ from code2logic.llm import OllamaLocalClient
164238
165- client = OllamaClient (
239+ client = OllamaLocalClient (
166240 model = " qwen2.5-coder:7b" ,
167241 host = " http://localhost:11434"
168242)
0 commit comments