Lighten or make the heavy package dependencies optional
- Vorherrschende Sprache
- Python
- Sterne
- 2.2k
- Forks
- 1.1k
- Ø Merge
- 2 Std. 40 Min.
- Gemergte PRs (30 T.)
- 2
Beschreibung
**Is your feature request related to a problem? Please describe.**
My problem is the dependencies of the arcgis package are so big and heavy its extremely onerous to incorporate arcgis into an existing Python application, even though often the features of arcgis we use don't require any of the really heavy dependencies (jupyter, pillow, ipywidgets, pandas, dask, numpy, matplotlib, etc.)
E.g. dependencies for arcgis 2.2.0
```python
dependencies = [
"pillow",
"urllib3>=1.21.1,<3",
"cachetools",
"lxml",
"notebook",
"cryptography",
"ipywidgets >=7,<8",
"widgetsnbextension >=3",
"jupyter-client <=6.1.12",
"pandas >=2.0.0,<3",
"numpy >=1.21.6",
"matplotlib",
"keyring >=23.3.0",
"pylerc",
"ujson >=3",
"jupyterlab",
"python-certifi-win32;python_version<'3.10'",
"truststore>=0.7.0;python_version>'3.9'",
'pywin32 >=223;platform_system=="Windows"',
"pyshp >=2",
"geomet",
"requests >=2.27.1,<3",
"requests-oauthlib",
"requests_toolbelt",
"pyspnego >=0.8.0",
"requests-kerberos",
"requests-gssapi",
"dask >=2023.3.2",
"matplotlib-inline",
]
```
**Describe the solution you'd like**
I'd like the arcgis package restructured or designed to make all the really heavy dependencies optional, so I can only include the ones I need for the functions I use.
**Describe alternatives you've considered**
The first alternative I tried was continuing to use arcgis as is and tolerating the hundreds of megabytes of additional dependencies it would pull in that we didn't need, and the extra 10+ minutes of dependency resolving time this would incur every time we need to update our own dependencies.
The current alternative I use (which is very time consuming and painful for me) is to perform the operations I do need with arcgis, reverse engineer the requests it makes to the REST API, then re-implement the minimal parts of the arcgis package I need for my own application.
Beitragsleitfaden
Rechercherichtung
Beginne damit, die Abhängigkeitsdeklarationen des Pakets arcgis zu prüfen und die aufgeführten umfangreichen Abhängigkeiten den Funktionen zuzuordnen, die sie importieren oder benötigen. Als abgeschlossen gilt die Aufgabe, wenn Benutzer leichte Funktionalität ohne diese Abhängigkeiten installieren und verwenden können, während Funktionalität, die sie benötigt, über explizite optionale Abhängigkeiten weiterhin verfügbar und dokumentiert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- jupyter, matplotlib, numpy, pandas, python
- Bereich
- build-system, developer-experience
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100