Skip to content

Commit ef2ecc5

Browse files
refactoring
1 parent a30088c commit ef2ecc5

File tree

3 files changed

+161
-0
lines changed

3 files changed

+161
-0
lines changed

lolm/project.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/usr/bin/env bash
2+
code2logic ./ -f toon --compact --function-logic --with-schema -o project.toon

lolm/project.toon

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# lolm | 12f 1990L | python:12
2+
# Keys: M=modules, D=details, i=imports, c=classes, f=functions, m=methods
3+
M[12]:
4+
config.py,240
5+
cli.py,231
6+
manager.py,322
7+
__init__.py,81
8+
__main__.py,10
9+
provider.py,121
10+
clients.py,228
11+
examples/03_code_generation.py,86
12+
examples/01_quickstart.py,60
13+
examples/02_configuration.py,88
14+
tests/__init__.py,1
15+
tests/test_basic.py,51
16+
D:
17+
config.py:
18+
i: json,os,yaml,dataclasses.{dataclass,field},pathlib.Path,typing.{Any,Dict,List,Optional}
19+
e: RECOMMENDED_MODELS,DEFAULT_MODELS,DEFAULT_PROVIDER_PRIORITIES,LLMConfig,get_config_dir,get_config_path,load_config,save_config
20+
LLMConfig: to_dict(0),from_dict(1) # LLM configuration container.
21+
get_config_dir()->Path
22+
get_config_path()->Path
23+
load_config()->LLMConfig
24+
save_config(config:LLMConfig)->None
25+
load_env_file(search_paths:Optional[List[Path]]=None)->None
26+
load_litellm_config(search_paths:Optional[List[Path]]=None)->Dict[str, Any]
27+
save_litellm_config(config:Dict[str;Any];path:Optional[Path]=None)->None
28+
get_provider_model(provider:str)->str
29+
cli.py:
30+
i: argparse,os,sys,config,pathlib.Path
31+
e: cmd_status,cmd_set_provider,cmd_set_model,cmd_key_set,cmd_key_show,cmd_models,cmd_test,cmd_config_show
32+
cmd_status(args)->int
33+
cmd_set_provider(args)->int
34+
cmd_set_model(args)->int
35+
cmd_key_set(args)->int
36+
cmd_key_show(args)->int
37+
cmd_models(args)->int
38+
cmd_test(args)->int
39+
cmd_config_show(args)->int
40+
manager.py:
41+
i: os,config,typing.{Dict,List,Optional}
42+
e: ProviderInfo,LLMManager,get_client,list_available_providers
43+
ProviderInfo: __init__(5) # Information about a configured provider.
44+
LLMManager: __init__(1),is_available(0),is_ready(0),primary_provider(0),providers(0) # LLM Manager with multi-provider support.
45+
get_client(provider:str=None;model:str=None)->BaseLLMClient
46+
list_available_providers()->List[str]
47+
provider.py:
48+
i: abc.{ABC,abstractmethod},dataclasses.{dataclass,field},enum.Enum,typing.{Any,Dict,List,Literal,Optional}
49+
e: LLMProviderStatus,GenerateOptions,LLMResponse,LLMModelInfo,BaseLLMClient,LLMProvider
50+
LLMProviderStatus: # Provider availability status.
51+
GenerateOptions: to_messages(0) # Options for LLM generation.
52+
LLMResponse: # Response from LLM generation.
53+
LLMModelInfo: # Information about an available model.
54+
BaseLLMClient: generate(3),is_available(0),chat(2) # Abstract base class for synchronous L...
55+
clients.py:
56+
i: os,time,config.{DEFAULT_MODELS,RECOMMENDED_MODELS,get_provider_model,load_env_file},provider.{BaseLLMClient,LLMModelInfo},typing.{List,Optional}
57+
e: OpenRouterClient,OllamaClient,LiteLLMClient,GroqClient,TogetherClient
58+
OpenRouterClient: __init__(2),generate(3),is_available(0),list_recommended_models(0) # OpenRouter API client for cloud LLM a...
59+
OllamaClient: __init__(2),generate(3),is_available(0),list_models(0),list_recommended_models(0) # Ollama client for local LLM inference.
60+
LiteLLMClient: __init__(1),generate(3),is_available(0) # LiteLLM client for universal LLM access.
61+
GroqClient: __init__(2),generate(3),is_available(0) # Groq API client for fast inference.
62+
TogetherClient: __init__(2),generate(3),is_available(0) # Together AI client.
63+
examples/03_code_generation.py:
64+
i: lolm.{LLMManager,get_client}
65+
e: SYSTEM_PROMPT,generate_function,generate_class,explain_code,review_code
66+
generate_function(description:str)->str
67+
generate_class(description:str)->str
68+
explain_code(code:str)->str
69+
review_code(code:str)->str
70+
examples/01_quickstart.py:
71+
i: lolm.{LLMManager,get_client}
72+
e: example_simple_client,example_specific_provider,example_manager,example_fallback
73+
example_simple_client()->None
74+
example_specific_provider()->None
75+
example_manager()->None
76+
example_fallback()->None
77+
examples/02_configuration.py:
78+
i: os,lolm,pathlib.Path
79+
e: show_defaults,show_recommended_models,show_current_config,example_modify_config,show_environment_config
80+
show_defaults()->None
81+
show_recommended_models()->None
82+
show_current_config()->None
83+
example_modify_config()->None
84+
show_environment_config()->None
85+
tests/test_basic.py:
86+
i: pytest
87+
e: test_import_lolm,test_import_config,test_import_clients,test_config_defaults,test_manager_init,test_recommended_models
88+
test_import_lolm()->None
89+
test_import_config()->None
90+
test_import_clients()->None
91+
test_config_defaults()->None
92+
test_manager_init()->None
93+
test_recommended_models()->None

lolm/project.toon-schema.json

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"title": "Code2Logic TOON Schema",
4+
"description": "Schema for Code2Logic TOON (Token-Oriented Object Notation) format",
5+
"type": "object",
6+
"properties": {
7+
"M": {
8+
"type": "array",
9+
"description": "Modules as [path,lines] pairs",
10+
"items": {
11+
"type": "array",
12+
"items": [
13+
{
14+
"type": "string",
15+
"description": "Module path"
16+
},
17+
{
18+
"type": "integer",
19+
"description": "Lines of code"
20+
}
21+
],
22+
"minItems": 2,
23+
"maxItems": 2
24+
}
25+
},
26+
"D": {
27+
"type": "object",
28+
"description": "Module details with compact keys",
29+
"patternProperties": {
30+
".*": {
31+
"type": "object",
32+
"properties": {
33+
"i": {
34+
"type": "array",
35+
"items": {
36+
"type": "string"
37+
},
38+
"description": "Compact imports (grouped)"
39+
},
40+
"e": {
41+
"type": "array",
42+
"items": {
43+
"type": "string"
44+
},
45+
"description": "Exports"
46+
},
47+
"c": {
48+
"type": "array",
49+
"items": {
50+
"type": "string"
51+
},
52+
"description": "Classes with inline method counts"
53+
},
54+
"f": {
55+
"type": "array",
56+
"items": {
57+
"type": "string"
58+
},
59+
"description": "Functions with signatures"
60+
}
61+
}
62+
}
63+
}
64+
}
65+
}
66+
}

0 commit comments

Comments
 (0)