emscripten-forge / recipes

Recipes to build the packages for the emscripten-forge distribution
BSD 3-Clause "New" or "Revised" License
55 stars 49 forks source link

Package `geopandas` #315

Open jtpio opened 1 year ago

jtpio commented 1 year ago

At the moment geopandas appears to be missing:

                                           __
          __  ______ ___  ____ _____ ___  / /_  ____ _
         / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
        / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
       / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
      /_/

https://repo.mamba.pm/emscripten-forge/emscripte..  14.7kB @  30.0kB/s  0.5s
conda-forge/emscripten-32                          359.0 B @ 703.0 B/s 404 failed  0.5s
https://repo.mamba.pm/emscripten-forge/noarch      441.0 B @ 807.0 B/s  0.5s
https://repo.mamba.pm/conda-forge/emscripten-32     93.0 B @ 141.0 B/s 404 failed  0.7s
https://repo.mamba.pm/conda-forge/noarch            11.0MB @   1.4MB/s  8.0s
conda-forge/noarch                                  11.9MB @   1.1MB/s 10.2s
Encountered problems while solving:
  - nothing provides fiona needed by geopandas-0.10.0-pyhd8ed1ab_0

It would be great to add it to Emscripten Forge.

Pyodide has the recipe here: https://github.com/pyodide/pyodide/blob/main/packages/geopandas/meta.yaml

Looks like we might need to package a few others before such as shapely.

jsignell commented 1 year ago

I am really excited about voici, but the lack of geopandas is a blocker for me. Would it be helpful to open PRs for geopandas and deps?

martinRenou commented 1 year ago

That would be great! Happy to help reviewing PRs

jtpio commented 1 year ago

For reference we had a quick look at it during the JupyterCon 2023 sprint and tried to package protobuf first as it is a dependency:

But then haven't made progress since. So if you would like to have a look that would be great, thanks!

jsignell commented 1 year ago

Ok! That is good context. I don't have any expertise to bring, but I can certainly copy recipes from pyodide if that is helpful.

jsignell commented 1 year ago

I was looking a bit more into this and just wanted to point out that conda-forge there are two separate packages: geopandas-base and geopandas. For my purposes geopandas-base would be sufficient. I did a little digging and I think the non-python libraries that are missing are:

    - shapely
    - geos
    - pyproj
    - libproj

https://github.com/conda-forge/geopandas-feedstock/blob/main/recipe/meta.yaml

jsignell commented 1 year ago

those all have pyodide recipes, so I'll make some PRs.

jsignell commented 1 year ago

I created #603 and #604. Will try to do the proj ones tomorrow

m0lentum commented 8 months ago

How much work is left to be done on this? I find myself needing geopandas for a voici project and I'd be happy to help with whatever I can to get it running (although I'm new to this whole ecosystem, so it will take a little while to learn how to do anything useful)

jtpio commented 8 months ago

Looks like https://github.com/emscripten-forge/recipes/pull/604 is still open.

There might be some other dependencies to also package for emscripten-forge. Then adding the recipe for geopandas itself should hopefully be straightforward (according to the one in Pyodide: https://github.com/pyodide/pyodide/tree/main/packages/geopandas).

m0lentum commented 8 months ago

Thanks for the pointers. I'll work through the instructions for local builds and see if I can make any progress on top of #604.

jtpio commented 8 months ago

Thanks @m0lentum for the help!

m0lentum commented 7 months ago

Update: I had to move to a different task and unfortunately didn't manage to finish packaging geopandas, but I was able to set up local builds and identify a few more missing dependencies besides geos and shapely, namely fiona, gdal, and libproj. We still have potential projects that could use this, so I'll try to make time to get back to this later (if nobody else gets to it by then).

anutosh491 commented 4 months ago

I think we now have pyproj, shapely and geos ... so we would only need libproj to support geopandas-base @jsignell