0.1.8
Loading...
Searching...
No Matches
__init__.py
Go to the documentation of this file.
1"""
2PyHelios Plugins Module
3
4Cross-platform interface to Helios native libraries.
5Automatically detects platform and loads appropriate library files.
6"""
7
8import os
9import logging
10from .loader import load_helios_library, get_library_info, is_native_library_available, detect_available_plugins
11
12# Configure logging for plugin loading
13logger = logging.getLogger(__name__)
14
15
16# Note: WeberPennTree asset syncing is now handled by the build system
17# Assets are copied to pyhelios_build/build/plugins/weberpenntree/ during build
18# and accessed via the working directory context manager in WeberPennTree.py
19
20# Load the appropriate library for this platform
21helios_lib = load_helios_library()
22library_info = get_library_info()
23
24# Log library loading information
25if library_info['is_mock']:
26 logger.info("PyHelios loaded in development mock mode")
27 logger.info(f"Platform: {library_info['platform']}")
28 if library_info['available_files']:
29 logger.info(f"Available library files: {library_info['available_files']}")
30 else:
31 logger.info("No native library files found in plugins directory")
32else:
33 logger.info(f"PyHelios native library loaded successfully")
34 logger.info(f"Platform: {library_info['platform']}")
35 if 'library_path' in library_info:
36 logger.info(f"Library path: {library_info['library_path']}")
37
38 # Show available files for debugging
39 if library_info['available_files']:
40 logger.debug(f"Available library files: {library_info['available_files']}")
41
42# Expose library information for debugging
43def get_plugin_info():
44 """Get information about loaded plugins and libraries."""
45 info = get_library_info()
46 info['native_available'] = is_native_library_available()
47 info['available_plugins'] = detect_available_plugins()
48 return info
49
51 """Print current plugin status for debugging."""
52 info = get_plugin_info()
53 print(f"PyHelios Plugin Status:")
54 print(f" Platform: {info['platform']}")
55 print(f" Native library available: {info['native_available']}")
56 print(f" Mock mode: {info['is_mock']}")
57 if info['available_files']:
58 print(f" Available library files: {', '.join(info['available_files'])}")
59 if 'library_path' in info:
60 print(f" Loaded library: {info['library_path']}")
61
62# For backward compatibility - ensure helios_lib is always available
63__all__ = ['helios_lib', 'get_plugin_info', 'print_plugin_status']
64
print_plugin_status()
Print current plugin status for debugging.
Definition __init__.py:51
get_plugin_info()
Get information about loaded plugins and libraries.
Definition __init__.py:44