pysnt.common_module module#
Common functionality for PySNT submodules.
This module provides shared functionality for all PySNT submodules to eliminate code duplication in __init__.py files.
- create_dynamic_placeholder_class(java_class_name: str, javadoc_name: str = None)[source]#
Create a dynamic placeholder class that redirects to the actual Java class when available.
This solves the issue where users import classes before initialization: from pysnt.analysis import TreeStatistics # Gets placeholder pysnt.initialize() # Replaces module globals, but not the imported reference TreeStatistics() # Would fail without this dynamic approach
- Parameters:
java_class_name (str) – Full Java class name (e.g., ‘sc.fiji.snt.analysis.TreeStatistics’)
javadoc_name (str, optional) – Name for javadoc link. If None, uses the simple class name.
- Returns:
Dynamic placeholder class that redirects to Java class when available
- Return type:
type
- setup_module_classes(package_name: str, curated_classes: List[str], extended_classes: List[str], globals_dict: Dict[str, Any], discovery_packages: List[str] | None = None, include_interfaces: bool = False) Dict[str, Any][source]#
Setup function that handles all common module initialization.
This function creates all the standard functionality that PySNT modules need: - Dynamic placeholder classes for curated classes - Class registries for curated and extended classes - Java setup function that loads curated classes - Discovery function for extended classes - get_class(), list_classes(), and other standard functions - Dynamic __getattr__ and __dir__ functions
- Parameters:
package_name (str) – Java package name (e.g., “sc.fiji.snt.analysis”)
curated_classes (List[str]) – Classes that are always loaded and available for direct import
extended_classes (List[str]) – Classes that are loaded on-demand via get_class()
globals_dict (Dict[str, Any]) – The module’s globals() dict to update with Java classes
discovery_packages (List[str], optional) – Additional packages to search for classes (defaults to [package_name])
include_interfaces (bool, default False) – Whether to include Java interfaces in discovery
- Returns:
Dictionary containing all the module functions and data
- Return type:
Dict[str, Any]