gee-community/geemap

Reorganize dependencies

giswqs opened this issue · 2 comments

giswqs commented

Some proposed changes to the geemap dependencies:

  • requirements.txt: this will include the core dependencies, such as earthengine-api, ipyleaflet, folium, ipyevents, etc.
  • requirements_extra.txt: this will include extra dependencies, such as ee_extra, gdown, geeadd, ipytree, whiteboxgui.
  • requirements_all.txt: this include all optional dependencies, such as geopandas, sankee, ffmpeg, etc.

As a result, installing geemap using pip will be as follows:

  • pip install geemap
  • pip install geemap[extra]
  • pip install geemap[all]

The goal is to reduce the number of core required dependencies, paving the way for potential adoption by Google Colab.

giswqs commented

For now, the core dependencies look like this. I will see if I can further trim it down. @jdbcode @KMarkert

geocoder, ipyfilechooser, ipytree pyperclip, and scooby can potentially be made optional as well. Need more investigation to make sure that removing them don't break the package.

bqplot
colour
earthengine-api>=0.1.347
eerepr>=0.0.4
folium>=0.13.0
geocoder
ipyevents
ipyfilechooser>=0.6.0
ipyleaflet>=0.17.0
ipytree
matplotlib
numpy
pandas
pyperclip
python-box
scooby

The following core dependencies are not available on Colab. If geemap were to be adopted by Colab, the following 15 dependencies will be installed.

bqplot: traittypes, jedi, bqplot
colour: colour
eerepr: eerepr
geocoder: ratelim, geocoder
ipyevents: ipyevents
ipyfilechooser: ipyfilechooser
ipyleaflet: xyzservices, ipyleaflet
ipytree: ipytree
pyperclip: pyperclip
python-box: python-box
scooby: scooby

The following dependencies have been changed from required to optional, moving them to requirements_extra.txt

ee_extra>=0.0.15
ffmpeg-python
gdown
geeadd>=0.5.1
geojson
pillow
pycrs
pyshp>=2.1.3
sankee>=0.1.0
whiteboxgui>=0.6.0
giswqs commented

Colab already has plotly pre-installed. We can probably switch the charting backend from bqplot to plotly. The plotly FigureWidget provides similar functionality to bqplot.
https://plotly.com/python/figurewidget-app/