requirements.in
# Dependencies for this project are manager using pip-tools (https://github.com/jazzband/pip-tools).
# This is a simple management tool to manage version pinnin build on top of Pip and requirements.txt.
# See upgrade commands here: https://github.com/jazzband/pip-tools/
# eg: pip-compile --upgrade-package django
# Please also refer to: https://gitlab.com/internet-cleanup-foundation/web-security-map/blob/master/docs/source/topics/development/development.md#python-dependencies-managment
# To keep this file clear and simple:
# - specify requirements that are needed for Websecmap runtime (no development requirements, they go into requirements-dev.in).
# - version pinning only if it is required and explained
# - only direct requirements, not recursive (requirements of requirements)
# When recompiling for mac: export LDFLAGS=-L/usr/local/opt/openssl/lib
##
# Removed stuff
# proxybroker and it's dependency and requirements hell has been removed. It's replaced by 'get proxies elsewhere'
# which turned to be much more reliable and even cheaper (because it's faster and there is no list to maintain anymore)
# Django geojson was used for geojson fields in the "edit_area" of organizations. This was a GUI feature to
# edit coordinated visually. The geojsonfield has dependencies on gdal, and as such is impossible to work with
# as that requires the bleeding edge version of alpine linux (for over 2 years now). So we can't support this.
# Has been replaced with a normal jsonfield. When a need arises from a user, we can support it again (means = paid).
# typing was needed for python < 3.5
# Not needed with python < 3.5, we support 3.7 and up.
django
# Jet admin interface with several Django 3 fixes. Breaks the tab container + select2 lists. But it's better than
# nothing. Jet has not been maintained, even though it's been great, and alternatives are like 20 euro a month.
# This means we'll probably move to the (simpler) grapelli interface.
git+https://github.com/Barukimang/django-jet#egg=django-3-jet
django-countries
django-leaflet
jsonfield
django-import-export
django-constance[database]
pyyaml
# use mozzila certificate bundle by default
certifi
pytz
# task processing framework
django-celery-beat
# limit to version 4 as 5 has conflicting requirements with available flower atm.
celery[redis,gevent]<5
flower
celery-statsd
# Feature usage statistics
# https://github.com/pi-bjl/celery-statsd/commit/5d61d7756f115dbf05a7eeb8314495b53ee1955e
django-statsd-mozilla
# add tag support to statsd
statshog
# scanner deps
requests
# dnsrecon / DNS scanning dependencies
dnsrecon
dnspython
netaddr
# screenshots
Pillow>=8.1.1
python-resize-image
# url parsing in the database, and several other locations
tldextract
# logging
colorlog
# for proxying external requests (mapbox)
django-proxy
# sentry client
sentry-sdk
# allow recursive comparison of dictionaries
deepdiff
urllib3
# loading json is faster in simplejson
# https://stackoverflow.com/questions/712791/what-are-the-differences-between-json-and-simplejson-python-modules
# needed for mapping reasons.
simplejson
# autoexplain
pyopenssl
# static file collection/generation
django_compressor
csscompressor
retry
# map, to reduce the number of points (Ramer-Douglas-Peucker algorithm)
rdp
wikidata
django-nested-admin
# game requirements
django-crispy-forms
django-autocomplete-light
# who speaks what where
babel
django-admin-sortable2
pyexcel-text
# game team colors
validators
django-colorful
# game, add multiple urls in one go.
django-select2
# ISO country code conversion
iso3166
# generic retry library
tenacity
# game
spectra
markdown
# geocoding organizations from python
googlemaps
# allowing generic import of these types of files:
django-excel
pyexcel-xls
pyexcel-xlsx
pyexcel-ods
# database clients
# Mysqlclient on mac install instructions: https://github.com/PyMySQL/mysqlclient-python
mysqlclient
psycopg2-binary # binary package installs wheel, avoiding compiling
# Apple Silicon compat
numpy>=1.21.0
django-cors-headers