Documentation
¶
Overview ¶
Package python provides Python language support for code analysis.
Package python provides Python language support for code analysis.
Package python provides Python language support for code analysis.
This package implements the language.Language interface for Python, using tree-sitter for parsing and custom detectors for anti-pattern detection.
Index ¶
- type PythonDetectorRunner
- type PythonLanguage
- func (p *PythonLanguage) CoverageRunner(cfg *config.AnalysisConfig, statusReporter status.Reporter) language.CoverageRunner
- func (p *PythonLanguage) DefaultExcludePatterns() []string
- func (p *PythonLanguage) DependencyAnalyzer(projectPath string) (language.DependencyAnalyzer, error)
- func (p *PythonLanguage) DetectorRunner(cfg *config.AnalysisConfig) language.DetectorRunner
- func (p *PythonLanguage) DisplayName() string
- func (p *PythonLanguage) Extensions() []string
- func (p *PythonLanguage) Name() string
- func (p *PythonLanguage) Parser(workers int) parser.Parser
- type PythonParser
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PythonDetectorRunner ¶
type PythonDetectorRunner struct {
// contains filtered or unexported fields
}
PythonDetectorRunner implements language.DetectorRunner for Python source code.
This runner uses tree-sitter to parse Python files and run anti-pattern detection, similar to how GoDetectorRunner works with Go AST.
func NewDetectorRunner ¶
func NewDetectorRunner(cfg *config.AnalysisConfig) *PythonDetectorRunner
NewDetectorRunner creates a new detector runner for Python source code.
func (*PythonDetectorRunner) RunDetectors ¶
func (r *PythonDetectorRunner) RunDetectors(cfg *config.AnalysisConfig, file *parser.FileMetrics) []*detectors.Issue
RunDetectors parses a Python file and runs all enabled detectors.
type PythonLanguage ¶
type PythonLanguage struct{}
PythonLanguage implements language.Language for Python source code.
func (*PythonLanguage) CoverageRunner ¶
func (p *PythonLanguage) CoverageRunner(cfg *config.AnalysisConfig, statusReporter status.Reporter) language.CoverageRunner
CoverageRunner returns nil as Python coverage is not yet implemented. Python coverage support will be added in a future phase using pytest-cov.
func (*PythonLanguage) DefaultExcludePatterns ¶
func (p *PythonLanguage) DefaultExcludePatterns() []string
DefaultExcludePatterns returns Python-specific exclude patterns.
func (*PythonLanguage) DependencyAnalyzer ¶
func (p *PythonLanguage) DependencyAnalyzer(projectPath string) (language.DependencyAnalyzer, error)
DependencyAnalyzer returns nil as Python dependency analysis is not yet implemented. Python dependency analysis will be added in a future phase using requirements.txt/pyproject.toml parsing.
func (*PythonLanguage) DetectorRunner ¶
func (p *PythonLanguage) DetectorRunner(cfg *config.AnalysisConfig) language.DetectorRunner
DetectorRunner returns a Python-specific detector runner.
func (*PythonLanguage) DisplayName ¶
func (p *PythonLanguage) DisplayName() string
DisplayName returns "Python".
func (*PythonLanguage) Extensions ¶
func (p *PythonLanguage) Extensions() []string
Extensions returns [".py"].
type PythonParser ¶
type PythonParser struct {
// contains filtered or unexported fields
}
PythonParser implements parser.Parser for Python source files using tree-sitter.
func NewParser ¶
func NewParser(workers int) *PythonParser
NewParser creates a new Python parser. The workers parameter controls parallel parsing (0=auto, 1=sequential).
func (*PythonParser) ParseDirectory ¶
func (p *PythonParser) ParseDirectory(rootPath string, excludePatterns []string, extensions []string, statusReporter status.Reporter) ([]*parser.FileMetrics, []error)
ParseDirectory recursively parses all Python files in a directory. If Workers is set to 1, parsing is sequential. Otherwise, files are parsed in parallel.
func (*PythonParser) ParseFile ¶
func (p *PythonParser) ParseFile(path string) (*parser.FileMetrics, error)
ParseFile parses a single Python file and extracts comprehensive metrics.