Skip to content

Commit

Permalink
chore: add env for arm64 and xfail geospatial tests
Browse files Browse the repository at this point in the history
Add environment-arm64.yml to build dev env on mac m1 and m2.
While doing this, a shapely/geos bug fix was exposed (see
shapely issue 1992). Including the corresponding fixes, when
shapely is upgraded, the xfails should start xpass.
  • Loading branch information
ncclementi committed Feb 15, 2024
1 parent a20f44a commit a119133
Show file tree
Hide file tree
Showing 9 changed files with 137 additions and 16 deletions.
101 changes: 101 additions & 0 deletions environment-arm64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: ibis-dev
channels:
- conda-forge
dependencies:
# runtime dependencies
- python =3.10
- atpublic >=2.3
- bidict >=0.22.1
- clickhouse-connect >=0.5.23
- dask >=2022.9.1
- datafusion >=0.6
- db-dtypes >=0.3.0,<2
- deltalake
- duckdb-engine <1,>=0.1.8
- filelock >=3.7.0,<4
- fsspec >=2022.1.0
- gcsfs
- geoalchemy2 >=0.6.3
- geopandas >=0.6
- google-cloud-bigquery >=3,<4
- google-cloud-bigquery-storage >=2,<3
- impyla >=0.17
- multipledispatch >=0.6,<2
- numpy >=1.15,<2
- oracledb >=1.3.1
- packaging >=21.3
- pandas >=1.2.5
- parsy >=2
- pins >=0.8.2
- poetry-core >=1.0.0
- poetry-dynamic-versioning >=0.18.0
- polars >=0.19
- psycopg2 >=2.8.4
- pyarrow >=2
- pyarrow-hotfix >=0.4
- pydata-google-auth
- pydruid >=0.6.5
- pymssql >=2.2.5
- pymysql >=1
- pyspark >=3
- python-dateutil >=2.8.2
- python-duckdb >=0.8.1
- python-graphviz >=0.16
- pytz >=2022.7
- regex >=2021.7.6
- requests >=2
- rich >=12.4.4
- snowflake-connector-python >=3.0.2
- snowflake-sqlalchemy >=1.4.1
- sqlalchemy <3,>=1.4
- sqlalchemy-risingwave >=1.0.0
- sqlalchemy-views <1,>=0.3.1
- sqlalchemy_exasol >=4.6.0
- sqlglot >=18.7.0,<=20.11
- toolz >=0.11
- trino-python-client >=0.321
# geospatial
- leafmap >=0.29.6
# streaming
- kafka-python
# test dependencies
- filelock >=3.7.0,<4
- hypothesis >=6.58.0,<7
- pytest >=7.0.0,<9
- pytest-benchmark >=3.4.1,<5
- pytest-clarity >=1.0.1,<2
- pytest-cov >=3.0.0,<5
- pytest-httpserver >=1.0.5,<2
- pytest-mock >=3.6.1,<4
- pytest-randomly >=3.10.1,<4
- pytest-repeat >=0.9.1,<0.10
- pytest-snapshot >=0.9.0,<1
- pytest-xdist >=2.3.0,<4
- requests >=2,<3
# docs
- altair >=5.0.1
- distributed >=2022.9.1
- ipykernel >=6.25.1
- itables >=1.6.3
- nbclient >=0.8.0
- plotly >=5.16.1
- plotnine >=0.12.2
- py-cpuinfo >=9
- quartodoc >=0.6.1
- seaborn
# dev utilities
- codespell >=2.2.6
- ipython
- poetry-plugin-export
- pre-commit
- prettier
- pydeps >=1.12.7
- pyinstrument
- ruff >=0.1.8
- taplo
- tqdm >=4.66.1
- just
- pip
- pip:
- shapely>=2,<3
- apache-flink>=1.18.1
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ SELECT
ST_ASWKB("result") AS result
FROM (
SELECT
ST_GEOMFROMTEXT('MULTIPOINT (0 0, 1 1, 2 2)') AS "result"
ST_GEOMFROMTEXT('MULTIPOINT ((0 0), (1 1), (2 2))') AS "result"
)
9 changes: 8 additions & 1 deletion ibis/backends/duckdb/tests/test_geospatial.py
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,14 @@ def test_literal_geospatial_explicit(con, expr, snapshot):
(shp_polygon_0, "((0 0, 1 1, 2 2, 0 0))"),
(shp_multipolygon_0, "(((0 0, 1 1, 2 2, 0 0)))"),
(shp_multilinestring_0, "((0 0, 1 1, 2 2), (2 2, 1 1, 0 0))"),
(shp_multipoint_0, "(0 0, 1 1, 2 2)"),
param(
shp_multipoint_0,
"((0 0), (1 1), (2 2))",
marks=pytest.mark.xfail(
raises=AssertionError,
reason="Bug-fix change in GEOS 3.12 see shapely issue #1992",
),
),
],
)
def test_literal_geospatial_inferred(con, shp, expected, snapshot):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SELECT
ST_ASEWKB("t0"."<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>") AS "<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>"
ST_ASEWKB("t0"."<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>") AS "<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>"
FROM (
SELECT
ST_GEOMFROMTEXT('MULTIPOINT (10 40, 40 30, 20 20, 30 10)', 4326) AS "<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>"
ST_GEOMFROMTEXT('MULTIPOINT ((10 40), (40 30), (20 20), (30 10))', 4326) AS "<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>"
) AS "t0"
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SELECT
ST_ASEWKB("t0"."<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>") AS "<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>"
ST_ASEWKB("t0"."<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>") AS "<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>"
FROM (
SELECT
ST_GEOMFROMTEXT('MULTIPOINT (10 40, 40 30, 20 20, 30 10)', 4326) AS "<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>"
ST_GEOMFROMTEXT('MULTIPOINT ((10 40), (40 30), (20 20), (30 10))', 4326) AS "<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>"
) AS "t0"
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SELECT
ST_ASEWKB("t0"."<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>") AS "<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>"
ST_ASEWKB("t0"."<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>") AS "<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>"
FROM (
SELECT
ST_GEOMFROMTEXT('MULTIPOINT (10 40, 40 30, 20 20, 30 10)') AS "<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>"
ST_GEOMFROMTEXT('MULTIPOINT ((10 40), (40 30), (20 20), (30 10))') AS "<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>"
) AS "t0"
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SELECT
ST_ASEWKB("t0"."<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>") AS "<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>"
ST_ASEWKB("t0"."<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>") AS "<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>"
FROM (
SELECT
ST_GEOMFROMTEXT('MULTIPOINT (10 40, 40 30, 20 20, 30 10)', 4326) AS "<MULTIPOINT (10 40, 40 30, 20 20, 30 10)>"
ST_GEOMFROMTEXT('MULTIPOINT ((10 40), (40 30), (20 20), (30 10))', 4326) AS "<MULTIPOINT ((10 40), (40 30), (20 20), (30 10))>"
) AS "t0"
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SELECT
ST_ASEWKB("t0"."<MULTIPOINT (0 0, 1 1, 2 2)>") AS "<MULTIPOINT (0 0, 1 1, 2 2)>"
ST_ASEWKB("t0"."<MULTIPOINT ((0 0), (1 1), (2 2))>") AS "<MULTIPOINT ((0 0), (1 1), (2 2))>"
FROM (
SELECT
ST_GEOMFROMTEXT('MULTIPOINT (0 0, 1 1, 2 2)') AS "<MULTIPOINT (0 0, 1 1, 2 2)>"
ST_GEOMFROMTEXT('MULTIPOINT ((0 0), (1 1), (2 2))') AS "<MULTIPOINT ((0 0), (1 1), (2 2))>"
) AS "t0"
21 changes: 17 additions & 4 deletions ibis/backends/postgres/tests/test_geospatial.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,13 @@ def test_literal_geospatial_explicit(con, expr, snapshot):
shp_polygon_0,
shp_multipolygon_0,
shp_multilinestring_0,
shp_multipoint_0,
param(
shp_multipoint_0,
marks=pytest.mark.xfail(
raises=AssertionError,
reason="Bug-fix change in GEOS 3.12 see shapely issue #1992",
),
),
],
)
def test_literal_geospatial_inferred(con, shp, snapshot):
Expand Down Expand Up @@ -370,7 +376,7 @@ def test_geo_dataframe(geotable):
@pytest.mark.parametrize(
("shape", "value"),
[
# Geometry primitives (2D)
# # Geometry primitives (2D)
param("point", (30, 10), id="point"),
param("linestring", ((30, 10), (10, 30), (40, 40)), id="linestring"),
param(
Expand All @@ -387,7 +393,15 @@ def test_geo_dataframe(geotable):
id="polygon_single",
),
# Multipart geometries (2D)
param("multipoint", ((10, 40), (40, 30), (20, 20), (30, 10)), id="multipoint"),
param(
"multipoint",
((10, 40), (40, 30), (20, 20), (30, 10)),
id="multipoint",
marks=pytest.mark.xfail(
raises=AssertionError,
reason="Bug-fix change in GEOS 3.12 see shapely issue #1992",
),
),
param(
"multilinestring",
(((10, 10), (20, 20), (10, 40)), ((40, 40), (30, 30), (40, 20), (30, 10))),
Expand All @@ -409,7 +423,6 @@ def test_geo_dataframe(geotable):
def test_geo_literals_smoke(con, shape, value, modifier, snapshot):
"""Smoke tests for geo spatial literals."""
expr = ibis.literal(value, type=getattr(dt, shape).copy(**modifier))

snapshot.assert_match(con.compile(expr), "out.sql")


Expand Down

0 comments on commit a119133

Please sign in to comment.