failmap/admin

View on GitHub
requirements.in

Summary

Maintainability
Test Coverage
# 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