Skip to content

Commit a8b5586

Browse files
committed
add traceback when errors
1 parent 07bb410 commit a8b5586

10 files changed

Lines changed: 23 additions & 1 deletion

File tree

codewiki/cli/commands/generate.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import sys
66
import logging
7+
import traceback
78
from pathlib import Path
89
from typing import Optional
910
import click
@@ -245,12 +246,15 @@ def generate_command(
245246

246247
except ConfigurationError as e:
247248
logger.error(e.message)
249+
logger.error(f"Traceback: {traceback.format_exc()}")
248250
sys.exit(e.exit_code)
249251
except RepositoryError as e:
250252
logger.error(e.message)
253+
logger.error(f"Traceback: {traceback.format_exc()}")
251254
sys.exit(e.exit_code)
252255
except APIError as e:
253256
logger.error(e.message)
257+
logger.error(f"Traceback: {traceback.format_exc()}")
254258
sys.exit(e.exit_code)
255259
except KeyboardInterrupt:
256260
click.echo("\n\nInterrupted by user")

codewiki/src/be/agent_orchestrator.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# import logfire
33
import logging
44
import os
5+
import traceback
56
from typing import Dict, List, Any
67

78
# Configure logging and monitoring
@@ -144,4 +145,5 @@ async def process_module(self, module_name: str, components: Dict[str, Node],
144145

145146
except Exception as e:
146147
logger.error(f"Error processing module {module_name}: {str(e)}")
148+
logger.error(f"Traceback: {traceback.format_exc()}")
147149
raise

codewiki/src/be/cluster_modules.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from typing import List, Dict, Any
22
from collections import defaultdict
33
import logging
4+
import traceback
45
logger = logging.getLogger(__name__)
56

67
from codewiki.src.be.dependency_analyzer.models.core import Node
@@ -75,6 +76,7 @@ def cluster_modules(
7576

7677
except Exception as e:
7778
logger.error(f"Failed to parse LLM response: {e}. Response: {response[:200]}...")
79+
logger.error(f"Traceback: {traceback.format_exc()}")
7880
return {}
7981

8082
# check if the module tree is valid

codewiki/src/be/dependency_analyzer/analysis/analysis_service.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"""
88

99
import logging
10+
import traceback
1011
from typing import Dict, List, Optional, Any
1112
from pathlib import Path
1213
from codewiki.src.be.dependency_analyzer.utils.security import safe_open_text, assert_safe_path
@@ -212,6 +213,7 @@ def analyze_repository_structure_only(
212213
if temp_dir:
213214
self._cleanup_repository(temp_dir)
214215
logger.error(f"Structure analysis failed for {github_url}: {str(e)}")
216+
logger.error(f"Traceback: {traceback.format_exc()}")
215217
raise RuntimeError(f"Structure analysis failed: {str(e)}") from e
216218

217219
def _clone_repository(self, github_url: str) -> str:

codewiki/src/be/dependency_analyzer/analysis/call_graph_analyzer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from typing import Dict, List
1010
import logging
11+
import traceback
1112
from pathlib import Path
1213
from codewiki.src.be.dependency_analyzer.models.core import Node, CallRelationship
1314
from codewiki.src.be.dependency_analyzer.utils.patterns import CODE_EXTENSIONS
@@ -138,6 +139,7 @@ def _analyze_code_file(self, repo_dir: str, file_info: Dict):
138139

139140
except Exception as e:
140141
logger.error(f"⚠️ Error analyzing {file_path}: {str(e)}")
142+
logger.error(f"Traceback: {traceback.format_exc()}")
141143

142144
def _analyze_python_file(self, file_path: str, content: str, base_dir: str):
143145
"""

codewiki/src/be/dependency_analyzer/analyzers/javascript.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
import os
3+
import traceback
34
from typing import List, Set, Optional, Tuple
45
from pathlib import Path
56
import sys
@@ -33,6 +34,7 @@ def __init__(self, file_path: str, content: str, repo_path: str = None):
3334

3435
except Exception as e:
3536
logger.error(f"Failed to initialize JavaScript parser: {e}")
37+
logger.error(f"Traceback: {traceback.format_exc()}")
3638
self.parser = None
3739
self.js_language = None
3840

codewiki/src/be/dependency_analyzer/analyzers/typescript.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
import os
3+
import traceback
34
from typing import List, Set, Optional, Tuple
45
from pathlib import Path
56
import sys
@@ -31,6 +32,7 @@ def __init__(self, file_path: str, content: str, repo_path: str = None):
3132

3233
except Exception as e:
3334
logger.error(f"Failed to initialize TypeScript parser: {e}")
35+
logger.error(f"Traceback: {traceback.format_exc()}")
3436
self.parser = None
3537
self.ts_language = None
3638

codewiki/src/be/documentation_generator.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def create_documentation_metadata(self, working_dir: str, components: Dict[str,
4343
"generation_info": {
4444
"timestamp": datetime.now().isoformat(),
4545
"main_model": self.config.main_model,
46-
"generator_version": "1.0.0",
46+
"generator_version": "1.0.1",
4747
"repo_path": self.config.repo_path,
4848
"commit_id": self.commit_id
4949
},
@@ -171,6 +171,7 @@ async def generate_module_documentation(self, components: Dict[str, Any], leaf_n
171171

172172
except Exception as e:
173173
logger.error(f"Failed to process module {module_key}: {str(e)}")
174+
logger.error(f"Traceback: {traceback.format_exc()}")
174175
continue
175176

176177
# Generate repo overview
@@ -242,6 +243,7 @@ async def generate_parent_module_docs(self, module_path: List[str],
242243

243244
except Exception as e:
244245
logger.error(f"Error generating parent documentation for {module_name}: {str(e)}")
246+
logger.error(f"Traceback: {traceback.format_exc()}")
245247
raise
246248

247249
async def run(self) -> None:

codewiki/src/be/main.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import logging
1212
import argparse
1313
import asyncio
14+
import traceback
1415

1516
# Configure logging and monitoring
1617
from codewiki.src.be.dependency_analyzer.utils.logging_config import setup_logging
@@ -57,6 +58,7 @@ async def main() -> None:
5758
logger.debug("Documentation generation interrupted by user")
5859
except Exception as e:
5960
logger.error(f"Unexpected error: {str(e)}")
61+
logger.error(f"Traceback: {traceback.format_exc()}")
6062
raise
6163

6264

codewiki/src/be/utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from typing import List, Tuple
44
import logging
55
import tiktoken
6+
import traceback
67

78

89
logger = logging.getLogger(__name__)
@@ -169,6 +170,7 @@ async def validate_single_diagram(diagram_content: str, diagram_num: int, line_s
169170
core_error = core_error
170171
else:
171172
logger.error(f"No match found for error pattern, fallback to mermaid-py\n{error_str}")
173+
logger.error(f"Traceback: {traceback.format_exc()}")
172174
raise Exception(error_str)
173175

174176
except Exception as e:

0 commit comments

Comments
 (0)