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]