This is an automated email from the ASF dual-hosted git repository.

jiayu pushed a commit to branch fix-deprecation-warning
in repository https://gitbox.apache.org/repos/asf/sedona.git

commit b06cdbe621df38fbf525365dd10ede75abcbdbeb
Author: Jia Yu <[email protected]>
AuthorDate: Fri Aug 8 00:54:41 2025 -0700

    Manually fixed all deprecation warnings
---
 python/sedona/__init__.py                          |  7 -------
 python/sedona/core/spatialOperator/__init__.py     | 24 ++++++++++++++--------
 python/sedona/raster_utils/SedonaUtils.py          |  8 +++++++-
 python/sedona/sql/__init__.py                      | 22 +++++++++++++++++---
 python/sedona/stac/__init__.py                     | 14 -------------
 python/sedona/stats/clustering/dbscan/__init__.py  |  2 +-
 .../stats/hotspot_detection/getis_ord/__init__.py  |  2 +-
 python/sedona/stats/weighting/__init__.py          |  2 +-
 python/sedona/utils/__init__.py                    | 18 +++++++++++++---
 python/sedona/utils/structured_adapter/__init__.py |  2 +-
 python/tests/test_path_compatibility.py            |  2 ++
 python/tests/test_path_compatibility_all.py        |  7 +++++++
 12 files changed, 70 insertions(+), 40 deletions(-)

diff --git a/python/sedona/__init__.py b/python/sedona/__init__.py
index 0daf946199..ed13c1d906 100644
--- a/python/sedona/__init__.py
+++ b/python/sedona/__init__.py
@@ -14,13 +14,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-import warnings
-
-warnings.warn(
-    "The 'sedona' package structure has been reorganized. Please update your 
imports to use 'sedona.spark' prefix instead.",
-    DeprecationWarning,
-    stacklevel=2,
-)
 from .version import version
 
 __all__ = ["version"]
diff --git a/python/sedona/core/spatialOperator/__init__.py 
b/python/sedona/core/spatialOperator/__init__.py
index 5b26056b71..bb16a73e3d 100644
--- a/python/sedona/core/spatialOperator/__init__.py
+++ b/python/sedona/core/spatialOperator/__init__.py
@@ -14,14 +14,22 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-
 import warnings
-from sedona.spark.core.spatialOperator import (
-    JoinQuery,
-    JoinQueryRaw,
-    KNNQuery,
-    RangeQuery,
-)
+from sedona.spark.core import spatialOperator
+
+
+def __getattr__(name):
+    if hasattr(spatialOperator, name):
+        warnings.warn(
+            f"Importing '{name}' from 'sedona.core.spatialOperator' is 
deprecated. Please use 'sedona.spark.core.spatialOperator.{name}' instead.",
+            DeprecationWarning,
+            stacklevel=2,
+        )
+        return getattr(spatialOperator, name)
+    raise AttributeError(
+        f"module 'sedona.core.spatialOperator' has no attribute '{name}'"
+    )
+
 
 warnings.warn(
     "Importing from 'sedona.core.spatialOperator' is deprecated. Please use 
'sedona.spark.core.spatialOperator' instead.",
@@ -29,4 +37,4 @@ warnings.warn(
     stacklevel=2,
 )
 
-__all__ = ["JoinQuery", "JoinQueryRaw", "KNNQuery", "RangeQuery"]
+__all__ = spatialOperator.__all__
diff --git a/python/sedona/raster_utils/SedonaUtils.py 
b/python/sedona/raster_utils/SedonaUtils.py
index af94c6b03b..31715bc7d6 100644
--- a/python/sedona/raster_utils/SedonaUtils.py
+++ b/python/sedona/raster_utils/SedonaUtils.py
@@ -14,7 +14,13 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-
+import warnings
 from sedona.spark.raster_utils.SedonaUtils import SedonaUtils
 
+warnings.warn(
+    "Importing from 'sedona.raster_utils.SedonaUtils' is deprecated. Please 
use 'sedona.spark.raster_utils.SedonaUtils' instead.",
+    DeprecationWarning,
+    stacklevel=2,
+)
+
 __all__ = ["SedonaUtils"]
diff --git a/python/sedona/sql/__init__.py b/python/sedona/sql/__init__.py
index 2f41765817..06cfe9b712 100644
--- a/python/sedona/sql/__init__.py
+++ b/python/sedona/sql/__init__.py
@@ -14,9 +14,25 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-
-# These allow use to access the __all__
-from sedona.spark.sql import *
+import warnings
 from sedona.spark import sql
 
+
+def __getattr__(name):
+    if hasattr(sql, name):
+        warnings.warn(
+            f"Importing '{name}' from 'sedona.sql' is deprecated. Please use 
'sedona.spark.sql.{name}' instead.",
+            DeprecationWarning,
+            stacklevel=2,
+        )
+        return getattr(sql, name)
+    raise AttributeError(f"module 'sedona.sql' has no attribute '{name}'")
+
+
+warnings.warn(
+    "Importing from 'sedona.sql' is deprecated. Please use 'sedona.spark.sql' 
instead.",
+    DeprecationWarning,
+    stacklevel=2,
+)
+
 __all__ = sql.__all__
diff --git a/python/sedona/stac/__init__.py b/python/sedona/stac/__init__.py
index a3d3c538b6..13a83393a9 100644
--- a/python/sedona/stac/__init__.py
+++ b/python/sedona/stac/__init__.py
@@ -14,17 +14,3 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-
-from sedona.spark.stac.client import Client
-
-import warnings
-
-warnings.warn(
-    "The 'sedona.stac' module is deprecated and will be removed in future 
versions. Please use 'sedona.spark.stac' instead.",
-    DeprecationWarning,
-    stacklevel=2,
-)
-
-__all__ = [
-    "Client",
-]
diff --git a/python/sedona/stats/clustering/dbscan/__init__.py 
b/python/sedona/stats/clustering/dbscan/__init__.py
index f458f52056..115c0a5228 100644
--- a/python/sedona/stats/clustering/dbscan/__init__.py
+++ b/python/sedona/stats/clustering/dbscan/__init__.py
@@ -20,7 +20,7 @@ from sedona.spark.stats.clustering.dbscan import dbscan
 import warnings
 
 warnings.warn(
-    "The 'sedona.stats.clustering.dbscan' module is deprecated and will be 
removed in future versions. Please use 'sedona.spark.stats' instead.",
+    "Importing from 'sedona.stats.clustering.dbscan' is deprecated and will be 
removed in future versions. Please use 'sedona.spark.stats.clustering' 
instead.",
     DeprecationWarning,
     stacklevel=2,
 )
diff --git a/python/sedona/stats/hotspot_detection/getis_ord/__init__.py 
b/python/sedona/stats/hotspot_detection/getis_ord/__init__.py
index a1b3c16a1a..6ada3ef11c 100644
--- a/python/sedona/stats/hotspot_detection/getis_ord/__init__.py
+++ b/python/sedona/stats/hotspot_detection/getis_ord/__init__.py
@@ -20,7 +20,7 @@ from sedona.spark.stats.hotspot_detection.getis_ord import 
g_local
 import warnings
 
 warnings.warn(
-    "The 'sedona.stats.hotspot_detection.getis_ord' module is deprecated and 
will be removed in future versions. Please use 'sedona.spark.stats' instead.",
+    "Importing from 'sedona.stats.hotspot_detection.getis_ord' is deprecated. 
Please use 'sedona.spark.stats.hotspot_detection.getis_ord' instead.",
     DeprecationWarning,
     stacklevel=2,
 )
diff --git a/python/sedona/stats/weighting/__init__.py 
b/python/sedona/stats/weighting/__init__.py
index 6b43d6d6cc..9573badc6c 100644
--- a/python/sedona/stats/weighting/__init__.py
+++ b/python/sedona/stats/weighting/__init__.py
@@ -23,7 +23,7 @@ from sedona.spark.stats.weighting import (
 import warnings
 
 warnings.warn(
-    "The 'sedona.stats.weighting' module is deprecated and will be removed in 
future versions. Please use 'sedona.spark.stats' instead.",
+    "Importing from 'sedona.stats.weighting' is deprecated. Please use 
'sedona.spark.stats.weighting' instead.",
     DeprecationWarning,
     stacklevel=2,
 )
diff --git a/python/sedona/utils/__init__.py b/python/sedona/utils/__init__.py
index 4cef83cd70..9b4c7835cc 100644
--- a/python/sedona/utils/__init__.py
+++ b/python/sedona/utils/__init__.py
@@ -15,12 +15,24 @@
 # specific language governing permissions and limitations
 # under the License.
 import warnings
-from sedona.spark.utils.serde import KryoSerializer, SedonaKryoRegistrator
+from sedona.spark import utils
+
+
+def __getattr__(name):
+    if hasattr(utils, name):
+        warnings.warn(
+            f"Importing '{name}' from 'sedona.utils' is deprecated. Please use 
'sedona.spark.utils.{name}' instead.",
+            DeprecationWarning,
+            stacklevel=2,
+        )
+        return getattr(utils, name)
+    raise AttributeError(f"module 'sedona.utils' has no attribute '{name}'")
+
 
 warnings.warn(
-    "The 'sedona.utils' package structure has been reorganized. Please update 
your imports to use 'sedona.spark.utils' prefix instead.",
+    "Importing from 'sedona.utils' is deprecated. Please use 
'sedona.spark.utils' instead.",
     DeprecationWarning,
     stacklevel=2,
 )
 
-__all__ = ["KryoSerializer", "SedonaKryoRegistrator"]
+__all__ = utils.__all__
diff --git a/python/sedona/utils/structured_adapter/__init__.py 
b/python/sedona/utils/structured_adapter/__init__.py
index 5beada9cd1..1a87a41a41 100644
--- a/python/sedona/utils/structured_adapter/__init__.py
+++ b/python/sedona/utils/structured_adapter/__init__.py
@@ -20,7 +20,7 @@ from sedona.spark.utils.structured_adapter import 
StructuredAdapter
 import warnings
 
 warnings.warn(
-    "The 'sedona.utils.structured_adapter' module is deprecated and will be 
removed in future versions. Please use 'sedona.spark.utils.structured_adapter' 
instead.",
+    "Importing from 'sedona.utils.structured_adapter' is deprecated. Please 
use 'sedona.spark.utils.structured_adapter' instead.",
     DeprecationWarning,
     stacklevel=2,
 )
diff --git a/python/tests/test_path_compatibility.py 
b/python/tests/test_path_compatibility.py
index 2ea74ff26e..67763025ab 100644
--- a/python/tests/test_path_compatibility.py
+++ b/python/tests/test_path_compatibility.py
@@ -46,6 +46,7 @@ from sedona.stats.weighting import (
 )
 from sedona.utils.adapter import Adapter
 from sedona.utils.spatial_rdd_parser import GeoData
+from sedona.utils.structured_adapter import StructuredAdapter
 from tests.test_base import TestBase
 from sedona.raster_utils.SedonaUtils import SedonaUtils
 from sedona.sql import ST_MakePoint, ST_Y, ST_Touches, ST_Envelope_Aggr
@@ -107,6 +108,7 @@ class TestPathCompatibility(TestBase):
         # Test utility imports
         assert Adapter is not None
         assert GeoData is not None
+        assert StructuredAdapter is not None
 
     def test_format_mapper_imports(self):
         # Test GeoJsonReader and ShapefileReader imports
diff --git a/python/tests/test_path_compatibility_all.py 
b/python/tests/test_path_compatibility_all.py
index 8cd8c0cd70..9a37ac4ff2 100644
--- a/python/tests/test_path_compatibility_all.py
+++ b/python/tests/test_path_compatibility_all.py
@@ -93,6 +93,13 @@ class TestPathCompatibilityAll(TestBase):
         # Test raster utils imports
         assert SedonaUtils is not None
 
+    def test_import_df_functions_from_sedona_sql(self):
+        # one from each module
+        assert ST_MakePoint is not None
+        assert ST_Y is not None
+        assert ST_Touches is not None
+        assert ST_Envelope_Aggr is not None
+
     def test_geoarrow_imports(self):
         assert create_spatial_dataframe is not None
         assert dataframe_to_arrow is not None

Reply via email to