ml-analytics-tools 0.7.1__tar.gz → 0.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/PKG-INFO +1 -1
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/data_connector.py +2 -4
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/PKG-INFO +1 -1
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/pyproject.toml +1 -1
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_db_s3.py +17 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/LICENSE +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/README.md +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/__init__.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/aws_auth.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/cli.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/gsheet_connector.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/model_manager.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/model_tools.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/s3_connector.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/sf_connector.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/slack_connector.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/spark_connector.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/tunnel_manager.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics/utils.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/SOURCES.txt +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/dependency_links.txt +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/entry_points.txt +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/requires.txt +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/top_level.txt +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/setup.cfg +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_aws_auth.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_gsheet_connector.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_identity_column.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_model_manager.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_model_tools.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_s3_redshift_validation.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_sf_connector.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_tunnel_manager.py +0 -0
- {ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/tests/test_utils.py +0 -0
|
@@ -678,10 +678,8 @@ class DataConnector:
|
|
|
678
678
|
self.cursor = self.connection.cursor()
|
|
679
679
|
self._start_idle_timer() # Start idle timer on new connection
|
|
680
680
|
|
|
681
|
-
#
|
|
682
|
-
|
|
683
|
-
self.s3 = self._get_s3_for_bucket(self._s3_bucket)
|
|
684
|
-
|
|
681
|
+
# Defer S3 connector initialization until an S3 operation is actually required.
|
|
682
|
+
# This avoids AWS credential refresh/SSO login when only the database connection is used.
|
|
685
683
|
except Exception as e:
|
|
686
684
|
log_and_raise_error(self._logger, f"Failed to connect to {self.engine.title()}: {e}")
|
|
687
685
|
|
|
@@ -650,6 +650,23 @@ class TestThreadSafeConnect:
|
|
|
650
650
|
|
|
651
651
|
assert mock_redshift.connect.call_count == 1
|
|
652
652
|
|
|
653
|
+
def test_connect_does_not_initialize_s3_when_default_bucket_configured(self, mock_credentials):
|
|
654
|
+
"""connect() should not initialize S3 unless it's actually used."""
|
|
655
|
+
with patch("ml_analytics.data_connector.redshift_connector") as mock_redshift, patch(
|
|
656
|
+
"ml_analytics.s3_connector.boto3"
|
|
657
|
+
) as mock_boto3:
|
|
658
|
+
mock_connection = MagicMock()
|
|
659
|
+
mock_connection.closed = False
|
|
660
|
+
mock_cursor = MagicMock()
|
|
661
|
+
mock_connection.cursor.return_value = mock_cursor
|
|
662
|
+
mock_redshift.connect.return_value = mock_connection
|
|
663
|
+
|
|
664
|
+
dc = DataConnector()
|
|
665
|
+
dc.connect()
|
|
666
|
+
|
|
667
|
+
assert dc.s3 is None
|
|
668
|
+
assert mock_boto3.Session.call_count == 0
|
|
669
|
+
|
|
653
670
|
|
|
654
671
|
# === Tests for multi-statement SQL in unload_to_s3 ===
|
|
655
672
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/requires.txt
RENAMED
|
File without changes
|
{ml_analytics_tools-0.7.1 → ml_analytics_tools-0.7.2}/ml_analytics_tools.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|