Generated by: prefact v0.1.30 Generated on: 2026-04-08T13:14:19.824333 Total issues: 198 active, 23 completed
- code2docs/analyzers/dependency_scanner.py:11 - Expected an indented block after
exceptclause - code2docs/analyzers/endpoint_detector.py:7 - Unused import: 'Dict'
- code2docs/analyzers/docstring_extractor.py:3 - Unused import: 'ast'
- code2docs/analyzers/docstring_extractor.py:5 - Unused import: 'Path'
- code2docs/analyzers/docstring_extractor.py:6 - Unused import: 'Tuple'
- code2docs/analyzers/project_scanner.py:6 - Unused import: 'FAST_CONFIG'
- code2docs/config.py:11 - Expected
exceptorfinallyaftertryblock - code2docs/config.py:13 - Expected a statement
- code2docs/config.py:13 - Expected an expression
- code2docs/config.py:32 - Example class in production code
- code2docs/config.py:11 - module execution block
- code2docs/examples/quickstart.py:11 - Unused import: 'analyze_and_document'
- code2docs/formatters/markdown.py:3 - Unused import: 'Optional'
- code2docs/generators/_registry_adapters.py:13 - Expected an indented block after
classdefinition - code2docs/generators/_registry_adapters.py:129 - Example class in production code
- code2docs/generators/_registry_adapters.py:13 - module execution block
- code2docs/generators/api_changelog_gen.py:6 - Unused import: 'Tuple'
- docs/examples/quickstart.py:11 - Unused import: 'analyze_and_document'
- examples/advanced_usage.py:32 - Unexpected indentation
- examples/advanced_usage.py:33 - Expected a statement
- examples/advanced_usage.py:40 - Unexpected indentation
- examples/quickstart.py:17 - Unexpected indentation
- examples/quickstart.py:21 - Expected a statement
- code2docs/analyzers/init.py:3 - Relative import (level=1): '.project_scanner'
- code2docs/analyzers/init.py:4 - Relative import (level=1): '.endpoint_detector'
- code2docs/analyzers/init.py:5 - Relative import (level=1): '.docstring_extractor'
- code2docs/analyzers/dependency_scanner.py:13 - module execution block
- code2docs/init.py:16 - Relative import (level=1): '.generators.readme_gen'
- code2docs/init.py:19 - Relative import (level=1): '.generators'
- code2docs/init.py:22 - Relative import (level=1): '.analyzers.project_scanner'
- code2docs/init.py:8 - module execution block
- code2docs/main.py:3 - Relative import (level=1): '.cli'
- code2docs/main.py:5 - module execution block
- code2docs/base.py:10 - Relative import (level=1): '.config'
- code2docs/analyzers/docstring_extractor.py:139 - String concatenation can be converted to f-string
- code2docs/analyzers/docstring_extractor.py:136 - String concatenation can be converted to f-string
- code2docs/analyzers/docstring_extractor.py:137 - String concatenation can be converted to f-string
- code2docs/analyzers/docstring_extractor.py:3 - Unused import ast
- code2docs/analyzers/docstring_extractor.py:5 - Unused Path imported from pathlib
- code2docs/analyzers/docstring_extractor.py:6 - Unused Tuple imported from typing
- code2docs/analyzers/endpoint_detector.py:107 - String concatenation can be converted to f-string
- code2docs/analyzers/endpoint_detector.py:3 - Unused import ast
- code2docs/analyzers/endpoint_detector.py:7 - Unused Dict imported from typing
- code2docs/analyzers/endpoint_detector.py:3 - Unused import: 'ast'
- code2docs/analyzers/project_scanner.py:8 - Relative import (level=2): '..config'
- code2docs/analyzers/project_scanner.py:3 - Unused Path imported from pathlib
- code2docs/analyzers/project_scanner.py:6 - Unused FAST_CONFIG imported from code2llm.api
- code2docs/analyzers/project_scanner.py:3 - Unused import: 'Path'
- code2docs/examples/quickstart.py:8 - Unused Path imported from pathlib
- code2docs/examples/quickstart.py:11 - Unused analyze_and_document imported from code2docs
- code2docs/examples/quickstart.py:8 - Unused import: 'Path'
- code2docs/examples/advanced_usage.py:8 - Unused Path imported from pathlib
- code2docs/examples/advanced_usage.py:8 - Unused import: 'Path'
- code2docs/cli.py:8 - Relative import (level=1): '.config'
- code2docs/cli.py:117 - Relative import (level=1): '.analyzers.project_scanner'
- code2docs/cli.py:118 - Relative import (level=1): '.base'
- code2docs/cli.py:15 - Function 'parse_args' missing return type (suggested: -> Any)
- code2docs/cli.py:19 - String concatenation can be converted to f-string
- code2docs/cli.py:179 - Duplicate import: 'ProjectScanner' (first at line 117)
- code2docs/cli.py:231 - Duplicate import: 'ProjectScanner' (first at line 117)
- code2docs/cli.py:232 - Duplicate import: 'GenerateContext' (first at line 118)
- code2docs/cli.py:177 - Magic number: 80 - use named constant
- code2docs/cli.py:89 - Magic number: 80 - use named constant
- code2docs/cli.py:9 - module execution block
- code2docs/config.py:30 - Example class in production code
- code2docs/formatters/init.py:3 - Relative import (level=1): '.markdown'
- code2docs/formatters/init.py:4 - Relative import (level=1): '.badges'
- code2docs/formatters/init.py:5 - Relative import (level=1): '.toc'
- code2docs/generators/init.py:3 - Relative import (level=1): '.readme_gen'
- code2docs/generators/init.py:4 - Relative import (level=1): '.api_reference_gen'
- code2docs/generators/init.py:5 - Relative import (level=1): '.module_docs_gen'
- code2docs/generators/init.py:35 - Function 'generate_docs' missing return type (suggested: -> Any)
- code2docs/generators/init.py:6 - Suspicious import: from examples_gen
- code2docs/formatters/markdown.py:54 - String concatenation can be converted to f-string
- code2docs/formatters/markdown.py:55 - String concatenation can be converted to f-string
- code2docs/formatters/markdown.py:3 - Unused Dict imported from typing
- code2docs/formatters/markdown.py:3 - Unused Optional imported from typing
- code2docs/formatters/markdown.py:3 - Unused import: 'Dict'
- code2docs/generators/_registry_adapters.py:9 - Relative import (level=2): '..base'
- code2docs/generators/_registry_adapters.py:18 - Relative import (level=1): '.readme_gen'
- code2docs/generators/_registry_adapters.py:41 - Relative import (level=1): '.api_reference_gen'
- code2docs/generators/_registry_adapters.py:23 - String concatenation can be converted to f-string
- code2docs/generators/_registry_adapters.py:240 - String concatenation can be converted to f-string
- code2docs/generators/_registry_adapters.py:134 - Suspicious import: from examples_gen
- code2docs/generators/_registry_adapters.py:3 - Magic number: 500 - use named constant
- code2docs/generators/_registry_adapters.py:23 - Magic number in comparison: 500
- code2docs/generators/_registry_adapters.py:240 - Magic number in comparison: 500
- code2docs/generators/_registry_adapters.py:127 - Example class in production code
- code2docs/formatters/toc.py:7 - LLM-style docstring in generate_toc
- code2docs/generators/_source_links.py:8 - Relative import (level=2): '..config'
- code2docs/generators/architecture_gen.py:8 - Relative import (level=2): '..config'
- code2docs/generators/architecture_gen.py:9 - Relative import (level=2): '..llm_helper'
- code2docs/generators/architecture_gen.py:135 - String concatenation can be converted to f-string
- code2docs/generators/architecture_gen.py:6 - Unused ModuleInfo imported from code2llm.api
- code2docs/generators/architecture_gen.py:6 - Unused import: 'ModuleInfo'
- code2docs/generators/architecture_gen.py:214 - Magic number: 15 - use named constant
- code2docs/generators/api_changelog_gen.py:10 - Relative import (level=2): '..config'
- code2docs/generators/api_changelog_gen.py:4 - Unused field imported from dataclasses
- code2docs/generators/api_changelog_gen.py:6 - Unused Tuple imported from typing
- code2docs/generators/api_changelog_gen.py:4 - Unused import: 'field'
- code2docs/generators/api_reference_gen.py:9 - Relative import (level=2): '..config'
- code2docs/generators/api_reference_gen.py:10 - Relative import (level=1): '._source_links'
- code2docs/generators/api_reference_gen.py:76 - String concatenation can be converted to f-string
- code2docs/generators/api_reference_gen.py:81 - String concatenation can be converted to f-string
- code2docs/generators/api_reference_gen.py:94 - String concatenation can be converted to f-string
- code2docs/generators/api_reference_gen.py:5 - Unused Optional imported from typing
- code2docs/generators/api_reference_gen.py:5 - Unused import: 'Optional'
- code2docs/generators/changelog_gen.py:10 - Relative import (level=2): '..config'
- code2docs/generators/changelog_gen.py:4 - Unused field imported from dataclasses
- code2docs/generators/changelog_gen.py:4 - Unused import: 'field'
- code2docs/generators/code2llm_gen.py:9 - Relative import (level=2): '..config'
- code2docs/generators/code2llm_gen.py:199 - Relative import (level=2): '..analyzers.project_scanner'
- code2docs/generators/code2llm_gen.py:150 - String concatenation can be converted to f-string
- code2docs/generators/code2llm_gen.py:5 - Unused Set imported from typing
- code2docs/generators/code2llm_gen.py:5 - Unused import: 'Set'
- code2docs/generators/code2llm_gen.py:188 - LLM-style docstring in generate_code2llm_analysis
- code2docs/generators/code2llm_gen.py:79 - LLM-style docstring in generate_all
- code2docs/generators/config_docs_gen.py:8 - Relative import (level=2): '..config'
- code2docs/generators/config_docs_gen.py:4 - Unused Any imported from typing
- code2docs/generators/config_docs_gen.py:4 - Unused import: 'Any'
- code2docs/generators/contributing_gen.py:7 - Relative import (level=2): '..config'
- code2docs/generators/contributing_gen.py:8 - Relative import (level=2): '..analyzers.dependency_scanner'
- code2docs/generators/contributing_gen.py:3 - Unused List imported from typing
- code2docs/generators/contributing_gen.py:3 - Unused import: 'List'
- code2docs/generators/coverage_gen.py:7 - Relative import (level=2): '..config'
- code2docs/generators/coverage_gen.py:8 - Relative import (level=2): '..analyzers.docstring_extractor'
- code2docs/generators/coverage_gen.py:64 - String concatenation can be converted to f-string
- code2docs/generators/coverage_gen.py:67 - String concatenation can be converted to f-string
- code2docs/generators/coverage_gen.py:41 - Magic number in comparison: 80
- code2docs/generators/coverage_gen.py:41 - Magic number: 80 - use named constant
- code2docs/generators/coverage_gen.py:41 - Magic number in comparison: 50
- code2docs/generators/depgraph_gen.py:9 - Relative import (level=2): '..config'
- code2docs/generators/depgraph_gen.py:104 - String concatenation can be converted to f-string
- code2docs/generators/depgraph_gen.py:105 - String concatenation can be converted to f-string
- code2docs/generators/depgraph_gen.py:7 - Unused ModuleInfo imported from code2llm.api
- code2docs/generators/depgraph_gen.py:7 - Unused import: 'ModuleInfo'
- code2docs/generators/mkdocs_gen.py:10 - Relative import (level=2): '..config'
- code2docs/generators/getting_started_gen.py:7 - Relative import (level=2): '..config'
- code2docs/generators/getting_started_gen.py:8 - Relative import (level=2): '..analyzers.dependency_scanner'
- code2docs/generators/getting_started_gen.py:9 - Relative import (level=2): '..llm_helper'
- code2docs/generators/getting_started_gen.py:3 - Unused Optional imported from typing
- code2docs/generators/getting_started_gen.py:3 - Unused import: 'Optional'
- code2docs/generators/examples_gen.py:18 - Relative import (level=2): '..config'
- code2docs/generators/examples_gen.py:171 - String concatenation can be converted to f-string
- code2docs/generators/examples_gen.py:173 - String concatenation can be converted to f-string
- code2docs/generators/examples_gen.py:157 - String concatenation can be converted to f-string
- code2docs/generators/examples_gen.py:5 - Magic number: 50 - use named constant
- code2docs/generators/examples_gen.py:9 - Magic number: 50 - use named constant
- code2docs/generators/examples_gen.py:171 - Magic number: 50 - use named constant
- code2docs/generators/examples_gen.py:66 - Example class in production code
- code2docs/generators/examples_gen.py:22 - module execution block
- code2docs/generators/module_docs_gen.py:10 - Relative import (level=2): '..config'
- code2docs/generators/module_docs_gen.py:11 - Relative import (level=1): '._source_links'
- code2docs/generators/readme_gen.py:14 - Relative import (level=2): '..config'
- code2docs/generators/readme_gen.py:15 - Relative import (level=2): '..analyzers.dependency_scanner'
- code2docs/generators/readme_gen.py:16 - Relative import (level=2): '..analyzers.endpoint_detector'
- code2docs/generators/readme_gen.py:223 - String concatenation can be converted to f-string
- code2docs/generators/readme_gen.py:305 - String concatenation can be converted to f-string
- code2docs/generators/readme_gen.py:188 - Duplicate import: 'tomllib' (first at line 117)
- code2docs/generators/readme_gen.py:155 - Duplicate import: 'subprocess' (first at line 142)
- code2docs/generators/readme_gen.py:4 - Magic number: 15 - use named constant
- code2docs/generators/readme_gen.py:5 - Magic number: 20 - use named constant
- code2docs/generators/readme_gen.py:6 - Magic number: 30 - use named constant
- code2docs/generators/readme_gen.py:20 - module execution block
- code2docs/generators/org_readme_gen.py:8 - Relative import (level=2): '..config'
- code2docs/generators/org_readme_gen.py:9 - Relative import (level=2): '..analyzers.project_scanner'
- code2docs/generators/org_readme_gen.py:141 - String concatenation can be converted to f-string
- code2docs/generators/org_readme_gen.py:144 - String concatenation can be converted to f-string
- code2docs/generators/org_readme_gen.py:120 - String concatenation can be converted to f-string
- code2docs/generators/org_readme_gen.py:4 - Unused List imported from typing
- code2docs/generators/org_readme_gen.py:4 - Unused import: 'List'
- code2docs/generators/org_readme_gen.py:154 - Duplicate import: 'tomllib' (first at line 92)
- code2docs/generators/org_readme_gen.py:173 - Duplicate import: 'tomllib' (first at line 92)
- code2docs/generators/org_readme_gen.py:132 - Magic number: 300 - use named constant
- code2docs/generators/org_readme_gen.py:143 - Magic number in comparison: 20
- code2docs/generators/org_readme_gen.py:143 - Magic number: 20 - use named constant
- code2docs/registry.py:4 - Relative import (level=1): '.base'
- code2docs/sync/init.py:3 - Relative import (level=1): '.differ'
- code2docs/sync/init.py:4 - Relative import (level=1): '.updater'
- code2docs/sync/differ.py:9 - Relative import (level=2): '..config'
- code2docs/sync/differ.py:5 - Unused field imported from dataclasses
- code2docs/sync/differ.py:5 - Unused import: 'field'
- code2docs/sync/updater.py:6 - Relative import (level=2): '..config'
- code2docs/sync/updater.py:7 - Relative import (level=1): '.differ'
- code2docs/sync/updater.py:18 - Relative import (level=2): '..analyzers.project_scanner'
- code2docs/sync/watcher.py:7 - Relative import (level=2): '..config'
- code2docs/sync/watcher.py:52 - Relative import (level=1): '.differ'
- code2docs/sync/watcher.py:53 - Relative import (level=1): '.updater'
- code2docs/sync/watcher.py:34 - Function 'on_modified' missing return type (suggested: -> None)
- docs/examples/advanced_usage.py:8 - Unused Path imported from pathlib
- docs/examples/advanced_usage.py:8 - Unused import: 'Path'
- docs/examples/quickstart.py:8 - Unused Path imported from pathlib
- docs/examples/quickstart.py:11 - Unused analyze_and_document imported from code2docs
- docs/examples/quickstart.py:8 - Unused import: 'Path'
- examples/02_configuration.py:151 - module execution block
- examples/01_cli_usage.py:1 - High comment-to-code ratio: 27/23
- examples/01_cli_usage.py:67 - module execution block
- examples/03_programmatic_api.py:84 - module execution block
- examples/04_sync_and_watch.py:88 - Function 'signal_handler' missing return type (suggested: -> None)
- examples/04_sync_and_watch.py:48 - Duplicate import: 'ChangeInfo' (first at line 11)
- examples/04_sync_and_watch.py:54 - LLM-style docstring in watch_and_auto_regenerate
- examples/04_sync_and_watch.py:18 - module execution block
- examples/04_sync_and_watch.py:119 - module execution block
- examples/05_custom_generators.py:53 - String concatenation can be converted to f-string
- examples/05_custom_generators.py:117 - String concatenation can be converted to f-string
- examples/05_custom_generators.py:143 - module execution block
- examples/06_formatters.py:82 - String concatenation can be converted to f-string
- examples/06_formatters.py:55 - Magic number: 85 - use named constant
- examples/06_formatters.py:55 - Magic number: 5000 - use named constant
- examples/06_formatters.py:77 - Magic number: 90 - use named constant
- examples/06_formatters.py:95 - module execution block
- examples/advanced_usage.py:14 - module execution block
- examples/07_web_frameworks.py:198 - String concatenation can be converted to f-string
- examples/07_web_frameworks.py:211 - module execution block
- examples/basic_usage.py:12 - module execution block
- examples/class_examples.py:6 - Suspicious import: from code2docs.generators.examples_gen
- examples/entry_points.py:20 - Duplicate import: code2docs.formatters.markdown.init
- examples/entry_points.py:20 - Duplicate import: 'init' (first at line 9)
- examples/entry_points.py:1 - High comment-to-code ratio: 8/11
- examples/quickstart.py:11 - module execution block
- code2docs/llm_helper.py:10 - Relative import (level=1): '.config'
To execute all tasks, run: prefact -a --execute-todos