From 37f8132d7e0ee8703c00751821017449440930d7 Mon Sep 17 00:00:00 2001 From: John Bampton Date: Sun, 13 Oct 2024 12:07:18 +1000 Subject: [PATCH] [CI] Add pre-commit hook `isort` to sort Python imports (#1633) "isort is a Python utility / library to sort imports alphabetically and automatically separate into sections and by type." https://github.com/PyCQA/isort https://pycqa.github.io/isort/docs/configuration/pre-commit.html https://pycqa.github.io/isort/docs/configuration/black_compatibility.html --- .pre-commit-config.yaml | 5 ++ pyproject.toml | 2 + python/sedona/core/SpatialRDD/__init__.py | 6 +-- .../sedona/core/SpatialRDD/linestring_rdd.py | 6 +-- python/sedona/core/SpatialRDD/point_rdd.py | 8 ++-- python/sedona/core/SpatialRDD/polygon_rdd.py | 8 ++-- .../sedona/core/SpatialRDD/rectangle_rdd.py | 6 +-- python/sedona/core/SpatialRDD/spatial_rdd.py | 13 +++-- python/sedona/core/formatMapper/__init__.py | 2 +- python/sedona/core/formatMapper/disc_utils.py | 2 +- .../core/formatMapper/geo_json_reader.py | 4 +- .../shapefileParser/shape_file_reader.py | 4 +- python/sedona/core/formatMapper/wkb_reader.py | 4 +- python/sedona/core/formatMapper/wkt_reader.py | 4 +- python/sedona/core/geom/circle.py | 1 - python/sedona/core/geom/envelope.py | 1 - python/sedona/core/geom/shapely1/circle.py | 6 +-- python/sedona/core/geom/shapely1/envelope.py | 7 +-- python/sedona/core/geom/shapely2/circle.py | 6 +-- python/sedona/core/geom/shapely2/envelope.py | 5 +- python/sedona/core/jvm/config.py | 7 +-- .../sedona/core/spatialOperator/__init__.py | 4 +- .../sedona/core/spatialOperator/join_query.py | 2 +- .../core/spatialOperator/join_query_raw.py | 4 +- .../sedona/core/spatialOperator/knn_query.py | 2 +- .../core/spatialOperator/range_query.py | 2 +- .../core/spatialOperator/range_query_raw.py | 2 +- python/sedona/core/spatialOperator/rdd.py | 2 +- python/sedona/maps/SedonaMapUtils.py | 1 + python/sedona/maps/SedonaPyDeck.py | 6 +-- python/sedona/raster/data_buffer.py | 3 +- python/sedona/raster/meta.py | 2 +- python/sedona/raster/raster_serde.py | 17 +++---- python/sedona/raster/sample_model.py | 3 +- python/sedona/raster/sedona_raster.py | 9 ++-- python/sedona/raster_utils/SedonaUtils.py | 2 +- python/sedona/spark/__init__.py | 48 +++++++++---------- python/sedona/sql/dataframe_api.py | 15 ++---- python/sedona/sql/st_aggregates.py | 1 - python/sedona/sql/st_constructors.py | 2 - python/sedona/sql/st_functions.py | 4 +- python/sedona/sql/st_predicates.py | 4 +- python/sedona/sql/types.py | 4 +- python/sedona/utils/__init__.py | 3 +- python/sedona/utils/adapter.py | 2 +- python/sedona/utils/decorators.py | 2 +- python/sedona/utils/geometry_serde.py | 21 ++++---- python/sedona/utils/geometry_serde_general.py | 3 +- python/sedona/utils/meta.py | 3 +- python/sedona/utils/prep.py | 10 ++-- python/sedona/utils/spatial_rdd_parser.py | 3 +- python/setup.py | 4 +- python/tests/__init__.py | 1 - .../core/test_avoiding_python_jvm_serde_df.py | 13 +++-- .../test_avoiding_python_jvm_serde_to_rdd.py | 14 +++--- python/tests/core/test_config.py | 3 +- .../tests/core/test_core_geom_primitives.py | 3 +- python/tests/core/test_core_rdd.py | 6 +-- python/tests/core/test_rdd.py | 23 +++++---- .../tests/core/test_spatial_rdd_from_disc.py | 24 +++++----- .../format_mapper/test_geo_json_reader.py | 7 ++- .../format_mapper/test_shapefile_reader.py | 6 +-- python/tests/format_mapper/test_wkb_reader.py | 3 +- python/tests/format_mapper/test_wkt_reader.py | 3 +- .../maps/test_sedonakepler_visualization.py | 14 ++++-- python/tests/maps/test_sedonapydeck.py | 13 ++--- python/tests/properties/crs_transform.py | 2 +- .../tests/properties/linestring_properties.py | 3 +- python/tests/properties/point_properties.py | 3 +- python/tests/properties/polygon_properties.py | 3 +- python/tests/raster/test_meta.py | 3 +- python/tests/raster/test_pandas_udf.py | 12 ++--- python/tests/raster/test_serde.py | 9 ++-- .../raster_viz_utils/test_sedonautils.py | 5 +- .../tests/serialization/test_deserializers.py | 13 +++-- .../test_direct_serialization.py | 2 +- .../serialization/test_rdd_serialization.py | 5 +- .../tests/serialization/test_serializers.py | 17 ++++--- .../serialization/test_with_sc_parellize.py | 6 +-- .../tests/spatial_operator/test_join_base.py | 6 +-- .../test_join_query_correctness.py | 10 ++-- .../spatial_operator/test_linestring_join.py | 7 +-- .../spatial_operator/test_linestring_knn.py | 8 ++-- .../spatial_operator/test_linestring_range.py | 8 ++-- .../tests/spatial_operator/test_point_join.py | 7 +-- .../tests/spatial_operator/test_point_knn.py | 8 ++-- .../spatial_operator/test_point_range.py | 9 ++-- .../spatial_operator/test_polygon_join.py | 7 +-- .../spatial_operator/test_polygon_knn.py | 8 ++-- .../spatial_operator/test_polygon_range.py | 9 ++-- .../spatial_operator/test_rectangle_join.py | 5 +- .../spatial_operator/test_rectangle_knn.py | 10 ++-- .../spatial_operator/test_rectangle_range.py | 9 ++-- python/tests/spatial_rdd/test_circle_rdd.py | 7 +-- .../tests/spatial_rdd/test_linestring_rdd.py | 15 +++--- python/tests/spatial_rdd/test_point_rdd.py | 21 ++++---- python/tests/spatial_rdd/test_polygon_rdd.py | 27 ++++++----- .../tests/spatial_rdd/test_rectangle_rdd.py | 8 ++-- python/tests/spatial_rdd/test_spatial_rdd.py | 6 +-- .../spatial_rdd/test_spatial_rdd_writer.py | 6 +-- python/tests/sql/test_adapter.py | 22 ++++----- python/tests/sql/test_aggregate_functions.py | 1 - python/tests/sql/test_constructor_test.py | 6 +-- python/tests/sql/test_dataframe_api.py | 18 +++---- python/tests/sql/test_function.py | 15 +++--- python/tests/sql/test_geoparquet.py | 18 +++---- python/tests/sql/test_predicate.py | 4 +- python/tests/sql/test_predicate_join.py | 15 +++--- python/tests/sql/test_shapefile.py | 4 +- .../test_spatial_rdd_to_spatial_dataframe.py | 11 ++--- python/tests/sql/test_st_function_imports.py | 10 ++-- python/tests/stats/test_dbscan.py | 5 +- python/tests/streaming/spark/cases_builder.py | 2 +- .../spark/test_constructor_functions.py | 12 ++--- python/tests/test_assign_raw_spatial_rdd.py | 5 +- python/tests/test_base.py | 1 + python/tests/test_circle.py | 1 - python/tests/test_scala_example.py | 12 ++--- python/tests/utils/test_crs_transformation.py | 9 ++-- python/tests/utils/test_geo_spark_meta.py | 3 +- python/tests/utils/test_geometry_serde.py | 8 ++-- python/tests/utils/test_geomserde_speedup.py | 6 +-- 122 files changed, 448 insertions(+), 454 deletions(-) create mode 100644 pyproject.toml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 69dd4cb295..9fdcd749f4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,6 +14,11 @@ repos: rev: 24.10.0 hooks: - id: black-jupyter + - repo: https://github.com/pycqa/isort + rev: 5.13.2 + hooks: + - id: isort + name: isort (python) - repo: https://github.com/codespell-project/codespell rev: v2.3.0 hooks: diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..5d7bf33d94 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,2 @@ +[tool.isort] +profile = "black" diff --git a/python/sedona/core/SpatialRDD/__init__.py b/python/sedona/core/SpatialRDD/__init__.py index c39df78353..368af1fcde 100644 --- a/python/sedona/core/SpatialRDD/__init__.py +++ b/python/sedona/core/SpatialRDD/__init__.py @@ -15,13 +15,11 @@ # specific language governing permissions and limitations # under the License. -from .point_rdd import PointRDD from .circle_rdd import CircleRDD from .linestring_rdd import LineStringRDD +from .point_rdd import PointRDD from .polygon_rdd import PolygonRDD -from .rectangle_rdd import RectangleRDD -from .rectangle_rdd import SpatialRDD - +from .rectangle_rdd import RectangleRDD, SpatialRDD __all__ = [ "PolygonRDD", diff --git a/python/sedona/core/SpatialRDD/linestring_rdd.py b/python/sedona/core/SpatialRDD/linestring_rdd.py index 63df1587cb..fcdf9450ec 100644 --- a/python/sedona/core/SpatialRDD/linestring_rdd.py +++ b/python/sedona/core/SpatialRDD/linestring_rdd.py @@ -15,13 +15,13 @@ # specific language governing permissions and limitations # under the License. -from pyspark import SparkContext, StorageLevel, RDD +from pyspark import RDD, SparkContext, StorageLevel -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD, JvmSpatialRDD -from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory from sedona.core.enums import FileDataSplitter from sedona.core.enums.file_data_splitter import FileSplitterJvm from sedona.core.jvm.translate import PythonRddToJavaRDDAdapter +from sedona.core.SpatialRDD.spatial_rdd import JvmSpatialRDD, SpatialRDD +from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/core/SpatialRDD/point_rdd.py b/python/sedona/core/SpatialRDD/point_rdd.py index dbe401db6d..54205cad60 100644 --- a/python/sedona/core/SpatialRDD/point_rdd.py +++ b/python/sedona/core/SpatialRDD/point_rdd.py @@ -15,12 +15,12 @@ # specific language governing permissions and limitations # under the License. -from pyspark import SparkContext, StorageLevel, RDD +from pyspark import RDD, SparkContext, StorageLevel -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD, JvmSpatialRDD -from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory -from sedona.core.enums.file_data_splitter import FileSplitterJvm, FileDataSplitter +from sedona.core.enums.file_data_splitter import FileDataSplitter, FileSplitterJvm from sedona.core.jvm.translate import PythonRddToJavaRDDAdapter +from sedona.core.SpatialRDD.spatial_rdd import JvmSpatialRDD, SpatialRDD +from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/core/SpatialRDD/polygon_rdd.py b/python/sedona/core/SpatialRDD/polygon_rdd.py index 072776980c..ab6dfa4637 100644 --- a/python/sedona/core/SpatialRDD/polygon_rdd.py +++ b/python/sedona/core/SpatialRDD/polygon_rdd.py @@ -15,12 +15,12 @@ # specific language governing permissions and limitations # under the License. -from pyspark import SparkContext, StorageLevel, RDD +from pyspark import RDD, SparkContext, StorageLevel -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD, JvmSpatialRDD -from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory -from sedona.core.enums.file_data_splitter import FileSplitterJvm, FileDataSplitter +from sedona.core.enums.file_data_splitter import FileDataSplitter, FileSplitterJvm from sedona.core.jvm.translate import PythonRddToJavaRDDAdapter +from sedona.core.SpatialRDD.spatial_rdd import JvmSpatialRDD, SpatialRDD +from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/core/SpatialRDD/rectangle_rdd.py b/python/sedona/core/SpatialRDD/rectangle_rdd.py index d5de40d5be..3d8e457ef2 100644 --- a/python/sedona/core/SpatialRDD/rectangle_rdd.py +++ b/python/sedona/core/SpatialRDD/rectangle_rdd.py @@ -15,11 +15,11 @@ # specific language governing permissions and limitations # under the License. -from pyspark import SparkContext, StorageLevel, RDD +from pyspark import RDD, SparkContext, StorageLevel -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD, JvmSpatialRDD +from sedona.core.enums.file_data_splitter import FileDataSplitter, FileSplitterJvm +from sedona.core.SpatialRDD.spatial_rdd import JvmSpatialRDD, SpatialRDD from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory -from sedona.core.enums.file_data_splitter import FileSplitterJvm, FileDataSplitter from sedona.utils.jvm import JvmStorageLevel from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/core/SpatialRDD/spatial_rdd.py b/python/sedona/core/SpatialRDD/spatial_rdd.py index 5b3376437a..a373309d8d 100644 --- a/python/sedona/core/SpatialRDD/spatial_rdd.py +++ b/python/sedona/core/SpatialRDD/spatial_rdd.py @@ -16,20 +16,19 @@ # under the License. import pickle -from typing import Optional, List, Union +from typing import List, Optional, Union import attr from py4j.java_gateway import get_field -from pyspark import SparkContext, RDD +from pyspark import RDD, SparkContext, StorageLevel from pyspark.sql import SparkSession -from pyspark import StorageLevel -from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory -from sedona.core.enums.grid_type import GridTypeJvm, GridType -from sedona.core.enums.index_type import IndexTypeJvm, IndexType +from sedona.core.enums.grid_type import GridType, GridTypeJvm +from sedona.core.enums.index_type import IndexType, IndexTypeJvm from sedona.core.enums.spatial import SpatialType from sedona.core.geom.envelope import Envelope -from sedona.core.jvm.translate import SedonaPythonConverter, JvmSedonaPythonConverter +from sedona.core.jvm.translate import JvmSedonaPythonConverter, SedonaPythonConverter +from sedona.core.SpatialRDD.spatial_rdd_factory import SpatialRDDFactory from sedona.utils.decorators import require from sedona.utils.jvm import JvmStorageLevel from sedona.utils.spatial_rdd_parser import SedonaPickler diff --git a/python/sedona/core/formatMapper/__init__.py b/python/sedona/core/formatMapper/__init__.py index 0daadc2177..29315b8946 100644 --- a/python/sedona/core/formatMapper/__init__.py +++ b/python/sedona/core/formatMapper/__init__.py @@ -16,7 +16,7 @@ # under the License. from .geo_json_reader import GeoJsonReader -from .wkt_reader import WktReader from .wkb_reader import WkbReader +from .wkt_reader import WktReader __all__ = ["GeoJsonReader", "WktReader", "WkbReader"] diff --git a/python/sedona/core/formatMapper/disc_utils.py b/python/sedona/core/formatMapper/disc_utils.py index 34d6d17482..e5b8256d35 100644 --- a/python/sedona/core/formatMapper/disc_utils.py +++ b/python/sedona/core/formatMapper/disc_utils.py @@ -19,8 +19,8 @@ from pyspark import SparkContext -from sedona.core.SpatialRDD import SpatialRDD, PolygonRDD, LineStringRDD, PointRDD from sedona.core.jvm.translate import SpatialObjectLoaderAdapter +from sedona.core.SpatialRDD import LineStringRDD, PointRDD, PolygonRDD, SpatialRDD from sedona.utils.decorators import require diff --git a/python/sedona/core/formatMapper/geo_json_reader.py b/python/sedona/core/formatMapper/geo_json_reader.py index e0eeec695d..7b1784f0cf 100644 --- a/python/sedona/core/formatMapper/geo_json_reader.py +++ b/python/sedona/core/formatMapper/geo_json_reader.py @@ -15,10 +15,10 @@ # specific language governing permissions and limitations # under the License. -from pyspark import SparkContext, RDD +from pyspark import RDD, SparkContext -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.formatMapper.geo_reader import GeoDataReader +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/core/formatMapper/shapefileParser/shape_file_reader.py b/python/sedona/core/formatMapper/shapefileParser/shape_file_reader.py index 48efe0eba0..4c45609655 100644 --- a/python/sedona/core/formatMapper/shapefileParser/shape_file_reader.py +++ b/python/sedona/core/formatMapper/shapefileParser/shape_file_reader.py @@ -18,9 +18,9 @@ import attr from pyspark import SparkContext -from sedona.core.SpatialRDD import PolygonRDD, PointRDD, LineStringRDD -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.formatMapper.geo_reader import GeoDataReader +from sedona.core.SpatialRDD import LineStringRDD, PointRDD, PolygonRDD +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/core/formatMapper/wkb_reader.py b/python/sedona/core/formatMapper/wkb_reader.py index 23cc27c9dd..45bbc5acdb 100644 --- a/python/sedona/core/formatMapper/wkb_reader.py +++ b/python/sedona/core/formatMapper/wkb_reader.py @@ -15,10 +15,10 @@ # specific language governing permissions and limitations # under the License. -from pyspark import SparkContext, RDD +from pyspark import RDD, SparkContext -from sedona.core.SpatialRDD import SpatialRDD from sedona.core.formatMapper.geo_reader import GeoDataReader +from sedona.core.SpatialRDD import SpatialRDD from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/core/formatMapper/wkt_reader.py b/python/sedona/core/formatMapper/wkt_reader.py index 499bbbda59..7d5689ecee 100644 --- a/python/sedona/core/formatMapper/wkt_reader.py +++ b/python/sedona/core/formatMapper/wkt_reader.py @@ -15,10 +15,10 @@ # specific language governing permissions and limitations # under the License. -from pyspark import SparkContext, RDD +from pyspark import RDD, SparkContext -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.formatMapper.geo_reader import GeoDataReader +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/core/geom/circle.py b/python/sedona/core/geom/circle.py index 669259da53..9550ea2c63 100644 --- a/python/sedona/core/geom/circle.py +++ b/python/sedona/core/geom/circle.py @@ -17,7 +17,6 @@ import shapely - if shapely.__version__.startswith("2."): from .shapely2.circle import Circle else: diff --git a/python/sedona/core/geom/envelope.py b/python/sedona/core/geom/envelope.py index db2ec5c4c7..5456f2a420 100644 --- a/python/sedona/core/geom/envelope.py +++ b/python/sedona/core/geom/envelope.py @@ -17,7 +17,6 @@ import shapely - if shapely.__version__.startswith("2."): from .shapely2.envelope import Envelope else: diff --git a/python/sedona/core/geom/shapely1/circle.py b/python/sedona/core/geom/shapely1/circle.py index 787468f526..f227e748c7 100644 --- a/python/sedona/core/geom/shapely1/circle.py +++ b/python/sedona/core/geom/shapely1/circle.py @@ -18,12 +18,12 @@ from math import sqrt from shapely.geometry import ( - Polygon, - Point, LineString, + MultiLineString, MultiPoint, MultiPolygon, - MultiLineString, + Point, + Polygon, ) from shapely.geometry.base import BaseGeometry diff --git a/python/sedona/core/geom/shapely1/envelope.py b/python/sedona/core/geom/shapely1/envelope.py index bb16cbc30c..df49e61505 100644 --- a/python/sedona/core/geom/shapely1/envelope.py +++ b/python/sedona/core/geom/shapely1/envelope.py @@ -15,12 +15,13 @@ # specific language governing permissions and limitations # under the License. -from shapely.geometry import Polygon, Point +import math +import pickle + +from shapely.geometry import Point, Polygon from shapely.geometry.base import BaseGeometry from sedona.utils.decorators import require -import math -import pickle class Envelope(Polygon): diff --git a/python/sedona/core/geom/shapely2/circle.py b/python/sedona/core/geom/shapely2/circle.py index 3147fc1f99..859d1ef3b2 100644 --- a/python/sedona/core/geom/shapely2/circle.py +++ b/python/sedona/core/geom/shapely2/circle.py @@ -18,12 +18,12 @@ from math import sqrt from shapely.geometry import ( - Polygon, - Point, LineString, + MultiLineString, MultiPoint, MultiPolygon, - MultiLineString, + Point, + Polygon, box, ) from shapely.geometry.base import BaseGeometry diff --git a/python/sedona/core/geom/shapely2/envelope.py b/python/sedona/core/geom/shapely2/envelope.py index fb95434164..6a5aeb0787 100644 --- a/python/sedona/core/geom/shapely2/envelope.py +++ b/python/sedona/core/geom/shapely2/envelope.py @@ -15,12 +15,13 @@ # specific language governing permissions and limitations # under the License. +import math +import pickle + from shapely.geometry import Polygon, box from shapely.geometry.base import BaseGeometry from sedona.utils.decorators import require -import math -import pickle class Envelope(Polygon): diff --git a/python/sedona/core/jvm/config.py b/python/sedona/core/jvm/config.py index d1fbc918d0..1775712796 100644 --- a/python/sedona/core/jvm/config.py +++ b/python/sedona/core/jvm/config.py @@ -15,17 +15,18 @@ # specific language governing permissions and limitations # under the License. +import functools +import inspect import logging import os +import warnings from re import findall from typing import Optional, Tuple from py4j.protocol import Py4JJavaError from pyspark.sql import SparkSession + from sedona.utils.decorators import classproperty -import functools -import inspect -import warnings string_types = (type(b""), type("")) diff --git a/python/sedona/core/spatialOperator/__init__.py b/python/sedona/core/spatialOperator/__init__.py index fc9e5f6783..034600d4a8 100644 --- a/python/sedona/core/spatialOperator/__init__.py +++ b/python/sedona/core/spatialOperator/__init__.py @@ -16,9 +16,9 @@ # under the License. from .join_query import JoinQuery -from .range_query import RangeQuery -from .knn_query import KNNQuery from .join_query_raw import JoinQueryRaw +from .knn_query import KNNQuery +from .range_query import RangeQuery from .range_query_raw import RangeQueryRaw __all__ = ["JoinQuery", "RangeQuery", "KNNQuery", "JoinQueryRaw", "RangeQueryRaw"] diff --git a/python/sedona/core/spatialOperator/join_query.py b/python/sedona/core/spatialOperator/join_query.py index d6d5f55bc4..7e1f016536 100644 --- a/python/sedona/core/spatialOperator/join_query.py +++ b/python/sedona/core/spatialOperator/join_query.py @@ -17,9 +17,9 @@ from pyspark import RDD -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.spatialOperator.join_params import JoinParams from sedona.core.spatialOperator.join_query_raw import JoinQueryRaw +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.decorators import require diff --git a/python/sedona/core/spatialOperator/join_query_raw.py b/python/sedona/core/spatialOperator/join_query_raw.py index d1b0f10a9e..e97118215a 100644 --- a/python/sedona/core/spatialOperator/join_query_raw.py +++ b/python/sedona/core/spatialOperator/join_query_raw.py @@ -15,9 +15,9 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import SpatialRDD from sedona.core.spatialOperator.join_params import JoinParams -from sedona.core.spatialOperator.rdd import SedonaPairRDDList, SedonaPairRDD +from sedona.core.spatialOperator.rdd import SedonaPairRDD, SedonaPairRDDList +from sedona.core.SpatialRDD import SpatialRDD from sedona.utils.decorators import require diff --git a/python/sedona/core/spatialOperator/knn_query.py b/python/sedona/core/spatialOperator/knn_query.py index 9e6905ce66..c858cdc0f6 100644 --- a/python/sedona/core/spatialOperator/knn_query.py +++ b/python/sedona/core/spatialOperator/knn_query.py @@ -18,8 +18,8 @@ import attr from shapely.geometry.base import BaseGeometry -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.jvm.translate import JvmSedonaPythonConverter +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.binary_parser import BinaryParser from sedona.utils.decorators import require from sedona.utils.geometry_adapter import GeometryAdapter diff --git a/python/sedona/core/spatialOperator/range_query.py b/python/sedona/core/spatialOperator/range_query.py index b76ab8a77a..4990f15ab7 100644 --- a/python/sedona/core/spatialOperator/range_query.py +++ b/python/sedona/core/spatialOperator/range_query.py @@ -17,8 +17,8 @@ from shapely.geometry.base import BaseGeometry -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.spatialOperator.range_query_raw import RangeQueryRaw +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.decorators import require diff --git a/python/sedona/core/spatialOperator/range_query_raw.py b/python/sedona/core/spatialOperator/range_query_raw.py index e20646ccb8..1b03ef58bf 100644 --- a/python/sedona/core/spatialOperator/range_query_raw.py +++ b/python/sedona/core/spatialOperator/range_query_raw.py @@ -17,8 +17,8 @@ from shapely.geometry.base import BaseGeometry -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.spatialOperator.rdd import SedonaPairRDD, SedonaRDD +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.decorators import require from sedona.utils.geometry_adapter import GeometryAdapter diff --git a/python/sedona/core/spatialOperator/rdd.py b/python/sedona/core/spatialOperator/rdd.py index d96c65724a..9576f731db 100644 --- a/python/sedona/core/spatialOperator/rdd.py +++ b/python/sedona/core/spatialOperator/rdd.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -from pyspark import SparkContext, RDD +from pyspark import RDD, SparkContext from sedona.core.jvm.translate import JvmSedonaPythonConverter from sedona.utils.spatial_rdd_parser import SedonaPickler diff --git a/python/sedona/maps/SedonaMapUtils.py b/python/sedona/maps/SedonaMapUtils.py index b4f68fb4cf..02ef909212 100644 --- a/python/sedona/maps/SedonaMapUtils.py +++ b/python/sedona/maps/SedonaMapUtils.py @@ -16,6 +16,7 @@ # under the License. import json + from sedona.sql.types import GeometryType diff --git a/python/sedona/maps/SedonaPyDeck.py b/python/sedona/maps/SedonaPyDeck.py index 367fffc9c5..a15cafca59 100644 --- a/python/sedona/maps/SedonaPyDeck.py +++ b/python/sedona/maps/SedonaPyDeck.py @@ -18,13 +18,13 @@ from types import ModuleType from pyspark.sql.types import ( - FloatType, + ByteType, + DecimalType, DoubleType, + FloatType, IntegerType, LongType, - DecimalType, ShortType, - ByteType, ) from sedona.maps.SedonaMapUtils import SedonaMapUtils diff --git a/python/sedona/raster/data_buffer.py b/python/sedona/raster/data_buffer.py index 28b28bbe3f..972ee1c5eb 100644 --- a/python/sedona/raster/data_buffer.py +++ b/python/sedona/raster/data_buffer.py @@ -15,7 +15,8 @@ # specific language governing permissions and limitations # under the License. -from typing import List, Any +from typing import Any, List + import numpy as np diff --git a/python/sedona/raster/meta.py b/python/sedona/raster/meta.py index a8ed687dc6..38c5283ba7 100644 --- a/python/sedona/raster/meta.py +++ b/python/sedona/raster/meta.py @@ -16,7 +16,7 @@ # under the License. from enum import Enum -from typing import List, Dict, Optional +from typing import Dict, List, Optional class PixelAnchor(Enum): diff --git a/python/sedona/raster/raster_serde.py b/python/sedona/raster/raster_serde.py index 2bc3968458..90dd651bee 100644 --- a/python/sedona/raster/raster_serde.py +++ b/python/sedona/raster/raster_serde.py @@ -15,23 +15,24 @@ # specific language governing permissions and limitations # under the License. -from typing import Optional, Union, Tuple, List, Dict -from io import BytesIO import struct import zlib +from io import BytesIO +from typing import Dict, List, Optional, Tuple, Union + import numpy as np +from .awt_raster import AWTRaster +from .data_buffer import DataBuffer +from .meta import AffineTransform, PixelAnchor, SampleDimension from .sample_model import ( - SampleModel, ComponentSampleModel, - PixelInterleavedSampleModel, MultiPixelPackedSampleModel, + PixelInterleavedSampleModel, + SampleModel, SinglePixelPackedSampleModel, ) -from .data_buffer import DataBuffer -from .awt_raster import AWTRaster -from .meta import AffineTransform, PixelAnchor, SampleDimension -from .sedona_raster import SedonaRaster, InDbSedonaRaster +from .sedona_raster import InDbSedonaRaster, SedonaRaster class RasterTypes: diff --git a/python/sedona/raster/sample_model.py b/python/sedona/raster/sample_model.py index 2959b599f8..7545f62031 100644 --- a/python/sedona/raster/sample_model.py +++ b/python/sedona/raster/sample_model.py @@ -15,8 +15,9 @@ # specific language governing permissions and limitations # under the License. -from typing import List from abc import ABC, abstractmethod +from typing import List + import numpy as np from .data_buffer import DataBuffer diff --git a/python/sedona/raster/sedona_raster.py b/python/sedona/raster/sedona_raster.py index 4520950edc..f47d208f42 100644 --- a/python/sedona/raster/sedona_raster.py +++ b/python/sedona/raster/sedona_raster.py @@ -15,16 +15,16 @@ # specific language governing permissions and limitations # under the License. -from typing import List, Dict, Optional from abc import ABC, abstractmethod +from typing import Dict, List, Optional from xml.etree.ElementTree import Element, SubElement, tostring import numpy as np import rasterio # type: ignore import rasterio.env # type: ignore -from rasterio.transform import Affine # type: ignore -from rasterio.io import MemoryFile # type: ignore from rasterio.io import DatasetReader # type: ignore +from rasterio.io import MemoryFile # type: ignore +from rasterio.transform import Affine # type: ignore try: # for rasterio >= 1.3.0 @@ -35,8 +35,7 @@ from .awt_raster import AWTRaster from .data_buffer import DataBuffer -from .meta import AffineTransform, PixelAnchor -from .meta import SampleDimension +from .meta import AffineTransform, PixelAnchor, SampleDimension def _rasterio_open(fp, driver=None): diff --git a/python/sedona/raster_utils/SedonaUtils.py b/python/sedona/raster_utils/SedonaUtils.py index ef0926ab6d..5f7304f3ff 100644 --- a/python/sedona/raster_utils/SedonaUtils.py +++ b/python/sedona/raster_utils/SedonaUtils.py @@ -19,6 +19,6 @@ class SedonaUtils: @classmethod def display_image(cls, df): - from IPython.display import display, HTML + from IPython.display import HTML, display display(HTML(df.toPandas().to_html(escape=False))) diff --git a/python/sedona/spark/__init__.py b/python/sedona/spark/__init__.py index c98234a410..6657579538 100644 --- a/python/sedona/spark/__init__.py +++ b/python/sedona/spark/__init__.py @@ -15,35 +15,33 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import SpatialRDD -from sedona.core.SpatialRDD import PointRDD -from sedona.core.SpatialRDD import PolygonRDD -from sedona.core.SpatialRDD import LineStringRDD -from sedona.core.SpatialRDD import CircleRDD -from sedona.core.SpatialRDD import RectangleRDD -from sedona.core.spatialOperator import KNNQuery -from sedona.core.spatialOperator import JoinQueryRaw -from sedona.core.spatialOperator import JoinQuery -from sedona.core.spatialOperator import RangeQueryRaw -from sedona.core.spatialOperator import RangeQuery +from sedona.core.enums import FileDataSplitter, GridType, IndexType +from sedona.core.formatMapper import GeoJsonReader, WkbReader, WktReader from sedona.core.formatMapper.shapefileParser import ShapefileReader -from sedona.core.formatMapper import GeoJsonReader -from sedona.core.formatMapper import WktReader -from sedona.core.formatMapper import WkbReader -from sedona.core.enums import IndexType -from sedona.core.enums import GridType -from sedona.core.enums import FileDataSplitter -from sedona.sql.types import GeometryType -from sedona.sql.types import RasterType -from sedona.utils.adapter import Adapter -from sedona.utils import KryoSerializer -from sedona.utils import SedonaKryoRegistrator -from sedona.register import SedonaRegistrator -from sedona.spark.SedonaContext import SedonaContext -from sedona.raster_utils.SedonaUtils import SedonaUtils +from sedona.core.spatialOperator import ( + JoinQuery, + JoinQueryRaw, + KNNQuery, + RangeQuery, + RangeQueryRaw, +) +from sedona.core.SpatialRDD import ( + CircleRDD, + LineStringRDD, + PointRDD, + PolygonRDD, + RectangleRDD, + SpatialRDD, +) from sedona.maps.SedonaKepler import SedonaKepler from sedona.maps.SedonaPyDeck import SedonaPyDeck +from sedona.raster_utils.SedonaUtils import SedonaUtils +from sedona.register import SedonaRegistrator +from sedona.spark.SedonaContext import SedonaContext from sedona.sql.st_aggregates import * from sedona.sql.st_constructors import * from sedona.sql.st_functions import * from sedona.sql.st_predicates import * +from sedona.sql.types import GeometryType, RasterType +from sedona.utils import KryoSerializer, SedonaKryoRegistrator +from sedona.utils.adapter import Adapter diff --git a/python/sedona/sql/dataframe_api.py b/python/sedona/sql/dataframe_api.py index 9d7c2f47b5..4f79878ba1 100644 --- a/python/sedona/sql/dataframe_api.py +++ b/python/sedona/sql/dataframe_api.py @@ -18,20 +18,11 @@ import functools import inspect import itertools -from typing import ( - Any, - Callable, - Iterable, - List, - Mapping, - Tuple, - Type, - Union, -) import typing +from typing import Any, Callable, Iterable, List, Mapping, Tuple, Type, Union -from pyspark.sql import SparkSession, Column, functions as f - +from pyspark.sql import Column, SparkSession +from pyspark.sql import functions as f ColumnOrName = Union[Column, str] ColumnOrNameOrNumber = Union[Column, str, float, int] diff --git a/python/sedona/sql/st_aggregates.py b/python/sedona/sql/st_aggregates.py index 5632594b48..2156285bc2 100644 --- a/python/sedona/sql/st_aggregates.py +++ b/python/sedona/sql/st_aggregates.py @@ -16,7 +16,6 @@ # under the License. import inspect import sys - from functools import partial from pyspark.sql import Column diff --git a/python/sedona/sql/st_constructors.py b/python/sedona/sql/st_constructors.py index b4e9aa6865..f636edc0c2 100644 --- a/python/sedona/sql/st_constructors.py +++ b/python/sedona/sql/st_constructors.py @@ -16,7 +16,6 @@ # under the License. import inspect import sys - from functools import partial from typing import Optional, Union @@ -29,7 +28,6 @@ validate_argument_types, ) - _call_constructor_function = partial(call_sedona_function, "st_constructors") diff --git a/python/sedona/sql/st_functions.py b/python/sedona/sql/st_functions.py index 16ff25a3eb..0d66725a5e 100644 --- a/python/sedona/sql/st_functions.py +++ b/python/sedona/sql/st_functions.py @@ -16,20 +16,18 @@ # under the License. import inspect import sys - from functools import partial from typing import Optional, Union from pyspark.sql import Column from sedona.sql.dataframe_api import ( - call_sedona_function, ColumnOrName, ColumnOrNameOrNumber, + call_sedona_function, validate_argument_types, ) - _call_st_function = partial(call_sedona_function, "st_functions") diff --git a/python/sedona/sql/st_predicates.py b/python/sedona/sql/st_predicates.py index b91edf8eec..18b33c1605 100644 --- a/python/sedona/sql/st_predicates.py +++ b/python/sedona/sql/st_predicates.py @@ -16,11 +16,10 @@ # under the License. import inspect import sys - from functools import partial +from typing import Optional, Union from pyspark.sql import Column -from typing import Union, Optional from sedona.sql.dataframe_api import ( ColumnOrName, @@ -28,7 +27,6 @@ validate_argument_types, ) - _call_predicate_function = partial(call_sedona_function, "st_predicates") diff --git a/python/sedona/sql/types.py b/python/sedona/sql/types.py index 239f19df8e..1d7a693f1e 100644 --- a/python/sedona/sql/types.py +++ b/python/sedona/sql/types.py @@ -15,11 +15,11 @@ # specific language governing permissions and limitations # under the License. -from pyspark.sql.types import UserDefinedType, BinaryType +from pyspark.sql.types import BinaryType, UserDefinedType -from ..utils import geometry_serde from ..raster import raster_serde from ..raster.sedona_raster import SedonaRaster +from ..utils import geometry_serde class GeometryType(UserDefinedType): diff --git a/python/sedona/utils/__init__.py b/python/sedona/utils/__init__.py index 6873fd8c04..8c3ca09339 100644 --- a/python/sedona/utils/__init__.py +++ b/python/sedona/utils/__init__.py @@ -15,7 +15,6 @@ # specific language governing permissions and limitations # under the License. -from .serde import KryoSerializer -from .serde import SedonaKryoRegistrator +from .serde import KryoSerializer, SedonaKryoRegistrator __all__ = ["KryoSerializer", "SedonaKryoRegistrator"] diff --git a/python/sedona/utils/adapter.py b/python/sedona/utils/adapter.py index a7d786e5ed..b692fd2fdb 100644 --- a/python/sedona/utils/adapter.py +++ b/python/sedona/utils/adapter.py @@ -20,9 +20,9 @@ from pyspark import RDD from pyspark.sql import DataFrame, SparkSession -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.enums.spatial import SpatialType from sedona.core.spatialOperator.rdd import SedonaPairRDD, SedonaRDD +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.meta import MultipleMeta diff --git a/python/sedona/utils/decorators.py b/python/sedona/utils/decorators.py index 9d10212b31..90de8d16e3 100644 --- a/python/sedona/utils/decorators.py +++ b/python/sedona/utils/decorators.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -from typing import List, Iterable, Callable, TypeVar +from typing import Callable, Iterable, List, TypeVar T = TypeVar("T") diff --git a/python/sedona/utils/geometry_serde.py b/python/sedona/utils/geometry_serde.py index cf872dfb2e..f9c23e1128 100644 --- a/python/sedona/utils/geometry_serde.py +++ b/python/sedona/utils/geometry_serde.py @@ -15,15 +15,14 @@ # specific language governing permissions and limitations # under the License. +import os +import sys from typing import Optional from warnings import warn -import sys -import os import shapely from shapely.geometry.base import BaseGeometry - speedup_enabled = False @@ -70,17 +69,17 @@ def deserialize(buf: bytearray) -> Optional[BaseGeometry]: elif shapely.__version__.startswith("1."): # Shapely 1.x uses ctypes.CDLL to load geos_c library. We can obtain the # handle of geos_c library from `shapely.geos._lgeos._handle` - import shapely.geos import shapely.geometry.base + import shapely.geos from shapely.geometry import ( - Point, - LineString, + GeometryCollection, LinearRing, - Polygon, - MultiPoint, + LineString, MultiLineString, + MultiPoint, MultiPolygon, - GeometryCollection, + Point, + Polygon, ) lgeos_handle = shapely.geos._lgeos._handle @@ -130,10 +129,10 @@ def deserialize(buf: bytearray) -> Optional[BaseGeometry]: else: # fallback to our general pure python implementation - from .geometry_serde_general import serialize, deserialize + from .geometry_serde_general import deserialize, serialize except Exception as e: warn( f"Cannot load geomserde_speedup, fallback to general python implementation. Reason: {e}" ) - from .geometry_serde_general import serialize, deserialize + from .geometry_serde_general import deserialize, serialize diff --git a/python/sedona/utils/geometry_serde_general.py b/python/sedona/utils/geometry_serde_general.py index 212a302b68..6c1a821340 100644 --- a/python/sedona/utils/geometry_serde_general.py +++ b/python/sedona/utils/geometry_serde_general.py @@ -16,8 +16,8 @@ # under the License. import array -import struct import math +import struct from typing import List, Optional, Tuple, Union import numpy as np @@ -35,7 +35,6 @@ from shapely.wkb import dumps as wkb_dumps from shapely.wkt import loads as wkt_loads - CoordType = Union[ Tuple[float, float], Tuple[float, float, float], Tuple[float, float, float, float] ] diff --git a/python/sedona/utils/meta.py b/python/sedona/utils/meta.py index 079b8acb5f..c6c6945d41 100644 --- a/python/sedona/utils/meta.py +++ b/python/sedona/utils/meta.py @@ -17,11 +17,10 @@ import inspect import types +from typing import Any from sedona.exceptions import InvalidParametersException -from typing import Any - try: from typing import GenericMeta except ImportError: diff --git a/python/sedona/utils/prep.py b/python/sedona/utils/prep.py index 57ea920a76..c9528300cf 100644 --- a/python/sedona/utils/prep.py +++ b/python/sedona/utils/prep.py @@ -18,13 +18,13 @@ from typing import List from shapely.geometry import ( - Point, - MultiPoint, - Polygon, - MultiPolygon, + GeometryCollection, LineString, MultiLineString, - GeometryCollection, + MultiPoint, + MultiPolygon, + Point, + Polygon, ) from shapely.geometry.base import BaseGeometry diff --git a/python/sedona/utils/spatial_rdd_parser.py b/python/sedona/utils/spatial_rdd_parser.py index c18ac9cd8c..d99eecf807 100644 --- a/python/sedona/utils/spatial_rdd_parser.py +++ b/python/sedona/utils/spatial_rdd_parser.py @@ -18,7 +18,7 @@ import struct from abc import ABC from copy import copy -from typing import List, Any +from typing import Any, List import attr from shapely.geometry.base import BaseGeometry @@ -27,6 +27,7 @@ from pyspark import CPickleSerializer except ImportError: from pyspark import PickleSerializer as CPickleSerializer + from shapely.wkb import dumps from sedona.core.geom.circle import Circle diff --git a/python/setup.py b/python/setup.py index fd38f34e21..e4dccbd8f1 100644 --- a/python/setup.py +++ b/python/setup.py @@ -15,8 +15,10 @@ # specific language governing permissions and limitations # under the License. -from setuptools import setup, find_packages, Extension import os + +from setuptools import Extension, find_packages, setup + from sedona import version with open("README.md", "r") as fh: diff --git a/python/tests/__init__.py b/python/tests/__init__.py index b63fc7061e..0f8fa55be8 100644 --- a/python/tests/__init__.py +++ b/python/tests/__init__.py @@ -19,7 +19,6 @@ from tests.tools import tests_resource - mixed_wkb_geometry_input_location = os.path.join(tests_resource, "county_small_wkb.tsv") mixed_wkt_geometry_input_location = os.path.join(tests_resource, "county_small.tsv") shape_file_input_location = os.path.join(tests_resource, "shapefiles/dbf") diff --git a/python/tests/core/test_avoiding_python_jvm_serde_df.py b/python/tests/core/test_avoiding_python_jvm_serde_df.py index 4811f9f513..66b8a27b62 100644 --- a/python/tests/core/test_avoiding_python_jvm_serde_df.py +++ b/python/tests/core/test_avoiding_python_jvm_serde_df.py @@ -14,22 +14,21 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. +import os + from pyspark.sql.types import StructField, StructType +from shapely.wkt import loads +from tests.test_base import TestBase +from tests.tools import tests_resource -from sedona.core.SpatialRDD import CircleRDD from sedona.core.enums import GridType, IndexType from sedona.core.formatMapper import WktReader from sedona.core.spatialOperator.join_params import JoinParams from sedona.core.spatialOperator.join_query_raw import JoinQueryRaw from sedona.core.spatialOperator.range_query_raw import RangeQueryRaw +from sedona.core.SpatialRDD import CircleRDD from sedona.sql.types import GeometryType from sedona.utils.adapter import Adapter -from tests.test_base import TestBase - -import os - -from tests.tools import tests_resource -from shapely.wkt import loads bank_csv_path = os.path.join(tests_resource, "small/points.csv") areas_csv_path = os.path.join(tests_resource, "small/areas.csv") diff --git a/python/tests/core/test_avoiding_python_jvm_serde_to_rdd.py b/python/tests/core/test_avoiding_python_jvm_serde_to_rdd.py index 3829342597..5440034fd6 100644 --- a/python/tests/core/test_avoiding_python_jvm_serde_to_rdd.py +++ b/python/tests/core/test_avoiding_python_jvm_serde_to_rdd.py @@ -15,18 +15,18 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import CircleRDD +import os + +from shapely.wkt import loads +from tests.test_base import TestBase +from tests.tools import tests_resource + from sedona.core.enums import GridType, IndexType from sedona.core.formatMapper import WktReader from sedona.core.spatialOperator.join_params import JoinParams from sedona.core.spatialOperator.join_query_raw import JoinQueryRaw from sedona.core.spatialOperator.range_query_raw import RangeQueryRaw -from tests.test_base import TestBase - -import os - -from tests.tools import tests_resource -from shapely.wkt import loads +from sedona.core.SpatialRDD import CircleRDD bank_csv_path = os.path.join(tests_resource, "small/points.csv") areas_csv_path = os.path.join(tests_resource, "small/areas.csv") diff --git a/python/tests/core/test_config.py b/python/tests/core/test_config.py index dfaec37ee5..f188d99e94 100644 --- a/python/tests/core/test_config.py +++ b/python/tests/core/test_config.py @@ -17,9 +17,10 @@ import os -from sedona.core.jvm.config import SparkJars, SedonaMeta from tests.test_base import TestBase +from sedona.core.jvm.config import SedonaMeta, SparkJars + class TestCoreJVMConfig(TestBase): def test_yarn_jars(self): diff --git a/python/tests/core/test_core_geom_primitives.py b/python/tests/core/test_core_geom_primitives.py index 3fa20a369e..09717cef16 100644 --- a/python/tests/core/test_core_geom_primitives.py +++ b/python/tests/core/test_core_geom_primitives.py @@ -15,9 +15,10 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.geom.envelope import Envelope from tests.test_base import TestBase +from sedona.core.geom.envelope import Envelope + class TestGeomPrimitives(TestBase): diff --git a/python/tests/core/test_core_rdd.py b/python/tests/core/test_core_rdd.py index 769c0a1ebb..8567fd84d2 100644 --- a/python/tests/core/test_core_rdd.py +++ b/python/tests/core/test_core_rdd.py @@ -17,12 +17,12 @@ import os -from sedona.core.enums import FileDataSplitter -from sedona.core.SpatialRDD import PointRDD -from sedona.core.SpatialRDD import PolygonRDD from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter +from sedona.core.SpatialRDD import PointRDD, PolygonRDD + point_path = os.path.join(tests_resource, "points.csv") counties_path = os.path.join(tests_resource, "county_small.tsv") diff --git a/python/tests/core/test_rdd.py b/python/tests/core/test_rdd.py index a002c7db29..abf5e1c9b9 100644 --- a/python/tests/core/test_rdd.py +++ b/python/tests/core/test_rdd.py @@ -16,27 +16,26 @@ # under the License. import logging - -from shapely.geometry import Point - -from sedona.core.SpatialRDD import PointRDD, PolygonRDD, CircleRDD -from sedona.core.enums import GridType, FileDataSplitter, IndexType -from sedona.core.enums.join_build_side import JoinBuildSide -from sedona.core.geom.envelope import Envelope -from sedona.core.spatialOperator import RangeQuery, KNNQuery, JoinQuery -from sedona.core.spatialOperator.join_params import JoinParams import os +from shapely.geometry import Point from tests.properties.polygon_properties import ( - polygon_rdd_input_location, - polygon_rdd_start_offset, polygon_rdd_end_offset, - polygon_rdd_splitter, polygon_rdd_index_type, + polygon_rdd_input_location, + polygon_rdd_splitter, + polygon_rdd_start_offset, ) from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter, GridType, IndexType +from sedona.core.enums.join_build_side import JoinBuildSide +from sedona.core.geom.envelope import Envelope +from sedona.core.spatialOperator import JoinQuery, KNNQuery, RangeQuery +from sedona.core.spatialOperator.join_params import JoinParams +from sedona.core.SpatialRDD import CircleRDD, PointRDD, PolygonRDD + point_rdd_input_location = os.path.join(tests_resource, "arealm-small.csv") point_rdd_splitter = FileDataSplitter.CSV diff --git a/python/tests/core/test_spatial_rdd_from_disc.py b/python/tests/core/test_spatial_rdd_from_disc.py index b8bfc9d946..ff363dc6a9 100644 --- a/python/tests/core/test_spatial_rdd_from_disc.py +++ b/python/tests/core/test_spatial_rdd_from_disc.py @@ -19,17 +19,17 @@ import shutil import pytest +from tests.test_base import TestBase +from tests.tools import tests_resource -from sedona.core.SpatialRDD import PointRDD, PolygonRDD, LineStringRDD -from sedona.core.enums import IndexType, GridType +from sedona.core.enums import GridType, IndexType from sedona.core.formatMapper.disc_utils import ( - load_spatial_rdd_from_disc, - load_spatial_index_rdd_from_disc, GeoType, + load_spatial_index_rdd_from_disc, + load_spatial_rdd_from_disc, ) from sedona.core.spatialOperator import JoinQuery -from tests.test_base import TestBase -from tests.tools import tests_resource +from sedona.core.SpatialRDD import LineStringRDD, PointRDD, PolygonRDD def remove_directory(path: str) -> bool: @@ -48,9 +48,9 @@ class TestDiscUtils(TestBase): def test_saving_to_disc_spatial_rdd_point(self): from tests.properties.point_properties import ( input_location, + num_partitions, offset, splitter, - num_partitions, ) point_rdd = PointRDD( @@ -64,8 +64,8 @@ def test_saving_to_disc_spatial_rdd_point(self): def test_saving_to_disc_spatial_rdd_polygon(self): from tests.properties.polygon_properties import ( input_location, - splitter, num_partitions, + splitter, ) polygon_rdd = PolygonRDD( @@ -78,8 +78,8 @@ def test_saving_to_disc_spatial_rdd_polygon(self): def test_saving_to_disc_spatial_rdd_linestring(self): from tests.properties.linestring_properties import ( input_location, - splitter, num_partitions, + splitter, ) linestring_rdd = LineStringRDD( @@ -92,8 +92,8 @@ def test_saving_to_disc_spatial_rdd_linestring(self): def test_saving_to_disc_index_linestring(self): from tests.properties.linestring_properties import ( input_location, - splitter, num_partitions, + splitter, ) linestring_rdd = LineStringRDD( @@ -107,8 +107,8 @@ def test_saving_to_disc_index_linestring(self): def test_saving_to_disc_index_polygon(self): from tests.properties.polygon_properties import ( input_location, - splitter, num_partitions, + splitter, ) polygon_rdd = PolygonRDD( @@ -122,9 +122,9 @@ def test_saving_to_disc_index_polygon(self): def test_saving_to_disc_index_point(self): from tests.properties.point_properties import ( input_location, + num_partitions, offset, splitter, - num_partitions, ) point_rdd = PointRDD( diff --git a/python/tests/format_mapper/test_geo_json_reader.py b/python/tests/format_mapper/test_geo_json_reader.py index 73b4ade7a8..042bd08fce 100644 --- a/python/tests/format_mapper/test_geo_json_reader.py +++ b/python/tests/format_mapper/test_geo_json_reader.py @@ -18,13 +18,12 @@ import os import pyspark - -from sedona.core.jvm.config import is_greater_or_equal_version, SedonaMeta - -from sedona.core.formatMapper.geo_json_reader import GeoJsonReader from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.formatMapper.geo_json_reader import GeoJsonReader +from sedona.core.jvm.config import SedonaMeta, is_greater_or_equal_version + geo_json_contains_id = os.path.join(tests_resource, "testContainsId.json") geo_json_geom_with_feature_property = os.path.join(tests_resource, "testPolygon.json") geo_json_geom_without_feature_property = os.path.join( diff --git a/python/tests/format_mapper/test_shapefile_reader.py b/python/tests/format_mapper/test_shapefile_reader.py index 73e7fd9ace..8fe47154a9 100644 --- a/python/tests/format_mapper/test_shapefile_reader.py +++ b/python/tests/format_mapper/test_shapefile_reader.py @@ -18,13 +18,13 @@ import os import pytest +from tests.test_base import TestBase +from tests.tools import tests_resource +from sedona.core.formatMapper.shapefileParser import ShapefileReader from sedona.core.geom.envelope import Envelope from sedona.core.jvm.config import SedonaMeta, is_greater_or_equal_version from sedona.core.spatialOperator import RangeQuery -from tests.tools import tests_resource -from sedona.core.formatMapper.shapefileParser import ShapefileReader -from tests.test_base import TestBase undefined_type_shape_location = os.path.join(tests_resource, "shapefiles/undefined") polygon_shape_location = os.path.join(tests_resource, "shapefiles/polygon") diff --git a/python/tests/format_mapper/test_wkb_reader.py b/python/tests/format_mapper/test_wkb_reader.py index c08b1733fa..d9452babbc 100644 --- a/python/tests/format_mapper/test_wkb_reader.py +++ b/python/tests/format_mapper/test_wkb_reader.py @@ -17,10 +17,11 @@ import os -from sedona.core.formatMapper.wkb_reader import WkbReader from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.formatMapper.wkb_reader import WkbReader + class TestWkbReader(TestBase): diff --git a/python/tests/format_mapper/test_wkt_reader.py b/python/tests/format_mapper/test_wkt_reader.py index 28eeae86e5..56ace0347b 100644 --- a/python/tests/format_mapper/test_wkt_reader.py +++ b/python/tests/format_mapper/test_wkt_reader.py @@ -17,10 +17,11 @@ import os -from sedona.core.formatMapper import WktReader from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.formatMapper import WktReader + class TestWktReader(TestBase): diff --git a/python/tests/maps/test_sedonakepler_visualization.py b/python/tests/maps/test_sedonakepler_visualization.py index 7f9ad2195d..808b72a2f1 100644 --- a/python/tests/maps/test_sedonakepler_visualization.py +++ b/python/tests/maps/test_sedonakepler_visualization.py @@ -15,13 +15,17 @@ # specific language governing permissions and limitations # under the License. -from keplergl import KeplerGl -from sedona.maps.SedonaKepler import SedonaKepler -from tests.test_base import TestBase -from tests import mixed_wkt_geometry_input_location, world_map_raster_input_location -from tests import csv_point_input_location import geopandas as gpd +from keplergl import KeplerGl from pyspark.sql.functions import explode, hex +from tests import ( + csv_point_input_location, + mixed_wkt_geometry_input_location, + world_map_raster_input_location, +) +from tests.test_base import TestBase + +from sedona.maps.SedonaKepler import SedonaKepler class TestVisualization(TestBase): diff --git a/python/tests/maps/test_sedonapydeck.py b/python/tests/maps/test_sedonapydeck.py index 329f2e4f4c..daa1d397b4 100644 --- a/python/tests/maps/test_sedonapydeck.py +++ b/python/tests/maps/test_sedonapydeck.py @@ -15,14 +15,15 @@ # specific language governing permissions and limitations # under the License. -from sedona.maps.SedonaPyDeck import SedonaPyDeck -from tests.test_base import TestBase -from tests import google_buildings_input_location -from tests import chicago_crimes_input_location -import pydeck as pdk -import geopandas as gpd import json +import geopandas as gpd +import pydeck as pdk +from tests import chicago_crimes_input_location, google_buildings_input_location +from tests.test_base import TestBase + +from sedona.maps.SedonaPyDeck import SedonaPyDeck + class TestVisualization(TestBase): diff --git a/python/tests/properties/crs_transform.py b/python/tests/properties/crs_transform.py index be095ccb67..af6437a0ef 100644 --- a/python/tests/properties/crs_transform.py +++ b/python/tests/properties/crs_transform.py @@ -18,10 +18,10 @@ import os from shapely.geometry import Point +from tests.tools import tests_resource from sedona.core.enums import FileDataSplitter, IndexType from sedona.core.geom.envelope import Envelope -from tests.tools import tests_resource input_location = os.path.join(tests_resource, "crs-test-point.csv") offset = 0 diff --git a/python/tests/properties/linestring_properties.py b/python/tests/properties/linestring_properties.py index fac63c8c69..e53fc14b72 100644 --- a/python/tests/properties/linestring_properties.py +++ b/python/tests/properties/linestring_properties.py @@ -17,9 +17,10 @@ import os +from tests.tools import tests_resource + from sedona.core.enums import FileDataSplitter from sedona.core.geom.envelope import Envelope -from tests.tools import tests_resource input_location = os.path.join(tests_resource, "primaryroads-linestring.csv") query_window_set = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/properties/point_properties.py b/python/tests/properties/point_properties.py index f8af949618..bea7dcf105 100644 --- a/python/tests/properties/point_properties.py +++ b/python/tests/properties/point_properties.py @@ -17,9 +17,10 @@ import os +from tests.tools import tests_resource + from sedona.core.enums import FileDataSplitter from sedona.core.geom.envelope import Envelope -from tests.tools import tests_resource input_location = os.path.join(tests_resource, "arealm-small.csv") query_window_set = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/properties/polygon_properties.py b/python/tests/properties/polygon_properties.py index f4ca942149..09680f0861 100644 --- a/python/tests/properties/polygon_properties.py +++ b/python/tests/properties/polygon_properties.py @@ -17,9 +17,10 @@ import os +from tests.tools import tests_resource + from sedona.core.enums import FileDataSplitter, IndexType from sedona.core.geom.envelope import Envelope -from tests.tools import tests_resource input_location = os.path.join(tests_resource, "primaryroads-polygon.csv") query_window_set = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/raster/test_meta.py b/python/tests/raster/test_meta.py index 7372cecf7d..9c4d01dd59 100644 --- a/python/tests/raster/test_meta.py +++ b/python/tests/raster/test_meta.py @@ -18,8 +18,7 @@ import pytest from pytest import approx -from sedona.raster.meta import AffineTransform -from sedona.raster.meta import PixelAnchor +from sedona.raster.meta import AffineTransform, PixelAnchor class TestAffineTransform: diff --git a/python/tests/raster/test_pandas_udf.py b/python/tests/raster/test_pandas_udf.py index b6a7d4682b..b33c8370d9 100644 --- a/python/tests/raster/test_pandas_udf.py +++ b/python/tests/raster/test_pandas_udf.py @@ -15,17 +15,15 @@ # specific language governing permissions and limitations # under the License. +import numpy as np +import pandas as pd +import pyspark import pytest - -from tests.test_base import TestBase +import rasterio from pyspark.sql.functions import expr, pandas_udf from pyspark.sql.types import IntegerType -import pyspark -import pandas as pd -import numpy as np -import rasterio - from tests import world_map_raster_input_location +from tests.test_base import TestBase class TestRasterPandasUDF(TestBase): diff --git a/python/tests/raster/test_serde.py b/python/tests/raster/test_serde.py index b50ddfd337..4dfe8b973a 100644 --- a/python/tests/raster/test_serde.py +++ b/python/tests/raster/test_serde.py @@ -15,15 +15,14 @@ # specific language governing permissions and limitations # under the License. +import numpy as np import pytest import rasterio -import numpy as np - -from tests.test_base import TestBase from pyspark.sql.functions import expr -from sedona.sql.types import RasterType - from tests import world_map_raster_input_location +from tests.test_base import TestBase + +from sedona.sql.types import RasterType class TestRasterSerde(TestBase): diff --git a/python/tests/raster_viz_utils/test_sedonautils.py b/python/tests/raster_viz_utils/test_sedonautils.py index 02ae06cdf2..28f3f91b19 100644 --- a/python/tests/raster_viz_utils/test_sedonautils.py +++ b/python/tests/raster_viz_utils/test_sedonautils.py @@ -15,10 +15,11 @@ # specific language governing permissions and limitations # under the License. -from IPython.display import display, HTML +from IPython.display import HTML, display +from tests import world_map_raster_input_location from tests.test_base import TestBase + from sedona.raster_utils.SedonaUtils import SedonaUtils -from tests import world_map_raster_input_location class TestSedonaUtils(TestBase): diff --git a/python/tests/serialization/test_deserializers.py b/python/tests/serialization/test_deserializers.py index 8495a7374c..d36160e432 100644 --- a/python/tests/serialization/test_deserializers.py +++ b/python/tests/serialization/test_deserializers.py @@ -17,18 +17,17 @@ import os +import geopandas as gpd +import pandas as pd from shapely.geometry import ( + GeometryCollection, + LineString, + MultiLineString, MultiPoint, + MultiPolygon, Point, - MultiLineString, - LineString, Polygon, - MultiPolygon, - GeometryCollection, ) -import geopandas as gpd -import pandas as pd - from tests import tests_resource from tests.test_base import TestBase diff --git a/python/tests/serialization/test_direct_serialization.py b/python/tests/serialization/test_direct_serialization.py index 07df1f5dda..c960468c87 100644 --- a/python/tests/serialization/test_direct_serialization.py +++ b/python/tests/serialization/test_direct_serialization.py @@ -17,9 +17,9 @@ from shapely.geometry import Polygon from shapely.wkt import loads +from tests.test_base import TestBase from sedona.utils.geometry_adapter import GeometryAdapter -from tests.test_base import TestBase class TestDirectSerialization(TestBase): diff --git a/python/tests/serialization/test_rdd_serialization.py b/python/tests/serialization/test_rdd_serialization.py index 56900a17e3..e82ae1ce8e 100644 --- a/python/tests/serialization/test_rdd_serialization.py +++ b/python/tests/serialization/test_rdd_serialization.py @@ -17,11 +17,12 @@ import os -from sedona.core.SpatialRDD import PointRDD, PolygonRDD, CircleRDD, LineStringRDD -from sedona.core.enums import FileDataSplitter, IndexType from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter, IndexType +from sedona.core.SpatialRDD import CircleRDD, LineStringRDD, PointRDD, PolygonRDD + point_rdd_input_location = os.path.join(tests_resource, "arealm-small.csv") polygon_rdd_input_location = os.path.join(tests_resource, "primaryroads-polygon.csv") linestring_rdd_input_location = os.path.join( diff --git a/python/tests/serialization/test_serializers.py b/python/tests/serialization/test_serializers.py index 8c7153683e..f51c94375d 100644 --- a/python/tests/serialization/test_serializers.py +++ b/python/tests/serialization/test_serializers.py @@ -17,24 +17,23 @@ import os -from pyspark.sql.types import IntegerType import geopandas as gpd import pandas as pd - -from tests import tests_resource -from sedona.sql.types import GeometryType +from pyspark.sql import types as t +from pyspark.sql.types import IntegerType from shapely.geometry import ( - Point, - MultiPoint, LineString, MultiLineString, - Polygon, + MultiPoint, MultiPolygon, + Point, + Polygon, ) -from pyspark.sql import types as t - +from tests import tests_resource from tests.test_base import TestBase +from sedona.sql.types import GeometryType + class TestsSerializers(TestBase): diff --git a/python/tests/serialization/test_with_sc_parellize.py b/python/tests/serialization/test_with_sc_parellize.py index b0ad0acf7b..60852704c2 100644 --- a/python/tests/serialization/test_with_sc_parellize.py +++ b/python/tests/serialization/test_with_sc_parellize.py @@ -15,12 +15,12 @@ # specific language governing permissions and limitations # under the License. -from shapely.geometry import Point, LineString, Polygon +from shapely.geometry import LineString, Point, Polygon from shapely.wkt import loads +from tests.test_base import TestBase -from sedona.core.SpatialRDD import PointRDD, LineStringRDD, PolygonRDD +from sedona.core.SpatialRDD import LineStringRDD, PointRDD, PolygonRDD from sedona.utils.spatial_rdd_parser import GeoData -from tests.test_base import TestBase class TestWithScParallelize(TestBase): diff --git a/python/tests/spatial_operator/test_join_base.py b/python/tests/spatial_operator/test_join_base.py index 80f198c338..2aac30fb52 100644 --- a/python/tests/spatial_operator/test_join_base.py +++ b/python/tests/spatial_operator/test_join_base.py @@ -16,11 +16,11 @@ # under the License. import pytest +from tests.test_base import TestBase -from sedona.core.SpatialRDD import RectangleRDD, PolygonRDD, LineStringRDD, PointRDD -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.core.enums import GridType -from tests.test_base import TestBase +from sedona.core.SpatialRDD import LineStringRDD, PointRDD, PolygonRDD, RectangleRDD +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD class TestJoinBase(TestBase): diff --git a/python/tests/spatial_operator/test_join_query_correctness.py b/python/tests/spatial_operator/test_join_query_correctness.py index 7b2f743527..e4995bef44 100644 --- a/python/tests/spatial_operator/test_join_query_correctness.py +++ b/python/tests/spatial_operator/test_join_query_correctness.py @@ -15,15 +15,15 @@ # specific language governing permissions and limitations # under the License. -from shapely.geometry import Point, Polygon, LineString +from shapely.geometry import LineString, Point, Polygon from shapely.geometry.base import BaseGeometry +from tests.test_base import TestBase -from sedona.core.SpatialRDD import LineStringRDD, PolygonRDD, CircleRDD, PointRDD -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD -from sedona.core.enums import IndexType, GridType +from sedona.core.enums import GridType, IndexType from sedona.core.spatialOperator import JoinQuery +from sedona.core.SpatialRDD import CircleRDD, LineStringRDD, PointRDD, PolygonRDD +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD from sedona.utils.spatial_rdd_parser import GeoData -from tests.test_base import TestBase class TestJoinQueryCorrectness(TestBase): diff --git a/python/tests/spatial_operator/test_linestring_join.py b/python/tests/spatial_operator/test_linestring_join.py index 13c41329d6..af140d4118 100644 --- a/python/tests/spatial_operator/test_linestring_join.py +++ b/python/tests/spatial_operator/test_linestring_join.py @@ -15,15 +15,16 @@ # specific language governing permissions and limitations # under the License. -import pytest import os +import pytest +from tests.spatial_operator.test_join_base import TestJoinBase +from tests.tools import tests_resource + from sedona.core.enums import FileDataSplitter, GridType, IndexType from sedona.core.enums.join_build_side import JoinBuildSide from sedona.core.spatialOperator import JoinQuery from sedona.core.spatialOperator.join_params import JoinParams -from tests.spatial_operator.test_join_base import TestJoinBase -from tests.tools import tests_resource input_location = os.path.join(tests_resource, "primaryroads-linestring.csv") query_window_set = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/spatial_operator/test_linestring_knn.py b/python/tests/spatial_operator/test_linestring_knn.py index 41bbaca246..8de3ab93c7 100644 --- a/python/tests/spatial_operator/test_linestring_knn.py +++ b/python/tests/spatial_operator/test_linestring_knn.py @@ -18,13 +18,13 @@ import os from shapely.geometry import Point - -from sedona.core.SpatialRDD import LineStringRDD -from sedona.core.enums import IndexType, FileDataSplitter -from sedona.core.spatialOperator import KNNQuery from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter, IndexType +from sedona.core.spatialOperator import KNNQuery +from sedona.core.SpatialRDD import LineStringRDD + input_location = os.path.join(tests_resource, "primaryroads-linestring.csv") offset = 0 splitter = FileDataSplitter.CSV diff --git a/python/tests/spatial_operator/test_linestring_range.py b/python/tests/spatial_operator/test_linestring_range.py index 2d3da73d4c..e6b5df971a 100644 --- a/python/tests/spatial_operator/test_linestring_range.py +++ b/python/tests/spatial_operator/test_linestring_range.py @@ -17,13 +17,13 @@ import os +from tests.test_base import TestBase +from tests.tools import tests_resource -from sedona.core.SpatialRDD import LineStringRDD -from sedona.core.enums import IndexType, FileDataSplitter +from sedona.core.enums import FileDataSplitter, IndexType from sedona.core.geom.envelope import Envelope from sedona.core.spatialOperator import RangeQuery -from tests.test_base import TestBase -from tests.tools import tests_resource +from sedona.core.SpatialRDD import LineStringRDD input_location = os.path.join(tests_resource, "primaryroads-linestring.csv") offset = 0 diff --git a/python/tests/spatial_operator/test_point_join.py b/python/tests/spatial_operator/test_point_join.py index 2363df281b..dcfdaeb790 100644 --- a/python/tests/spatial_operator/test_point_join.py +++ b/python/tests/spatial_operator/test_point_join.py @@ -15,15 +15,16 @@ # specific language governing permissions and limitations # under the License. -import pytest import os +import pytest +from tests.spatial_operator.test_join_base import TestJoinBase +from tests.tools import tests_resource + from sedona.core.enums import FileDataSplitter, GridType, IndexType from sedona.core.enums.join_build_side import JoinBuildSide from sedona.core.spatialOperator import JoinQuery from sedona.core.spatialOperator.join_params import JoinParams -from tests.spatial_operator.test_join_base import TestJoinBase -from tests.tools import tests_resource input_location = os.path.join(tests_resource, "arealm-small.csv") input_location_query_window = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/spatial_operator/test_point_knn.py b/python/tests/spatial_operator/test_point_knn.py index 017b8b7fee..5f5cc951f9 100644 --- a/python/tests/spatial_operator/test_point_knn.py +++ b/python/tests/spatial_operator/test_point_knn.py @@ -18,12 +18,12 @@ import os from shapely.geometry import Point +from tests.test_base import TestBase +from tests.tools import distance_sorting_functions, tests_resource -from sedona.core.SpatialRDD import PointRDD -from sedona.core.enums import IndexType, FileDataSplitter +from sedona.core.enums import FileDataSplitter, IndexType from sedona.core.spatialOperator import KNNQuery -from tests.test_base import TestBase -from tests.tools import tests_resource, distance_sorting_functions +from sedona.core.SpatialRDD import PointRDD input_location = os.path.join(tests_resource, "arealm-small.csv") queryWindowSet = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/spatial_operator/test_point_range.py b/python/tests/spatial_operator/test_point_range.py index 86a837fe5b..0c85af2359 100644 --- a/python/tests/spatial_operator/test_point_range.py +++ b/python/tests/spatial_operator/test_point_range.py @@ -17,13 +17,14 @@ import os -from sedona.core.SpatialRDD import PointRDD -from sedona.core.enums import IndexType, FileDataSplitter -from sedona.core.geom.envelope import Envelope -from sedona.core.spatialOperator import RangeQuery from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter, IndexType +from sedona.core.geom.envelope import Envelope +from sedona.core.spatialOperator import RangeQuery +from sedona.core.SpatialRDD import PointRDD + input_location = os.path.join(tests_resource, "arealm-small.csv") queryWindowSet = os.path.join(tests_resource, "zcta510-small.csv") offset = 1 diff --git a/python/tests/spatial_operator/test_polygon_join.py b/python/tests/spatial_operator/test_polygon_join.py index e22cf1a60f..70e55e9659 100644 --- a/python/tests/spatial_operator/test_polygon_join.py +++ b/python/tests/spatial_operator/test_polygon_join.py @@ -15,15 +15,16 @@ # specific language governing permissions and limitations # under the License. -import pytest import os +import pytest +from tests.spatial_operator.test_join_base import TestJoinBase +from tests.tools import tests_resource + from sedona.core.enums import FileDataSplitter, GridType, IndexType from sedona.core.enums.join_build_side import JoinBuildSide from sedona.core.spatialOperator import JoinQuery from sedona.core.spatialOperator.join_params import JoinParams -from tests.spatial_operator.test_join_base import TestJoinBase -from tests.tools import tests_resource input_location = os.path.join(tests_resource, "primaryroads-polygon.csv") query_window_set = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/spatial_operator/test_polygon_knn.py b/python/tests/spatial_operator/test_polygon_knn.py index 5b8ed2ab6e..fd604036c3 100644 --- a/python/tests/spatial_operator/test_polygon_knn.py +++ b/python/tests/spatial_operator/test_polygon_knn.py @@ -18,12 +18,12 @@ import os from shapely.geometry import Point +from tests.test_base import TestBase +from tests.tools import distance_sorting_functions, tests_resource -from sedona.core.SpatialRDD import PolygonRDD -from sedona.core.enums import IndexType, FileDataSplitter +from sedona.core.enums import FileDataSplitter, IndexType from sedona.core.spatialOperator import KNNQuery -from tests.test_base import TestBase -from tests.tools import tests_resource, distance_sorting_functions +from sedona.core.SpatialRDD import PolygonRDD input_location = os.path.join(tests_resource, "primaryroads-polygon.csv") splitter = FileDataSplitter.CSV diff --git a/python/tests/spatial_operator/test_polygon_range.py b/python/tests/spatial_operator/test_polygon_range.py index 1173414458..cef018ab45 100644 --- a/python/tests/spatial_operator/test_polygon_range.py +++ b/python/tests/spatial_operator/test_polygon_range.py @@ -17,13 +17,14 @@ import os -from sedona.core.SpatialRDD import PolygonRDD -from sedona.core.enums import IndexType, FileDataSplitter -from sedona.core.geom.envelope import Envelope -from sedona.core.spatialOperator import RangeQuery from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter, IndexType +from sedona.core.geom.envelope import Envelope +from sedona.core.spatialOperator import RangeQuery +from sedona.core.SpatialRDD import PolygonRDD + input_location = os.path.join(tests_resource, "primaryroads-polygon.csv") splitter = FileDataSplitter.CSV gridType = "rtree" diff --git a/python/tests/spatial_operator/test_rectangle_join.py b/python/tests/spatial_operator/test_rectangle_join.py index 6c68955346..fc69f8d1ce 100644 --- a/python/tests/spatial_operator/test_rectangle_join.py +++ b/python/tests/spatial_operator/test_rectangle_join.py @@ -17,13 +17,14 @@ import os +from tests.spatial_operator.test_join_base import TestJoinBase +from tests.tools import tests_resource + from sedona.core.enums import FileDataSplitter, GridType, IndexType from sedona.core.enums.join_build_side import JoinBuildSide from sedona.core.geom.envelope import Envelope from sedona.core.spatialOperator import JoinQuery from sedona.core.spatialOperator.join_params import JoinParams -from tests.spatial_operator.test_join_base import TestJoinBase -from tests.tools import tests_resource input_location = os.path.join(tests_resource, "zcta510-small.csv") query_window_set = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/spatial_operator/test_rectangle_knn.py b/python/tests/spatial_operator/test_rectangle_knn.py index 09d14cda0b..36d54a9d2c 100644 --- a/python/tests/spatial_operator/test_rectangle_knn.py +++ b/python/tests/spatial_operator/test_rectangle_knn.py @@ -17,14 +17,14 @@ import os -from shapely.geometry import Point, Polygon, LineString +from shapely.geometry import LineString, Point, Polygon +from tests.test_base import TestBase +from tests.tools import distance_sorting_functions, tests_resource -from sedona.core.SpatialRDD import RectangleRDD -from sedona.core.enums import IndexType, FileDataSplitter +from sedona.core.enums import FileDataSplitter, IndexType from sedona.core.geom.envelope import Envelope from sedona.core.spatialOperator import KNNQuery -from tests.test_base import TestBase -from tests.tools import tests_resource, distance_sorting_functions +from sedona.core.SpatialRDD import RectangleRDD inputLocation = os.path.join(tests_resource, "zcta510-small.csv") queryWindowSet = os.path.join(tests_resource, "zcta510-small.csv") diff --git a/python/tests/spatial_operator/test_rectangle_range.py b/python/tests/spatial_operator/test_rectangle_range.py index d3e79397bf..8dbde75434 100644 --- a/python/tests/spatial_operator/test_rectangle_range.py +++ b/python/tests/spatial_operator/test_rectangle_range.py @@ -17,13 +17,14 @@ import os -from sedona.core.SpatialRDD import RectangleRDD -from sedona.core.enums import IndexType, FileDataSplitter -from sedona.core.geom.envelope import Envelope -from sedona.core.spatialOperator import RangeQuery from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter, IndexType +from sedona.core.geom.envelope import Envelope +from sedona.core.spatialOperator import RangeQuery +from sedona.core.SpatialRDD import RectangleRDD + inputLocation = os.path.join(tests_resource, "zcta510-small.csv") queryWindowSet = os.path.join(tests_resource, "zcta510-small.csv") offset = 0 diff --git a/python/tests/spatial_rdd/test_circle_rdd.py b/python/tests/spatial_rdd/test_circle_rdd.py index 6117c2bb18..d0151ec880 100644 --- a/python/tests/spatial_rdd/test_circle_rdd.py +++ b/python/tests/spatial_rdd/test_circle_rdd.py @@ -15,14 +15,15 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import PointRDD, CircleRDD -from tests.test_base import TestBase from tests.properties.point_properties import ( input_location, + num_partitions, offset, splitter, - num_partitions, ) +from tests.test_base import TestBase + +from sedona.core.SpatialRDD import CircleRDD, PointRDD class TestCircleRDD(TestBase): diff --git a/python/tests/spatial_rdd/test_linestring_rdd.py b/python/tests/spatial_rdd/test_linestring_rdd.py index edfb38e7cc..4820ad0c6c 100644 --- a/python/tests/spatial_rdd/test_linestring_rdd.py +++ b/python/tests/spatial_rdd/test_linestring_rdd.py @@ -15,22 +15,23 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import LineStringRDD -from sedona.core.enums import IndexType, GridType -from sedona.core.geom.envelope import Envelope from tests.properties.linestring_properties import ( - input_count, + grid_type, input_boundary, + input_boundary_2, + input_count, input_location, - splitter, num_partitions, - grid_type, + splitter, transformed_envelope, - input_boundary_2, transformed_envelope_2, ) from tests.test_base import TestBase +from sedona.core.enums import GridType, IndexType +from sedona.core.geom.envelope import Envelope +from sedona.core.SpatialRDD import LineStringRDD + class TestLineStringRDD(TestBase): diff --git a/python/tests/spatial_rdd/test_point_rdd.py b/python/tests/spatial_rdd/test_point_rdd.py index f7a8a1499c..e21bbf4c52 100644 --- a/python/tests/spatial_rdd/test_point_rdd.py +++ b/python/tests/spatial_rdd/test_point_rdd.py @@ -15,24 +15,25 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import PointRDD -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD -from sedona.core.enums import IndexType, GridType -from sedona.core.geom.envelope import Envelope from tests.properties.point_properties import ( + crs_envelope, + crs_envelope_transformed, + crs_point_test, + input_boundary, + input_count, input_location, + num_partitions, offset, splitter, - num_partitions, - input_count, - input_boundary, transformed_envelope, - crs_point_test, - crs_envelope, - crs_envelope_transformed, ) from tests.test_base import TestBase +from sedona.core.enums import GridType, IndexType +from sedona.core.geom.envelope import Envelope +from sedona.core.SpatialRDD import PointRDD +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD + class TestPointRDD(TestBase): diff --git a/python/tests/spatial_rdd/test_polygon_rdd.py b/python/tests/spatial_rdd/test_polygon_rdd.py index d2be163048..f0bc46331d 100644 --- a/python/tests/spatial_rdd/test_polygon_rdd.py +++ b/python/tests/spatial_rdd/test_polygon_rdd.py @@ -15,28 +15,29 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import PolygonRDD -from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD -from sedona.core.enums import IndexType, FileDataSplitter, GridType -from sedona.core.geom.envelope import Envelope from tests.properties.polygon_properties import ( - input_location, - splitter, - num_partitions, - input_count, - input_boundary, grid_type, + input_boundary, + input_count, + input_location, input_location_geo_json, - input_location_wkt, input_location_wkb, - query_envelope, - polygon_rdd_input_location, - polygon_rdd_start_offset, + input_location_wkt, + num_partitions, polygon_rdd_end_offset, + polygon_rdd_input_location, polygon_rdd_splitter, + polygon_rdd_start_offset, + query_envelope, + splitter, ) from tests.test_base import TestBase +from sedona.core.enums import FileDataSplitter, GridType, IndexType +from sedona.core.geom.envelope import Envelope +from sedona.core.SpatialRDD import PolygonRDD +from sedona.core.SpatialRDD.spatial_rdd import SpatialRDD + class TestPolygonRDD(TestBase): diff --git a/python/tests/spatial_rdd/test_rectangle_rdd.py b/python/tests/spatial_rdd/test_rectangle_rdd.py index 29b406c06d..4c67e751ae 100644 --- a/python/tests/spatial_rdd/test_rectangle_rdd.py +++ b/python/tests/spatial_rdd/test_rectangle_rdd.py @@ -18,13 +18,13 @@ import os import pytest - -from sedona.core.SpatialRDD import RectangleRDD -from sedona.core.enums import IndexType, GridType, FileDataSplitter -from sedona.core.geom.envelope import Envelope from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter, GridType, IndexType +from sedona.core.geom.envelope import Envelope +from sedona.core.SpatialRDD import RectangleRDD + inputLocation = os.path.join(tests_resource, "zcta510-small.csv") queryWindowSet = os.path.join(tests_resource, "zcta510-small.csv") offset = 0 diff --git a/python/tests/spatial_rdd/test_spatial_rdd.py b/python/tests/spatial_rdd/test_spatial_rdd.py index 6866d6b221..ae1dd2f628 100644 --- a/python/tests/spatial_rdd/test_spatial_rdd.py +++ b/python/tests/spatial_rdd/test_spatial_rdd.py @@ -21,13 +21,13 @@ import pytest from pyspark import RDD from shapely.geometry import Point +from tests.test_base import TestBase +from tests.tools import tests_resource -from sedona.core.SpatialRDD import PointRDD from sedona.core.enums import FileDataSplitter, GridType, IndexType from sedona.core.formatMapper.geo_json_reader import GeoJsonReader from sedona.core.geom.envelope import Envelope -from tests.test_base import TestBase -from tests.tools import tests_resource +from sedona.core.SpatialRDD import PointRDD input_file_location = os.path.join(tests_resource, "arealm-small.csv") crs_test_point = os.path.join(tests_resource, "crs-test-point.csv") diff --git a/python/tests/spatial_rdd/test_spatial_rdd_writer.py b/python/tests/spatial_rdd/test_spatial_rdd_writer.py index 334a7d1485..2e5a571c36 100644 --- a/python/tests/spatial_rdd/test_spatial_rdd_writer.py +++ b/python/tests/spatial_rdd/test_spatial_rdd_writer.py @@ -19,12 +19,12 @@ import shutil import pytest +from tests.test_base import TestBase +from tests.tools import tests_resource -from sedona.core.SpatialRDD import PointRDD from sedona.core.enums import FileDataSplitter from sedona.core.geom.envelope import Envelope -from tests.test_base import TestBase -from tests.tools import tests_resource +from sedona.core.SpatialRDD import PointRDD wkb_folder = "wkb" wkt_folder = "wkt" diff --git a/python/tests/sql/test_adapter.py b/python/tests/sql/test_adapter.py index c69e330daf..1c8ff34121 100644 --- a/python/tests/sql/test_adapter.py +++ b/python/tests/sql/test_adapter.py @@ -20,25 +20,25 @@ import pyspark import pytest from pyspark.sql import DataFrame -from pyspark.sql.functions import expr -from pyspark.sql.functions import col +from pyspark.sql.functions import col, expr +from tests import ( + area_lm_point_input_location, + geojson_id_input_location, + geojson_input_location, + mixed_wkt_geometry_input_location, + shape_file_input_location, + shape_file_with_missing_trailing_input_location, +) +from tests.test_base import TestBase from sedona import version -from sedona.core.SpatialRDD import PolygonRDD, CircleRDD from sedona.core.enums import FileDataSplitter, GridType, IndexType from sedona.core.formatMapper.shapefileParser.shape_file_reader import ShapefileReader from sedona.core.geom.envelope import Envelope from sedona.core.jvm.config import is_greater_or_equal_version from sedona.core.spatialOperator import JoinQuery +from sedona.core.SpatialRDD import CircleRDD, PolygonRDD from sedona.utils.adapter import Adapter -from tests import ( - geojson_input_location, - shape_file_with_missing_trailing_input_location, - geojson_id_input_location, -) -from tests import shape_file_input_location, area_lm_point_input_location -from tests import mixed_wkt_geometry_input_location -from tests.test_base import TestBase class TestAdapter(TestBase): diff --git a/python/tests/sql/test_aggregate_functions.py b/python/tests/sql/test_aggregate_functions.py index 32aa054aec..6aa0e7c250 100644 --- a/python/tests/sql/test_aggregate_functions.py +++ b/python/tests/sql/test_aggregate_functions.py @@ -16,7 +16,6 @@ # under the License. from shapely.geometry import Polygon - from tests import csv_point_input_location, union_polygon_input_location from tests.test_base import TestBase diff --git a/python/tests/sql/test_constructor_test.py b/python/tests/sql/test_constructor_test.py index 3b2c1ba792..126d985c8a 100644 --- a/python/tests/sql/test_constructor_test.py +++ b/python/tests/sql/test_constructor_test.py @@ -16,11 +16,11 @@ # under the License. from tests import ( - csv_point_input_location, area_lm_point_input_location, - mixed_wkt_geometry_input_location, - mixed_wkb_geometry_input_location, + csv_point_input_location, geojson_input_location, + mixed_wkb_geometry_input_location, + mixed_wkt_geometry_input_location, ) from tests.test_base import TestBase diff --git a/python/tests/sql/test_dataframe_api.py b/python/tests/sql/test_dataframe_api.py index c3e4d208c2..2af7e33e91 100644 --- a/python/tests/sql/test_dataframe_api.py +++ b/python/tests/sql/test_dataframe_api.py @@ -17,25 +17,21 @@ from math import radians from typing import Callable, Tuple -from pyspark.sql import functions as f, Row import pytest +from pyspark.sql import Row +from pyspark.sql import functions as f from shapely.geometry.base import BaseGeometry +from tests.test_base import TestBase +from sedona.sql import st_aggregates as sta +from sedona.sql import st_constructors as stc +from sedona.sql import st_functions as stf +from sedona.sql import st_predicates as stp from sedona.sql.st_aggregates import * from sedona.sql.st_constructors import * from sedona.sql.st_functions import * from sedona.sql.st_predicates import * -from sedona.sql import ( - st_aggregates as sta, - st_constructors as stc, - st_functions as stf, - st_predicates as stp, -) - -from tests.test_base import TestBase - - test_configurations = [ # constructors ( diff --git a/python/tests/sql/test_function.py b/python/tests/sql/test_function.py index 5b61d36006..367e0e0554 100644 --- a/python/tests/sql/test_function.py +++ b/python/tests/sql/test_function.py @@ -16,23 +16,24 @@ # under the License. import math +from typing import List + from pyspark.sql import DataFrame, Row -from pyspark.sql.functions import col -from pyspark.sql.functions import explode, expr -from pyspark.sql.types import StructType, StructField, IntegerType -from sedona.sql.types import GeometryType +from pyspark.sql.functions import col, explode, expr +from pyspark.sql.types import IntegerType, StructField, StructType from shapely import wkt from shapely.wkt import loads from tests import mixed_wkt_geometry_input_location from tests.sql.resource.sample_data import ( + create_sample_lines_df, create_sample_points, - create_simple_polygons_df, create_sample_points_df, create_sample_polygons_df, - create_sample_lines_df, + create_simple_polygons_df, ) from tests.test_base import TestBase -from typing import List + +from sedona.sql.types import GeometryType class TestPredicateJoin(TestBase): diff --git a/python/tests/sql/test_geoparquet.py b/python/tests/sql/test_geoparquet.py index 0878e20fb1..8a6b82e0eb 100644 --- a/python/tests/sql/test_geoparquet.py +++ b/python/tests/sql/test_geoparquet.py @@ -15,20 +15,20 @@ # specific language governing permissions and limitations # under the License. -import pytest -import os.path import json +import os.path -from shapely.geometry import Point -from shapely.geometry import LineString +import geopandas +import pytest +from shapely.geometry import LineString, Point from shapely.geometry.base import BaseGeometry from shapely.wkt import loads as wkt_loads -import geopandas - +from tests import ( + geoparquet_input_location, + legacy_parquet_input_location, + plain_parquet_input_location, +) from tests.test_base import TestBase -from tests import geoparquet_input_location -from tests import plain_parquet_input_location -from tests import legacy_parquet_input_location class TestGeoParquet(TestBase): diff --git a/python/tests/sql/test_predicate.py b/python/tests/sql/test_predicate.py index 539ed73584..538d61d32a 100644 --- a/python/tests/sql/test_predicate.py +++ b/python/tests/sql/test_predicate.py @@ -15,13 +15,13 @@ # specific language governing permissions and limitations # under the License. +from pyspark.sql.functions import expr from tests import ( - csv_point_input_location, csv_point1_input_location, + csv_point_input_location, csv_polygon1_input_location, ) from tests.test_base import TestBase -from pyspark.sql.functions import expr class TestPredicate(TestBase): diff --git a/python/tests/sql/test_predicate_join.py b/python/tests/sql/test_predicate_join.py index f8a35831a8..5c6966a820 100644 --- a/python/tests/sql/test_predicate_join.py +++ b/python/tests/sql/test_predicate_join.py @@ -18,23 +18,22 @@ from pyspark import Row from pyspark.sql.functions import broadcast, expr from pyspark.sql.types import ( - StructType, - StringType, + DoubleType, IntegerType, + StringType, StructField, - DoubleType, + StructType, ) - from tests import ( - csv_polygon_input_location, - csv_point_input_location, - overlap_polygon_input_location, csv_point1_input_location, csv_point2_input_location, + csv_point_input_location, csv_polygon1_input_location, - csv_polygon2_input_location, csv_polygon1_random_input_location, + csv_polygon2_input_location, csv_polygon2_random_input_location, + csv_polygon_input_location, + overlap_polygon_input_location, ) from tests.test_base import TestBase diff --git a/python/tests/sql/test_shapefile.py b/python/tests/sql/test_shapefile.py index b02cbc04d6..a6d5a578c6 100644 --- a/python/tests/sql/test_shapefile.py +++ b/python/tests/sql/test_shapefile.py @@ -15,10 +15,10 @@ # specific language governing permissions and limitations # under the License. -import pytest -import os.path import datetime +import os.path +import pytest from tests.test_base import TestBase from tests.tools import tests_resource diff --git a/python/tests/sql/test_spatial_rdd_to_spatial_dataframe.py b/python/tests/sql/test_spatial_rdd_to_spatial_dataframe.py index 45570396db..66bbaa71c8 100644 --- a/python/tests/sql/test_spatial_rdd_to_spatial_dataframe.py +++ b/python/tests/sql/test_spatial_rdd_to_spatial_dataframe.py @@ -17,15 +17,14 @@ import os -from pyspark.sql.types import StructType, StructField, StringType, IntegerType +from pyspark.sql.types import IntegerType, StringType, StructField, StructType +from shapely.geometry import Point +from tests.test_base import TestBase +from tests.tools import tests_resource -from sedona.core.SpatialRDD import PointRDD from sedona.core.enums import FileDataSplitter +from sedona.core.SpatialRDD import PointRDD from sedona.sql.types import GeometryType -from tests.test_base import TestBase -from shapely.geometry import Point - -from tests.tools import tests_resource point_input_path = os.path.join(tests_resource, "arealm-small.csv") diff --git a/python/tests/sql/test_st_function_imports.py b/python/tests/sql/test_st_function_imports.py index 79cf29d816..f0c38f6b07 100644 --- a/python/tests/sql/test_st_function_imports.py +++ b/python/tests/sql/test_st_function_imports.py @@ -22,12 +22,7 @@ class TestStFunctionImport(TestBase): def test_import(self): - from sedona.sql import ( - ST_Distance, - ST_Point, - ST_Contains, - ST_Envelope_Aggr, - ) + from sedona.sql import ST_Contains, ST_Distance, ST_Envelope_Aggr, ST_Point ST_Distance ST_Point @@ -35,7 +30,8 @@ def test_import(self): ST_Envelope_Aggr def test_geometry_type_should_be_a_sql_type(self): - from sedona.spark import GeometryType from pyspark.sql.types import UserDefinedType + from sedona.spark import GeometryType + assert isinstance(GeometryType(), UserDefinedType) diff --git a/python/tests/stats/test_dbscan.py b/python/tests/stats/test_dbscan.py index 6c6a0d3b32..0d816b6dce 100644 --- a/python/tests/stats/test_dbscan.py +++ b/python/tests/stats/test_dbscan.py @@ -17,14 +17,13 @@ import pyspark.sql.functions as f import pytest +from sklearn.cluster import DBSCAN as sklearnDBSCAN +from tests.test_base import TestBase from sedona.sql.st_constructors import ST_MakePoint from sedona.sql.st_functions import ST_Buffer -from sklearn.cluster import DBSCAN as sklearnDBSCAN from sedona.stats.clustering.dbscan import dbscan -from tests.test_base import TestBase - class TestDBScan(TestBase): diff --git a/python/tests/streaming/spark/cases_builder.py b/python/tests/streaming/spark/cases_builder.py index cfb25e4c67..5f650c61a1 100644 --- a/python/tests/streaming/spark/cases_builder.py +++ b/python/tests/streaming/spark/cases_builder.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -from typing import Dict, Any, List +from typing import Any, Dict, List class SuiteContainer: diff --git a/python/tests/streaming/spark/test_constructor_functions.py b/python/tests/streaming/spark/test_constructor_functions.py index a6ae01be21..30ca829c44 100644 --- a/python/tests/streaming/spark/test_constructor_functions.py +++ b/python/tests/streaming/spark/test_constructor_functions.py @@ -15,19 +15,19 @@ # specific language governing permissions and limitations # under the License. +import math import os import uuid -from typing import List, Any, Optional +from typing import Any, List, Optional import pytest -from pyspark.sql.types import StructType, StructField, Row -from shapely import wkt, wkb - -from sedona.sql.types import GeometryType +from pyspark.sql.types import Row, StructField, StructType +from shapely import wkb, wkt from tests import tests_resource from tests.streaming.spark.cases_builder import SuiteContainer from tests.test_base import TestBase -import math + +from sedona.sql.types import GeometryType SCHEMA = StructType([StructField("geom", GeometryType())]) diff --git a/python/tests/test_assign_raw_spatial_rdd.py b/python/tests/test_assign_raw_spatial_rdd.py index b367a08528..303ded9ace 100644 --- a/python/tests/test_assign_raw_spatial_rdd.py +++ b/python/tests/test_assign_raw_spatial_rdd.py @@ -15,15 +15,16 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import PointRDD, CircleRDD from tests.properties.point_properties import ( input_location, + num_partitions, offset, splitter, - num_partitions, ) from tests.test_base import TestBase +from sedona.core.SpatialRDD import CircleRDD, PointRDD + class TestSpatialRddAssignment(TestBase): diff --git a/python/tests/test_base.py b/python/tests/test_base.py index 8bd4b6461f..e45a6e9f6d 100644 --- a/python/tests/test_base.py +++ b/python/tests/test_base.py @@ -16,6 +16,7 @@ # under the License. from tempfile import mkdtemp + from sedona.spark import * from sedona.utils.decorators import classproperty diff --git a/python/tests/test_circle.py b/python/tests/test_circle.py index 91d8184823..688a399630 100644 --- a/python/tests/test_circle.py +++ b/python/tests/test_circle.py @@ -16,7 +16,6 @@ # under the License. import pytest - import shapely from shapely import wkt from shapely.geometry import Point diff --git a/python/tests/test_scala_example.py b/python/tests/test_scala_example.py index 909bb0212c..d2e1a33502 100644 --- a/python/tests/test_scala_example.py +++ b/python/tests/test_scala_example.py @@ -17,16 +17,16 @@ import os -from shapely.geometry import Point from pyspark import StorageLevel - -from sedona.core.SpatialRDD import PointRDD, CircleRDD, PolygonRDD -from sedona.core.enums import FileDataSplitter, IndexType, GridType -from sedona.core.geom.envelope import Envelope -from sedona.core.spatialOperator import RangeQuery, JoinQuery, KNNQuery +from shapely.geometry import Point from tests.test_base import TestBase from tests.tools import tests_resource +from sedona.core.enums import FileDataSplitter, GridType, IndexType +from sedona.core.geom.envelope import Envelope +from sedona.core.spatialOperator import JoinQuery, KNNQuery, RangeQuery +from sedona.core.SpatialRDD import CircleRDD, PointRDD, PolygonRDD + point_rdd_input_location = os.path.join(tests_resource, "arealm-small.csv") point_rdd_splitter = FileDataSplitter.CSV diff --git a/python/tests/utils/test_crs_transformation.py b/python/tests/utils/test_crs_transformation.py index ebf21eabd2..b751857fbf 100644 --- a/python/tests/utils/test_crs_transformation.py +++ b/python/tests/utils/test_crs_transformation.py @@ -15,15 +15,16 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.SpatialRDD import PointRDD, PolygonRDD, CircleRDD -from sedona.core.enums import GridType -from sedona.core.geom.circle import Circle -from sedona.core.spatialOperator import RangeQuery, KNNQuery, JoinQuery from tests.properties.crs_transform import * from tests.properties.polygon_properties import grid_type from tests.test_base import TestBase from tests.tools import distance_sorting_functions +from sedona.core.enums import GridType +from sedona.core.geom.circle import Circle +from sedona.core.spatialOperator import JoinQuery, KNNQuery, RangeQuery +from sedona.core.SpatialRDD import CircleRDD, PointRDD, PolygonRDD + class TestCrsTransformation(TestBase): diff --git a/python/tests/utils/test_geo_spark_meta.py b/python/tests/utils/test_geo_spark_meta.py index 3cc8f08c4e..14f6464a8d 100644 --- a/python/tests/utils/test_geo_spark_meta.py +++ b/python/tests/utils/test_geo_spark_meta.py @@ -15,9 +15,10 @@ # specific language governing permissions and limitations # under the License. -from sedona.core.jvm.config import is_greater_or_equal_version, SedonaMeta from tests.test_base import TestBase +from sedona.core.jvm.config import SedonaMeta, is_greater_or_equal_version + class TestGeoSparkMeta(TestBase): diff --git a/python/tests/utils/test_geometry_serde.py b/python/tests/utils/test_geometry_serde.py index 79981460cf..661aa169dd 100644 --- a/python/tests/utils/test_geometry_serde.py +++ b/python/tests/utils/test_geometry_serde.py @@ -15,11 +15,8 @@ # specific language governing permissions and limitations # under the License. import pytest - -from pyspark.sql.types import StructType, StringType -from sedona.sql.types import GeometryType from pyspark.sql.functions import expr - +from pyspark.sql.types import StringType, StructType from shapely.geometry import ( GeometryCollection, LineString, @@ -30,9 +27,10 @@ Polygon, ) from shapely.wkt import loads as wkt_loads - from tests.test_base import TestBase +from sedona.sql.types import GeometryType + class TestGeometrySerde(TestBase): @pytest.mark.parametrize( diff --git a/python/tests/utils/test_geomserde_speedup.py b/python/tests/utils/test_geomserde_speedup.py index a7478e0c75..ea2edc4a1e 100644 --- a/python/tests/utils/test_geomserde_speedup.py +++ b/python/tests/utils/test_geomserde_speedup.py @@ -15,9 +15,6 @@ # specific language governing permissions and limitations # under the License. -from sedona.utils import geometry_serde - -from shapely.geometry.base import BaseGeometry from shapely.geometry import ( GeometryCollection, LineString, @@ -27,8 +24,11 @@ Point, Polygon, ) +from shapely.geometry.base import BaseGeometry from shapely.wkt import loads as wkt_loads +from sedona.utils import geometry_serde + class TestGeomSerdeSpeedup: def test_speedup_enabled(self):