diff --git a/libs/community/langchain_community/document_loaders/cube_semantic.py b/libs/community/langchain_community/document_loaders/cube_semantic.py index 1436d759f58..94198b848ad 100644 --- a/libs/community/langchain_community/document_loaders/cube_semantic.py +++ b/libs/community/langchain_community/document_loaders/cube_semantic.py @@ -152,6 +152,11 @@ class CubeSemanticLoader(BaseLoader): item_name = str(item.get("name")) item_type = str(item.get("type")) + is_public = bool(item.get("public")) + if not is_public: + logger.info("Skipping %s because it is not public.", item_name) + continue + if ( self.load_dimension_values and column_member_type == "dimension" diff --git a/libs/community/tests/unit_tests/document_loaders/test_cube_semantic.py b/libs/community/tests/unit_tests/document_loaders/test_cube_semantic.py index 530033a8d24..9eb9e5d30f7 100644 --- a/libs/community/tests/unit_tests/document_loaders/test_cube_semantic.py +++ b/libs/community/tests/unit_tests/document_loaders/test_cube_semantic.py @@ -43,7 +43,15 @@ class TestCubeSemanticLoader(unittest.TestCase): "type": "string", "title": "Test Title", "description": "Test Description", - } + "public": True, + }, + { + "name": "hidden_dimension", + "type": "string", + "title": "Hidden", + "description": "Hidden", + "public": False, + }, ], } ] @@ -52,10 +60,17 @@ class TestCubeSemanticLoader(unittest.TestCase): mock_get_dimension_values.return_value = ["value1", "value2"] - documents = self.loader.load() + with self.assertLogs(level="INFO") as cm: + documents = self.loader.load() + self.assertEqual(len(documents), 1) self.assertEqual(documents[0].page_content, "Test Title, Test Description") self.assertEqual(documents[0].metadata["column_values"], ["value1", "value2"]) + self.assertIn( + "INFO:langchain_community.document_loaders.cube_semantic:" + "Skipping hidden_dimension because it is not public.", + cm.output, + ) if __name__ == "__main__":