| """ | |
| Machine Learning enhancers for GeoBotv1 | |
| Optional but powerful additions once the causal backbone is built. | |
| Critical principle: These help discover new relationships but must not replace causality. | |
| """ | |
| from .risk_scoring import RiskScorer | |
| from .feature_discovery import FeatureDiscovery | |
| from .embedding import GeopoliticalEmbedding | |
| # GNN imports are optional (require PyTorch) | |
| try: | |
| from .graph_neural_networks import ( | |
| CausalGNN, | |
| GeopoliticalNetworkGNN, | |
| AttentionGNN, | |
| MessagePassingCausalGNN, | |
| GNNTrainer, | |
| NetworkToGraph | |
| ) | |
| _has_gnn = True | |
| except ImportError: | |
| _has_gnn = False | |
| __all__ = [ | |
| "RiskScorer", | |
| "FeatureDiscovery", | |
| "GeopoliticalEmbedding", | |
| ] | |
| if _has_gnn: | |
| __all__.extend([ | |
| "CausalGNN", | |
| "GeopoliticalNetworkGNN", | |
| "AttentionGNN", | |
| "MessagePassingCausalGNN", | |
| "GNNTrainer", | |
| "NetworkToGraph", | |
| ]) | |