question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Practical steps towards Shapely 2.0

See original GitHub issue

TODO before final release:

  • update list of contributors again

TODO items for the Shapely / PyGEOS merge:


Opening an issue to discuss the more practical aspects of the work on Shapely 2.0 (https://github.com/shapely/shapely-rfc/pull/1/). Changes needed in Shapely 1.8 (deprecations, etc) related to this are tracked in https://github.com/Toblerity/Shapely/issues/932

The general route I am now trying out is to, iteratively, refactor the shapely code in-place. But @caspervdw mentioned at https://github.com/Toblerity/Shapely/issues/782/#issuecomment-592058242 also the option of starting “fresh” (for the code, not for the existing tests and things like that).

For both ways, the work can be done in a separate branch, and then using the normal PR workflow (with PRs targetting that branch). This branch has already been created: https://github.com/Toblerity/Shapely/tree/shapely-2.0 (but is already a bit behind master). First question: how to keep this branch updated while master is still for 1.8? I would like to propose to initially rebase shapely-2.0 regularly on master. In an initial phase where there is still a lot of activity for 1.8 on master and only few people contribute to the shapely-2.0 branch, this seems easier / cleaner (there are eg also still some things to be merged in master on which we depend for shapely 2.0). Once the development focus shifts more to shapely-2.0, we can use the normal merging strategy already being used for the different branches right now. Does that sound good? (I can volunteer to do the rebases / fix conflicts 😃)

At some point we should probably move the source code of PyGEOS into Shapely (I would propose to do this in its entirety, and keeping its commit history (for proper attribution), and then clean-up / integrate in subsequent steps). But initially, I am actually already testing some things (eg the Geometry subclasses) with using pygeos as an external package.

cc @sgillies @mwtoews @tomplex @caspervdw


Practical steps (to further fill in while we go, but to keep track of the items we already have/know):

Issue Analytics

  • State:open
  • Created 3 years ago
  • Comments:47 (41 by maintainers)

github_iconTop GitHub Comments

17reactions
jorisvandenbosschecommented, Dec 1, 2021

Heads up: the first step (merging the pygeos source code and history into this repo) has been done!

This will require lots of follow-up to clean up and consolidate the merged repo (will make a more detailed checklist in the top post), but I started with a first step to get the package working again: https://github.com/Toblerity/Shapely/pull/1237

11reactions
jorisvandenbosschecommented, Aug 2, 2022

All of https://github.com/shapely/shapely/pull/1451, https://github.com/shapely/shapely/pull/1391 and https://github.com/shapely/shapely/pull/1426 are merged (as well as the update to require Python >= 3.7), so I am planning to tag a first alpha.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Version 2.x — Shapely 2.0.0 documentation - Read the Docs
Shapely 2.0 version is a major release featuring a complete refactor of the internals and new vectorized (element-wise) array operations, ...
Read more >
Shapely Documentation - Read the Docs
The following steps should enable you to build Shapely yourself: ... This practice is as old as the tradition of accurate paper maps....
Read more >
Joris Van den Bossche on Twitter: "It is finally happening! We ...
We started merging the PyGEOS package into Shapely. ... Practical steps towards Shapely 2.0 · Issue #962 · shapely/shapely.
Read more >
Geometries (shapely) — Spatial Data Programming with Python
shapely is a Python package for working with vector geometries, that is, the geometric component of vector layers (the other component ...
Read more >
Analyze Geospatial Data in Python: GeoPandas and Shapely
Geocoding is the process of converting a human-readable address into a set of geographic coordinates. For example, the Parthenon in Athens, Greece, is...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found