diff --git a/src/intugle/link_predictor/__init__.py b/src/intugle/link_predictor/__init__.py index 139597f..2e1fb3b 100644 --- a/src/intugle/link_predictor/__init__.py +++ b/src/intugle/link_predictor/__init__.py @@ -1,2 +1,24 @@ +""" +Link Predictor Module +This module provides functionality for predicting relationships between datasets +based on column profiling, data type analysis, and LLM-based inference. +""" +from intugle.link_predictor.models import ( + LinkPredictionResult, + PredictedLink, +) +from intugle.link_predictor.predictor import ( + LinkPredictionSaver, + LinkPredictor, + NoLinksFoundError, +) + +__all__ = [ + "LinkPredictor", + "LinkPredictionSaver", + "PredictedLink", + "LinkPredictionResult", + "NoLinksFoundError", +] diff --git a/tests/link_predictor/test_public_api.py b/tests/link_predictor/test_public_api.py new file mode 100644 index 0000000..c140054 --- /dev/null +++ b/tests/link_predictor/test_public_api.py @@ -0,0 +1,32 @@ +"""Tests for link_predictor public API exports in __init__.py.""" + + +def test_public_api_imports_from_package(): + """Users can import main classes directly from intugle.link_predictor.""" + from intugle.link_predictor import ( + LinkPredictionResult, + LinkPredictionSaver, + LinkPredictor, + NoLinksFoundError, + PredictedLink, + ) + + assert LinkPredictor is not None + assert LinkPredictionSaver is not None + assert PredictedLink is not None + assert LinkPredictionResult is not None + assert NoLinksFoundError is not None + + +def test_all_exports_match_public_api(): + """__all__ should expose exactly the documented public API.""" + import intugle.link_predictor as link_predictor + + expected = { + "LinkPredictor", + "LinkPredictionSaver", + "PredictedLink", + "LinkPredictionResult", + "NoLinksFoundError", + } + assert set(link_predictor.__all__) == expected