fix: remove unused assignment and import warnings in tests
This commit is contained in:
10
docs/arch/mermaid/module.mmd
Normal file
10
docs/arch/mermaid/module.mmd
Normal file
@@ -0,0 +1,10 @@
|
||||
graph TD
|
||||
Adapters[Adapters]
|
||||
Presentation[Presentation]
|
||||
Application[Application]
|
||||
Domain[Domain]
|
||||
Presentation -->|1 dep| Application
|
||||
Application -->|2 deps| Domain
|
||||
Presentation -->|11 deps| Adapters
|
||||
Presentation -->|1 dep| Domain
|
||||
Adapters -->|24 deps| Domain
|
||||
42
docs/arch/mermaid/project.mmd
Normal file
42
docs/arch/mermaid/project.mmd
Normal file
@@ -0,0 +1,42 @@
|
||||
graph TD
|
||||
archlens_domain[archlens-domain]
|
||||
archlens_application[archlens-application]
|
||||
archlens[archlens]
|
||||
subgraph Adapters
|
||||
archlens_tree_sitter[archlens-tree-sitter]
|
||||
archlens_walkdir[archlens-walkdir]
|
||||
archlens_mermaid[archlens-mermaid]
|
||||
archlens_ascii[archlens-ascii]
|
||||
archlens_file_writer[archlens-file-writer]
|
||||
archlens_stdout_writer[archlens-stdout-writer]
|
||||
archlens_toml_config[archlens-toml-config]
|
||||
archlens_cargo_workspace[archlens-cargo-workspace]
|
||||
archlens_python_project[archlens-python-project]
|
||||
archlens_d2[archlens-d2]
|
||||
archlens_html[archlens-html]
|
||||
end
|
||||
archlens_application --> archlens_domain
|
||||
archlens --> archlens_file_writer
|
||||
archlens --> archlens_domain
|
||||
archlens --> archlens_cargo_workspace
|
||||
archlens --> archlens_d2
|
||||
archlens --> archlens_html
|
||||
archlens --> archlens_mermaid
|
||||
archlens --> archlens_toml_config
|
||||
archlens --> archlens_python_project
|
||||
archlens --> archlens_ascii
|
||||
archlens --> archlens_tree_sitter
|
||||
archlens --> archlens_application
|
||||
archlens --> archlens_walkdir
|
||||
archlens --> archlens_stdout_writer
|
||||
archlens_tree_sitter --> archlens_domain
|
||||
archlens_walkdir --> archlens_domain
|
||||
archlens_mermaid --> archlens_domain
|
||||
archlens_ascii --> archlens_domain
|
||||
archlens_file_writer --> archlens_domain
|
||||
archlens_stdout_writer --> archlens_domain
|
||||
archlens_toml_config --> archlens_domain
|
||||
archlens_cargo_workspace --> archlens_domain
|
||||
archlens_python_project --> archlens_domain
|
||||
archlens_d2 --> archlens_domain
|
||||
archlens_html --> archlens_domain
|
||||
137
docs/arch/mermaid/type/adapters.mmd
Normal file
137
docs/arch/mermaid/type/adapters.mmd
Normal file
@@ -0,0 +1,137 @@
|
||||
classDiagram
|
||||
namespace Adapters {
|
||||
class AsciiRenderer
|
||||
class D2Renderer
|
||||
class CargoWorkspaceAnalyzer
|
||||
class WorkspaceToml
|
||||
class WorkspaceSection
|
||||
class MemberToml
|
||||
class PackageSection
|
||||
class PythonProjectAnalyzer
|
||||
class ProjectSection
|
||||
class PoetrySection
|
||||
class ToolSection
|
||||
class PyprojectToml
|
||||
class StdoutOutputWriter
|
||||
class FileOutputWriter
|
||||
class OutputPath
|
||||
class MermaidRenderer
|
||||
class LanguageExtractor
|
||||
class TreeSitterAnalyzer
|
||||
class RustExtractor
|
||||
class PythonExtractor
|
||||
class WalkdirDiscovery
|
||||
class HtmlRenderer
|
||||
class GraphData
|
||||
class NodeData
|
||||
class EdgeData
|
||||
class RawRules
|
||||
class RawConfig
|
||||
class RawAnalysis
|
||||
class RawOutput
|
||||
class TomlConfigLoader
|
||||
}
|
||||
AsciiRenderer : +new() -] Self
|
||||
AsciiRenderer : -format_kind(element CodeElement) -] static str
|
||||
D2Renderer : level DiagramLevel
|
||||
D2Renderer : +new() -] Self
|
||||
D2Renderer : +with_level(level DiagramLevel) -] Self
|
||||
CargoWorkspaceAnalyzer : +new() -] Self
|
||||
<<private>> WorkspaceToml
|
||||
WorkspaceToml : workspace Option
|
||||
<<private>> WorkspaceSection
|
||||
WorkspaceSection : members Vec
|
||||
<<private>> MemberToml
|
||||
MemberToml : package Option
|
||||
MemberToml : dependencies HashMap
|
||||
<<private>> PackageSection
|
||||
PackageSection : name String
|
||||
PythonProjectAnalyzer : +new() -] Self
|
||||
<<private>> ProjectSection
|
||||
ProjectSection : name Option
|
||||
ProjectSection : dependencies Vec
|
||||
<<private>> PoetrySection
|
||||
PoetrySection : name Option
|
||||
PoetrySection : dependencies HashMap
|
||||
<<private>> ToolSection
|
||||
ToolSection : poetry PoetrySection
|
||||
<<private>> PyprojectToml
|
||||
PyprojectToml : project Option
|
||||
PyprojectToml : tool ToolSection
|
||||
StdoutOutputWriter : +new() -] Self
|
||||
FileOutputWriter : output_path OutputPath
|
||||
FileOutputWriter : +new(output_dir PathBuf) -] Self
|
||||
FileOutputWriter : +single_file(path PathBuf) -] Self
|
||||
<<private>> OutputPath
|
||||
MermaidRenderer : level DiagramLevel
|
||||
MermaidRenderer : show_weights bool
|
||||
MermaidRenderer : +new() -] Self
|
||||
MermaidRenderer : +with_level(level DiagramLevel) -] Self
|
||||
MermaidRenderer : +with_weights(show bool) -] Self
|
||||
MermaidRenderer : -display_name(qualified str) -] str
|
||||
MermaidRenderer : -format_element_name(element CodeElement) -] String
|
||||
MermaidRenderer : -format_visibility(visibility Visibility) -] static str
|
||||
MermaidRenderer : -render_class_diagram(graph CodeGraph) -] String
|
||||
MermaidRenderer : -push_class_lines(lines mut Vec[String], deferred mut Vec[String], element CodeElement, indent str, in_namespace bool)
|
||||
MermaidRenderer : -render_module_flowchart(graph CodeGraph) -] String
|
||||
MermaidRenderer : -render_project_flowchart(graph CodeGraph) -] String
|
||||
MermaidRenderer : -sanitize_id(name str) -] String
|
||||
TreeSitterAnalyzer : rust RustExtractor
|
||||
TreeSitterAnalyzer : python PythonExtractor
|
||||
TreeSitterAnalyzer : +new() -] Self
|
||||
TreeSitterAnalyzer : -extractor_for(language Language) -] Option[dyn LanguageExtractor]
|
||||
WalkdirDiscovery : +new() -] Self
|
||||
WalkdirDiscovery : -detect_language(path Path) -] Option[Language]
|
||||
WalkdirDiscovery : -is_test_file(path Path, language Language) -] bool
|
||||
WalkdirDiscovery : -is_excluded(path Path, root Path, excludes [String]) -] bool
|
||||
HtmlRenderer : +new() -] Self
|
||||
<<private>> GraphData
|
||||
GraphData : nodes Vec
|
||||
GraphData : edges Vec
|
||||
<<private>> NodeData
|
||||
NodeData : id String
|
||||
NodeData : label String
|
||||
NodeData : module String
|
||||
NodeData : kind String
|
||||
NodeData : fields Vec
|
||||
NodeData : methods Vec
|
||||
<<private>> EdgeData
|
||||
EdgeData : source String
|
||||
EdgeData : target String
|
||||
EdgeData : kind String
|
||||
<<private>> RawRules
|
||||
RawRules : allow Vec
|
||||
RawRules : deny Vec
|
||||
<<private>> RawConfig
|
||||
RawConfig : analysis RawAnalysis
|
||||
RawConfig : output RawOutput
|
||||
RawConfig : modules HashMap
|
||||
RawConfig : rules RawRules
|
||||
<<private>> RawAnalysis
|
||||
RawAnalysis : exclude Vec
|
||||
RawAnalysis : level Option
|
||||
<<private>> RawOutput
|
||||
RawOutput : format Option
|
||||
RawOutput : path Option
|
||||
RawOutput : split_by_module bool
|
||||
TomlConfigLoader : raw RawConfig
|
||||
TomlConfigLoader : +from_path(path Path) -] Result[Self, DomainError]
|
||||
TomlConfigLoader : -parse_level(level Option[String]) -] DiagramLevel
|
||||
ToolSection --> PoetrySection
|
||||
PyprojectToml --> ToolSection
|
||||
FileOutputWriter --> OutputPath
|
||||
TreeSitterAnalyzer --> RustExtractor
|
||||
TreeSitterAnalyzer --> PythonExtractor
|
||||
RustExtractor <|-- LanguageExtractor
|
||||
PythonExtractor <|-- LanguageExtractor
|
||||
RawConfig --> RawAnalysis
|
||||
RawConfig --> RawOutput
|
||||
RawConfig --> RawRules
|
||||
TomlConfigLoader --> RawConfig
|
||||
class adapters_module["Adapters"] {
|
||||
<<module>>
|
||||
}
|
||||
class domain_module["Domain"] {
|
||||
<<module>>
|
||||
}
|
||||
adapters_module --> domain_module : 13 deps
|
||||
20
docs/arch/mermaid/type/application.mmd
Normal file
20
docs/arch/mermaid/type/application.mmd
Normal file
@@ -0,0 +1,20 @@
|
||||
classDiagram
|
||||
namespace Application {
|
||||
class AnalyzeCodebase
|
||||
class AnalyzeCodebaseResult
|
||||
}
|
||||
AnalyzeCodebase : file_discovery F
|
||||
AnalyzeCodebase : source_analyzer S
|
||||
AnalyzeCodebase : +new(file_discovery F, source_analyzer S) -] Self
|
||||
AnalyzeCodebase : +execute(root Path, config AnalysisConfig) -] Result[AnalyzeCodebaseResult, DomainError]
|
||||
AnalyzeCodebaseResult : graph CodeGraph
|
||||
AnalyzeCodebaseResult : warnings Vec
|
||||
AnalyzeCodebaseResult : +graph() -] CodeGraph
|
||||
AnalyzeCodebaseResult : +warnings() -] [AnalysisWarning]
|
||||
class application_module["Application"] {
|
||||
<<module>>
|
||||
}
|
||||
class domain_module["Domain"] {
|
||||
<<module>>
|
||||
}
|
||||
application_module --> domain_module : 1 dep
|
||||
168
docs/arch/mermaid/type/domain.mmd
Normal file
168
docs/arch/mermaid/type/domain.mmd
Normal file
@@ -0,0 +1,168 @@
|
||||
classDiagram
|
||||
namespace Domain {
|
||||
class Relationship
|
||||
class CodeElement
|
||||
class DomainError
|
||||
class DiagramRenderer
|
||||
class SourceAnalyzer
|
||||
class ConfigLoader
|
||||
class FileDiscovery
|
||||
class ProjectAnalyzer
|
||||
class OutputWriter
|
||||
class AnalysisResult
|
||||
class AnalysisConfig
|
||||
class AnalysisWarning
|
||||
class CodeElementKind
|
||||
class RelationshipKind
|
||||
class Visibility
|
||||
class DiagramLevel
|
||||
class OutputConfig
|
||||
class RenderedFile
|
||||
class RenderOutput
|
||||
class ModuleName
|
||||
class Language
|
||||
class SourceFile
|
||||
class FilePath
|
||||
class RuleKind
|
||||
class RuleViolation
|
||||
class BoundaryRule
|
||||
class CodeGraph
|
||||
}
|
||||
Relationship : source String
|
||||
Relationship : target String
|
||||
Relationship : kind RelationshipKind
|
||||
Relationship : source_file Option
|
||||
Relationship : +new(source str, target str, kind RelationshipKind) -] Result[Self, DomainError]
|
||||
Relationship : +with_source_file(file FilePath) -] Self
|
||||
Relationship : +source() -] str
|
||||
Relationship : +target() -] str
|
||||
Relationship : +kind() -] RelationshipKind
|
||||
Relationship : +source_file() -] Option[FilePath]
|
||||
CodeElement : name String
|
||||
CodeElement : qualified_name Option
|
||||
CodeElement : kind CodeElementKind
|
||||
CodeElement : file_path FilePath
|
||||
CodeElement : line usize
|
||||
CodeElement : visibility Visibility
|
||||
CodeElement : module Option
|
||||
CodeElement : generics Vec
|
||||
CodeElement : attributes Vec
|
||||
CodeElement : fields Vec
|
||||
CodeElement : methods Vec
|
||||
CodeElement : +new(name str, kind CodeElementKind, file_path FilePath, line usize) -] Result[Self, DomainError]
|
||||
CodeElement : +with_visibility(visibility Visibility) -] Self
|
||||
CodeElement : +with_module(module ModuleName) -] Self
|
||||
CodeElement : +with_generics(generics Vec[String]) -] Self
|
||||
CodeElement : +with_attributes(attributes Vec[String]) -] Self
|
||||
CodeElement : +with_qualified_name(qn String) -] Self
|
||||
CodeElement : +name() -] str
|
||||
CodeElement : +qualified_name() -] str
|
||||
CodeElement : +kind() -] CodeElementKind
|
||||
CodeElement : +file_path() -] FilePath
|
||||
CodeElement : +line() -] usize
|
||||
CodeElement : +visibility() -] Visibility
|
||||
CodeElement : +module() -] Option[ModuleName]
|
||||
CodeElement : +generics() -] [String]
|
||||
CodeElement : +attributes() -] [String]
|
||||
CodeElement : +with_fields(fields Vec[String]) -] Self
|
||||
CodeElement : +with_methods(methods Vec[String]) -] Self
|
||||
CodeElement : +fields() -] [String]
|
||||
CodeElement : +methods() -] [String]
|
||||
AnalysisResult : elements Vec
|
||||
AnalysisResult : relationships Vec
|
||||
AnalysisResult : warnings Vec
|
||||
AnalysisResult : +new(elements Vec[CodeElement], relationships Vec[Relationship], warnings Vec[AnalysisWarning]) -] Self
|
||||
AnalysisResult : +empty() -] Self
|
||||
AnalysisResult : +elements() -] [CodeElement]
|
||||
AnalysisResult : +relationships() -] [Relationship]
|
||||
AnalysisResult : +warnings() -] [AnalysisWarning]
|
||||
AnalysisConfig : excludes Vec
|
||||
AnalysisConfig : level DiagramLevel
|
||||
AnalysisConfig : module_mappings HashMap
|
||||
AnalysisConfig : scope Option
|
||||
AnalysisConfig : include_tests bool
|
||||
AnalysisConfig : changed_files Option
|
||||
AnalysisConfig : +with_excludes(excludes Vec[String]) -] Self
|
||||
AnalysisConfig : +with_level(level DiagramLevel) -] Self
|
||||
AnalysisConfig : +with_module_mappings(mappings HashMap[String, String]) -] Self
|
||||
AnalysisConfig : +excludes() -] [String]
|
||||
AnalysisConfig : +level() -] DiagramLevel
|
||||
AnalysisConfig : +with_scope(scope String) -] Self
|
||||
AnalysisConfig : +module_mappings() -] HashMap[String, String]
|
||||
AnalysisConfig : +scope() -] Option[str]
|
||||
AnalysisConfig : +with_include_tests(include bool) -] Self
|
||||
AnalysisConfig : +include_tests() -] bool
|
||||
AnalysisConfig : +with_changed_files(files HashSet[String]) -] Self
|
||||
AnalysisConfig : +changed_files() -] Option[HashSet[String]]
|
||||
AnalysisWarning : file_path FilePath
|
||||
AnalysisWarning : line usize
|
||||
AnalysisWarning : message String
|
||||
AnalysisWarning : +new(file_path FilePath, line usize, message str) -] Result[Self, DomainError]
|
||||
AnalysisWarning : +file_path() -] FilePath
|
||||
AnalysisWarning : +line() -] usize
|
||||
AnalysisWarning : +message() -] str
|
||||
OutputConfig : split_by_module bool
|
||||
OutputConfig : output_path Option
|
||||
OutputConfig : +with_split_by_module(split bool) -] Self
|
||||
OutputConfig : +with_output_path(path String) -] Self
|
||||
OutputConfig : +split_by_module() -] bool
|
||||
OutputConfig : +output_path() -] Option[str]
|
||||
RenderedFile : name String
|
||||
RenderedFile : content String
|
||||
RenderedFile : +new(name str, content str) -] Result[Self, DomainError]
|
||||
RenderedFile : +name() -] str
|
||||
RenderedFile : +content() -] str
|
||||
RenderOutput : files Vec
|
||||
RenderOutput : +new(files Vec[RenderedFile]) -] Self
|
||||
RenderOutput : +single(file RenderedFile) -] Self
|
||||
RenderOutput : +files() -] [RenderedFile]
|
||||
ModuleName : +new(value str) -] Result[Self, DomainError]
|
||||
ModuleName : +from_path(file_path str, root Path, module_mappings HashMap[String, String]) -] Option[Self]
|
||||
ModuleName : +from_directory_group(member_path str) -] Option[Self]
|
||||
ModuleName : +capitalize(s str) -] String
|
||||
ModuleName : +as_str() -] str
|
||||
Language : +name() -] static str
|
||||
SourceFile : path FilePath
|
||||
SourceFile : language Language
|
||||
SourceFile : +new(path FilePath, language Language) -] Self
|
||||
SourceFile : +path() -] FilePath
|
||||
SourceFile : +language() -] Language
|
||||
FilePath : +new(value str) -] Result[Self, DomainError]
|
||||
FilePath : +as_str() -] str
|
||||
RuleViolation : source_module String
|
||||
RuleViolation : target_module String
|
||||
RuleViolation : kind RuleKind
|
||||
RuleViolation : +new(source_module str, target_module str, kind RuleKind) -] Self
|
||||
RuleViolation : +source_module() -] str
|
||||
RuleViolation : +target_module() -] str
|
||||
RuleViolation : +kind() -] RuleKind
|
||||
RuleViolation : +message() -] String
|
||||
BoundaryRule : source String
|
||||
BoundaryRule : target String
|
||||
BoundaryRule : +parse(s str) -] Option[Self]
|
||||
BoundaryRule : +source() -] str
|
||||
BoundaryRule : +target() -] str
|
||||
BoundaryRule : +matches(src_module str, tgt_module str) -] bool
|
||||
CodeGraph : elements Vec
|
||||
CodeGraph : relationships Vec
|
||||
CodeGraph : +new() -] Self
|
||||
CodeGraph : +add_element(element CodeElement)
|
||||
CodeGraph : +add_relationship(relationship Relationship)
|
||||
CodeGraph : +elements() -] [CodeElement]
|
||||
CodeGraph : +relationships() -] [Relationship]
|
||||
CodeGraph : +modules() -] Vec[ModuleName]
|
||||
CodeGraph : +elements_by_module() -] (HashMap[String, Vec[CodeElement]], Vec[CodeElement])
|
||||
CodeGraph : +resolve_relationships() -] CodeGraph
|
||||
CodeGraph : +filter_external_imports(known_modules HashSet[String]) -] CodeGraph
|
||||
CodeGraph : +qualify() -] CodeGraph
|
||||
CodeGraph : +cross_module_deps_for(module ModuleName) -] Vec[(ModuleName, usize)]
|
||||
CodeGraph : +subgraph_by_module(module ModuleName) -] CodeGraph
|
||||
Relationship --> RelationshipKind
|
||||
CodeElement --> CodeElementKind
|
||||
CodeElement --> FilePath
|
||||
CodeElement --> Visibility
|
||||
AnalysisConfig --> DiagramLevel
|
||||
AnalysisWarning --> FilePath
|
||||
SourceFile --> FilePath
|
||||
SourceFile --> Language
|
||||
RuleViolation --> RuleKind
|
||||
343
docs/arch/mermaid/type/overview.mmd
Normal file
343
docs/arch/mermaid/type/overview.mmd
Normal file
@@ -0,0 +1,343 @@
|
||||
classDiagram
|
||||
namespace Presentation {
|
||||
class Cli
|
||||
class Command
|
||||
}
|
||||
namespace Application {
|
||||
class AnalyzeCodebase
|
||||
class AnalyzeCodebaseResult
|
||||
}
|
||||
namespace Adapters {
|
||||
class AsciiRenderer
|
||||
class D2Renderer
|
||||
class CargoWorkspaceAnalyzer
|
||||
class WorkspaceToml
|
||||
class WorkspaceSection
|
||||
class MemberToml
|
||||
class PackageSection
|
||||
class PythonProjectAnalyzer
|
||||
class ProjectSection
|
||||
class PoetrySection
|
||||
class ToolSection
|
||||
class PyprojectToml
|
||||
class StdoutOutputWriter
|
||||
class FileOutputWriter
|
||||
class OutputPath
|
||||
class MermaidRenderer
|
||||
class LanguageExtractor
|
||||
class TreeSitterAnalyzer
|
||||
class RustExtractor
|
||||
class PythonExtractor
|
||||
class WalkdirDiscovery
|
||||
class HtmlRenderer
|
||||
class GraphData
|
||||
class NodeData
|
||||
class EdgeData
|
||||
class RawRules
|
||||
class RawConfig
|
||||
class RawAnalysis
|
||||
class RawOutput
|
||||
class TomlConfigLoader
|
||||
}
|
||||
namespace Domain {
|
||||
class Relationship
|
||||
class CodeElement
|
||||
class DomainError
|
||||
class DiagramRenderer
|
||||
class SourceAnalyzer
|
||||
class ConfigLoader
|
||||
class FileDiscovery
|
||||
class ProjectAnalyzer
|
||||
class OutputWriter
|
||||
class AnalysisResult
|
||||
class AnalysisConfig
|
||||
class AnalysisWarning
|
||||
class CodeElementKind
|
||||
class RelationshipKind
|
||||
class Visibility
|
||||
class DiagramLevel
|
||||
class OutputConfig
|
||||
class RenderedFile
|
||||
class RenderOutput
|
||||
class ModuleName
|
||||
class Language
|
||||
class SourceFile
|
||||
class FilePath
|
||||
class RuleKind
|
||||
class RuleViolation
|
||||
class BoundaryRule
|
||||
class CodeGraph
|
||||
}
|
||||
Cli : command Option
|
||||
Cli : path PathBuf
|
||||
Cli : level String
|
||||
Cli : format String
|
||||
Cli : output Option
|
||||
Cli : config Option
|
||||
Cli : scope Option
|
||||
Cli : exclude Vec
|
||||
Cli : include_tests bool
|
||||
Cli : no_weights bool
|
||||
Cli : watch bool
|
||||
Cli : since Option
|
||||
Cli : split_by_module bool
|
||||
Cli : strict bool
|
||||
Cli : check bool
|
||||
Cli : verbose u8
|
||||
AnalyzeCodebase : file_discovery F
|
||||
AnalyzeCodebase : source_analyzer S
|
||||
AnalyzeCodebase : +new(file_discovery F, source_analyzer S) -] Self
|
||||
AnalyzeCodebase : +execute(root Path, config AnalysisConfig) -] Result[AnalyzeCodebaseResult, DomainError]
|
||||
AnalyzeCodebaseResult : graph CodeGraph
|
||||
AnalyzeCodebaseResult : warnings Vec
|
||||
AnalyzeCodebaseResult : +graph() -] CodeGraph
|
||||
AnalyzeCodebaseResult : +warnings() -] [AnalysisWarning]
|
||||
AsciiRenderer : +new() -] Self
|
||||
AsciiRenderer : -format_kind(element CodeElement) -] static str
|
||||
D2Renderer : level DiagramLevel
|
||||
D2Renderer : +new() -] Self
|
||||
D2Renderer : +with_level(level DiagramLevel) -] Self
|
||||
CargoWorkspaceAnalyzer : +new() -] Self
|
||||
<<private>> WorkspaceToml
|
||||
WorkspaceToml : workspace Option
|
||||
<<private>> WorkspaceSection
|
||||
WorkspaceSection : members Vec
|
||||
<<private>> MemberToml
|
||||
MemberToml : package Option
|
||||
MemberToml : dependencies HashMap
|
||||
<<private>> PackageSection
|
||||
PackageSection : name String
|
||||
PythonProjectAnalyzer : +new() -] Self
|
||||
<<private>> ProjectSection
|
||||
ProjectSection : name Option
|
||||
ProjectSection : dependencies Vec
|
||||
<<private>> PoetrySection
|
||||
PoetrySection : name Option
|
||||
PoetrySection : dependencies HashMap
|
||||
<<private>> ToolSection
|
||||
ToolSection : poetry PoetrySection
|
||||
<<private>> PyprojectToml
|
||||
PyprojectToml : project Option
|
||||
PyprojectToml : tool ToolSection
|
||||
StdoutOutputWriter : +new() -] Self
|
||||
FileOutputWriter : output_path OutputPath
|
||||
FileOutputWriter : +new(output_dir PathBuf) -] Self
|
||||
FileOutputWriter : +single_file(path PathBuf) -] Self
|
||||
<<private>> OutputPath
|
||||
MermaidRenderer : level DiagramLevel
|
||||
MermaidRenderer : show_weights bool
|
||||
MermaidRenderer : +new() -] Self
|
||||
MermaidRenderer : +with_level(level DiagramLevel) -] Self
|
||||
MermaidRenderer : +with_weights(show bool) -] Self
|
||||
MermaidRenderer : -display_name(qualified str) -] str
|
||||
MermaidRenderer : -format_element_name(element CodeElement) -] String
|
||||
MermaidRenderer : -format_visibility(visibility Visibility) -] static str
|
||||
MermaidRenderer : -render_class_diagram(graph CodeGraph) -] String
|
||||
MermaidRenderer : -push_class_lines(lines mut Vec[String], deferred mut Vec[String], element CodeElement, indent str, in_namespace bool)
|
||||
MermaidRenderer : -render_module_flowchart(graph CodeGraph) -] String
|
||||
MermaidRenderer : -render_project_flowchart(graph CodeGraph) -] String
|
||||
MermaidRenderer : -sanitize_id(name str) -] String
|
||||
TreeSitterAnalyzer : rust RustExtractor
|
||||
TreeSitterAnalyzer : python PythonExtractor
|
||||
TreeSitterAnalyzer : +new() -] Self
|
||||
TreeSitterAnalyzer : -extractor_for(language Language) -] Option[dyn LanguageExtractor]
|
||||
WalkdirDiscovery : +new() -] Self
|
||||
WalkdirDiscovery : -detect_language(path Path) -] Option[Language]
|
||||
WalkdirDiscovery : -is_test_file(path Path, language Language) -] bool
|
||||
WalkdirDiscovery : -is_excluded(path Path, root Path, excludes [String]) -] bool
|
||||
HtmlRenderer : +new() -] Self
|
||||
<<private>> GraphData
|
||||
GraphData : nodes Vec
|
||||
GraphData : edges Vec
|
||||
<<private>> NodeData
|
||||
NodeData : id String
|
||||
NodeData : label String
|
||||
NodeData : module String
|
||||
NodeData : kind String
|
||||
NodeData : fields Vec
|
||||
NodeData : methods Vec
|
||||
<<private>> EdgeData
|
||||
EdgeData : source String
|
||||
EdgeData : target String
|
||||
EdgeData : kind String
|
||||
<<private>> RawRules
|
||||
RawRules : allow Vec
|
||||
RawRules : deny Vec
|
||||
<<private>> RawConfig
|
||||
RawConfig : analysis RawAnalysis
|
||||
RawConfig : output RawOutput
|
||||
RawConfig : modules HashMap
|
||||
RawConfig : rules RawRules
|
||||
<<private>> RawAnalysis
|
||||
RawAnalysis : exclude Vec
|
||||
RawAnalysis : level Option
|
||||
<<private>> RawOutput
|
||||
RawOutput : format Option
|
||||
RawOutput : path Option
|
||||
RawOutput : split_by_module bool
|
||||
TomlConfigLoader : raw RawConfig
|
||||
TomlConfigLoader : +from_path(path Path) -] Result[Self, DomainError]
|
||||
TomlConfigLoader : -parse_level(level Option[String]) -] DiagramLevel
|
||||
Relationship : source String
|
||||
Relationship : target String
|
||||
Relationship : kind RelationshipKind
|
||||
Relationship : source_file Option
|
||||
Relationship : +new(source str, target str, kind RelationshipKind) -] Result[Self, DomainError]
|
||||
Relationship : +with_source_file(file FilePath) -] Self
|
||||
Relationship : +source() -] str
|
||||
Relationship : +target() -] str
|
||||
Relationship : +kind() -] RelationshipKind
|
||||
Relationship : +source_file() -] Option[FilePath]
|
||||
CodeElement : name String
|
||||
CodeElement : qualified_name Option
|
||||
CodeElement : kind CodeElementKind
|
||||
CodeElement : file_path FilePath
|
||||
CodeElement : line usize
|
||||
CodeElement : visibility Visibility
|
||||
CodeElement : module Option
|
||||
CodeElement : generics Vec
|
||||
CodeElement : attributes Vec
|
||||
CodeElement : fields Vec
|
||||
CodeElement : methods Vec
|
||||
CodeElement : +new(name str, kind CodeElementKind, file_path FilePath, line usize) -] Result[Self, DomainError]
|
||||
CodeElement : +with_visibility(visibility Visibility) -] Self
|
||||
CodeElement : +with_module(module ModuleName) -] Self
|
||||
CodeElement : +with_generics(generics Vec[String]) -] Self
|
||||
CodeElement : +with_attributes(attributes Vec[String]) -] Self
|
||||
CodeElement : +with_qualified_name(qn String) -] Self
|
||||
CodeElement : +name() -] str
|
||||
CodeElement : +qualified_name() -] str
|
||||
CodeElement : +kind() -] CodeElementKind
|
||||
CodeElement : +file_path() -] FilePath
|
||||
CodeElement : +line() -] usize
|
||||
CodeElement : +visibility() -] Visibility
|
||||
CodeElement : +module() -] Option[ModuleName]
|
||||
CodeElement : +generics() -] [String]
|
||||
CodeElement : +attributes() -] [String]
|
||||
CodeElement : +with_fields(fields Vec[String]) -] Self
|
||||
CodeElement : +with_methods(methods Vec[String]) -] Self
|
||||
CodeElement : +fields() -] [String]
|
||||
CodeElement : +methods() -] [String]
|
||||
AnalysisResult : elements Vec
|
||||
AnalysisResult : relationships Vec
|
||||
AnalysisResult : warnings Vec
|
||||
AnalysisResult : +new(elements Vec[CodeElement], relationships Vec[Relationship], warnings Vec[AnalysisWarning]) -] Self
|
||||
AnalysisResult : +empty() -] Self
|
||||
AnalysisResult : +elements() -] [CodeElement]
|
||||
AnalysisResult : +relationships() -] [Relationship]
|
||||
AnalysisResult : +warnings() -] [AnalysisWarning]
|
||||
AnalysisConfig : excludes Vec
|
||||
AnalysisConfig : level DiagramLevel
|
||||
AnalysisConfig : module_mappings HashMap
|
||||
AnalysisConfig : scope Option
|
||||
AnalysisConfig : include_tests bool
|
||||
AnalysisConfig : changed_files Option
|
||||
AnalysisConfig : +with_excludes(excludes Vec[String]) -] Self
|
||||
AnalysisConfig : +with_level(level DiagramLevel) -] Self
|
||||
AnalysisConfig : +with_module_mappings(mappings HashMap[String, String]) -] Self
|
||||
AnalysisConfig : +excludes() -] [String]
|
||||
AnalysisConfig : +level() -] DiagramLevel
|
||||
AnalysisConfig : +with_scope(scope String) -] Self
|
||||
AnalysisConfig : +module_mappings() -] HashMap[String, String]
|
||||
AnalysisConfig : +scope() -] Option[str]
|
||||
AnalysisConfig : +with_include_tests(include bool) -] Self
|
||||
AnalysisConfig : +include_tests() -] bool
|
||||
AnalysisConfig : +with_changed_files(files HashSet[String]) -] Self
|
||||
AnalysisConfig : +changed_files() -] Option[HashSet[String]]
|
||||
AnalysisWarning : file_path FilePath
|
||||
AnalysisWarning : line usize
|
||||
AnalysisWarning : message String
|
||||
AnalysisWarning : +new(file_path FilePath, line usize, message str) -] Result[Self, DomainError]
|
||||
AnalysisWarning : +file_path() -] FilePath
|
||||
AnalysisWarning : +line() -] usize
|
||||
AnalysisWarning : +message() -] str
|
||||
OutputConfig : split_by_module bool
|
||||
OutputConfig : output_path Option
|
||||
OutputConfig : +with_split_by_module(split bool) -] Self
|
||||
OutputConfig : +with_output_path(path String) -] Self
|
||||
OutputConfig : +split_by_module() -] bool
|
||||
OutputConfig : +output_path() -] Option[str]
|
||||
RenderedFile : name String
|
||||
RenderedFile : content String
|
||||
RenderedFile : +new(name str, content str) -] Result[Self, DomainError]
|
||||
RenderedFile : +name() -] str
|
||||
RenderedFile : +content() -] str
|
||||
RenderOutput : files Vec
|
||||
RenderOutput : +new(files Vec[RenderedFile]) -] Self
|
||||
RenderOutput : +single(file RenderedFile) -] Self
|
||||
RenderOutput : +files() -] [RenderedFile]
|
||||
ModuleName : +new(value str) -] Result[Self, DomainError]
|
||||
ModuleName : +from_path(file_path str, root Path, module_mappings HashMap[String, String]) -] Option[Self]
|
||||
ModuleName : +from_directory_group(member_path str) -] Option[Self]
|
||||
ModuleName : +capitalize(s str) -] String
|
||||
ModuleName : +as_str() -] str
|
||||
Language : +name() -] static str
|
||||
SourceFile : path FilePath
|
||||
SourceFile : language Language
|
||||
SourceFile : +new(path FilePath, language Language) -] Self
|
||||
SourceFile : +path() -] FilePath
|
||||
SourceFile : +language() -] Language
|
||||
FilePath : +new(value str) -] Result[Self, DomainError]
|
||||
FilePath : +as_str() -] str
|
||||
RuleViolation : source_module String
|
||||
RuleViolation : target_module String
|
||||
RuleViolation : kind RuleKind
|
||||
RuleViolation : +new(source_module str, target_module str, kind RuleKind) -] Self
|
||||
RuleViolation : +source_module() -] str
|
||||
RuleViolation : +target_module() -] str
|
||||
RuleViolation : +kind() -] RuleKind
|
||||
RuleViolation : +message() -] String
|
||||
BoundaryRule : source String
|
||||
BoundaryRule : target String
|
||||
BoundaryRule : +parse(s str) -] Option[Self]
|
||||
BoundaryRule : +source() -] str
|
||||
BoundaryRule : +target() -] str
|
||||
BoundaryRule : +matches(src_module str, tgt_module str) -] bool
|
||||
CodeGraph : elements Vec
|
||||
CodeGraph : relationships Vec
|
||||
CodeGraph : +new() -] Self
|
||||
CodeGraph : +add_element(element CodeElement)
|
||||
CodeGraph : +add_relationship(relationship Relationship)
|
||||
CodeGraph : +elements() -] [CodeElement]
|
||||
CodeGraph : +relationships() -] [Relationship]
|
||||
CodeGraph : +modules() -] Vec[ModuleName]
|
||||
CodeGraph : +elements_by_module() -] (HashMap[String, Vec[CodeElement]], Vec[CodeElement])
|
||||
CodeGraph : +resolve_relationships() -] CodeGraph
|
||||
CodeGraph : +filter_external_imports(known_modules HashSet[String]) -] CodeGraph
|
||||
CodeGraph : +qualify() -] CodeGraph
|
||||
CodeGraph : +cross_module_deps_for(module ModuleName) -] Vec[(ModuleName, usize)]
|
||||
CodeGraph : +subgraph_by_module(module ModuleName) -] CodeGraph
|
||||
AsciiRenderer <|-- DiagramRenderer
|
||||
D2Renderer --> DiagramLevel
|
||||
D2Renderer <|-- DiagramRenderer
|
||||
CargoWorkspaceAnalyzer <|-- ProjectAnalyzer
|
||||
ToolSection --> PoetrySection
|
||||
PyprojectToml --> ToolSection
|
||||
PythonProjectAnalyzer <|-- ProjectAnalyzer
|
||||
StdoutOutputWriter <|-- OutputWriter
|
||||
FileOutputWriter --> OutputPath
|
||||
FileOutputWriter <|-- OutputWriter
|
||||
MermaidRenderer --> DiagramLevel
|
||||
MermaidRenderer <|-- DiagramRenderer
|
||||
TreeSitterAnalyzer --> RustExtractor
|
||||
TreeSitterAnalyzer --> PythonExtractor
|
||||
TreeSitterAnalyzer <|-- SourceAnalyzer
|
||||
RustExtractor <|-- LanguageExtractor
|
||||
PythonExtractor <|-- LanguageExtractor
|
||||
WalkdirDiscovery <|-- FileDiscovery
|
||||
HtmlRenderer <|-- DiagramRenderer
|
||||
RawConfig --> RawAnalysis
|
||||
RawConfig --> RawOutput
|
||||
RawConfig --> RawRules
|
||||
TomlConfigLoader --> RawConfig
|
||||
TomlConfigLoader <|-- ConfigLoader
|
||||
AnalyzeCodebaseResult --> CodeGraph
|
||||
Relationship --> RelationshipKind
|
||||
CodeElement --> CodeElementKind
|
||||
CodeElement --> FilePath
|
||||
CodeElement --> Visibility
|
||||
AnalysisConfig --> DiagramLevel
|
||||
AnalysisWarning --> FilePath
|
||||
SourceFile --> FilePath
|
||||
SourceFile --> Language
|
||||
RuleViolation --> RuleKind
|
||||
21
docs/arch/mermaid/type/presentation.mmd
Normal file
21
docs/arch/mermaid/type/presentation.mmd
Normal file
@@ -0,0 +1,21 @@
|
||||
classDiagram
|
||||
namespace Presentation {
|
||||
class Cli
|
||||
class Command
|
||||
}
|
||||
Cli : command Option
|
||||
Cli : path PathBuf
|
||||
Cli : level String
|
||||
Cli : format String
|
||||
Cli : output Option
|
||||
Cli : config Option
|
||||
Cli : scope Option
|
||||
Cli : exclude Vec
|
||||
Cli : include_tests bool
|
||||
Cli : no_weights bool
|
||||
Cli : watch bool
|
||||
Cli : since Option
|
||||
Cli : split_by_module bool
|
||||
Cli : strict bool
|
||||
Cli : check bool
|
||||
Cli : verbose u8
|
||||
Reference in New Issue
Block a user