Skip to main content

Module patterns

Module patterns 

Source
Expand description

Pattern Analysis commands for TLDR CLI

This module provides commands for pattern analysis, including cohesion metrics, coupling analysis, interface extraction, temporal constraint mining, behavioral constraint extraction, and resource lifecycle analysis.

§Commands

  • cohesion: Compute LCOM4 (Lack of Cohesion of Methods) metric for classes
  • coupling: Analyze coupling between two modules via cross-module calls
  • interface: Extract the public interface (API surface) of Python files
  • temporal: Mine temporal constraints (method call sequences) from a codebase
  • behavioral: Extract behavioral constraints (pre/postconditions, exceptions)
  • resources: Analyze resource lifecycle to detect leaks and issues

§Module Structure

patterns/
├── mod.rs              # Module exports and re-exports (this file)
├── types.rs            # Shared data types across all commands
├── error.rs            # PatternsError enum and Result type
├── validation.rs       # Path safety, resource limits (TIGER mitigations)
├── cohesion.rs         # cohesion command implementation
├── coupling.rs         # coupling command implementation
├── interface.rs        # interface command implementation
├── temporal.rs         # temporal command implementation
├── behavioral.rs       # behavioral command implementation
└── resources.rs        # resources command implementation

§Schema Version

All JSON output uses types from types.rs for consistent serialization.

Re-exports§

pub use error::PatternsError;
pub use error::PatternsResult;
pub use types::BehavioralReport;
pub use types::ClassBehavior;
pub use types::ClassCohesion;
pub use types::ClassInfo;
pub use types::ClassInvariant;
pub use types::CohesionReport;
pub use types::CohesionSummary;
pub use types::CohesionVerdict;
pub use types::ComponentInfo;
pub use types::ConditionSource;
pub use types::Confidence;
pub use types::ContextSuggestion;
pub use types::CouplingReport;
pub use types::CouplingVerdict;
pub use types::CrossCall;
pub use types::CrossCalls;
pub use types::DocstringStyle;
pub use types::DoubleCloseInfo;
pub use types::EffectType;
pub use types::ExceptionInfo;
pub use types::FunctionBehavior;
pub use types::FunctionInfo;
pub use types::InterfaceInfo;
pub use types::LeakInfo;
pub use types::MethodInfo;
pub use types::OutputFormat;
pub use types::Postcondition;
pub use types::Precondition;
pub use types::ResourceConstraint;
pub use types::ResourceInfo;
pub use types::ResourceReport;
pub use types::ResourceSummary;
pub use types::SideEffect;
pub use types::TemporalConstraint;
pub use types::TemporalExample;
pub use types::TemporalMetadata;
pub use types::TemporalReport;
pub use types::Trigram;
pub use types::UseAfterCloseInfo;
pub use types::YieldInfo;
pub use cohesion::CohesionArgs;
pub use coupling::CouplingArgs;
pub use interface::InterfaceArgs;
pub use resources::ResourcesArgs;
pub use temporal::TemporalArgs;
pub use validation::check_analysis_depth;
pub use validation::check_ast_depth;
pub use validation::check_directory_file_count;
pub use validation::is_path_traversal_attempt;
pub use validation::read_file_safe;
pub use validation::saturating_count_add;
pub use validation::saturating_depth_increment;
pub use validation::validate_directory_path;
pub use validation::validate_file_path;
pub use validation::validate_file_path_in_project;
pub use validation::validate_file_size;
pub use validation::validate_function_name;
pub use validation::within_limit;
pub use validation::MAX_ANALYSIS_DEPTH;
pub use validation::MAX_AST_DEPTH;
pub use validation::MAX_CLASSES_PER_FILE;
pub use validation::MAX_CLASS_COMPLEXITY;
pub use validation::MAX_CONSTRAINTS_PER_FILE;
pub use validation::MAX_DIRECTORY_FILES;
pub use validation::MAX_FIELDS_PER_CLASS;
pub use validation::MAX_FILE_SIZE;
pub use validation::MAX_FUNCTION_NAME_LEN;
pub use validation::MAX_METHODS_PER_CLASS;
pub use validation::MAX_PATHS;
pub use validation::MAX_TRIGRAMS;
pub use validation::WARN_FILE_SIZE;

Modules§

cohesion
Cohesion command - LCOM4 (Lack of Cohesion of Methods) analysis for Python classes.
coupling
Coupling command - Cross-module coupling analysis
error
Error types for Pattern Analysis commands.
interface
Interface command - Public API extraction
resources
Resources Command - Resource Lifecycle Analysis
temporal
Temporal Command - Temporal Constraint Mining
types
Shared types for Pattern Analysis commands
validation
Input validation and path safety utilities for Pattern Analysis commands.

Constants§

SCHEMA_VERSION
Schema version for JSON output format. Increment when output schema changes in incompatible ways.