Reorganize dependencies
giswqs opened this issue · 2 comments
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.
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
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/