Requirements

Before adding a new requirement to a project:

  1. Our core technologies are Django and Ember.

  2. Ask… is it really required? We want to re-use good code, but keep requirements to a minimum.

  3. Check the project is active i.e. has recent commits and is keeping up with recent releases e.g. Django 2

  4. Discuss with the team before adding.

Requirements:

anytree==2.4.3
APScheduler==3.6.3
attrs==19.3.0
beautifulsoup4==4.8.1
# bleach needs 'html5lib' (I think)
bleach==3.1.0
boto==2.36.0
celery==4.3.0
# for windows
# celery==3.1.26.post2
coreapi==2.3.3
cssselect==1.0.3
django-anymail==7.0.0
django-axes==5.0.20
django-bootstrap3==10.0.1
django-braces==1.14.0
django-colorful==1.2
django-cors-headers==3.2.0
django-countries==5.3.3
django-crispy-forms==1.7.2
django-dramatiq==0.9.1
django-extensions==2.2.5
django-formtools==2.1
django-mptt==0.11.0
django-nvd3==0.9.7
django-pyodbc-azure==2.1.0.0
django-recaptcha==1.4.0
django-reversion==3.0.5
django-sendfile==0.3.11
django-statsd-mozilla==0.3.14
django-storages-redux
django-taggit==1.2.0
django-waffle==0.11.1
django-webserver[waitress]==1.1.0
# Django 3 waiting on https://pypi.kbsoftware.co.uk/ which doesn't have it!
# Django==3.0.2
Django==2.2.12
djangoajax==3.1
djangorestframework==3.11.0
djrill==2.1.0
dnspython==1.15.0
docutils==0.14
dramatiq[redis, watch]==1.8.1
easy-thumbnails==2.7
elastic-apm==5.3.3
elasticsearch==6.4.0
Flask-Cors==3.0.6
Flask==1.0.2
git+https://github.com/pyinstaller/pyinstaller.git@c7a24e5a023bdd7d2d6c571f6bab0513d8e809a1#egg=PyInstaller
google-api-python-client==1.7.11
google-auth==1.7.2
hg+https://bitbucket.org/schinckel/django-jsonfield#egg=jsonfield
html5lib==1.0.1
humanize==0.5.1
iso8601==0.1.10
lxml==4.4.1
mailchimp3==3.0.6
mozilla-django-oidc==1.2.3
mysqlclient==1.4.6
Pillow==7.0.0
psd-tools==1.4
# see 'psycopg2' note below...
psycopg2==2.8.4
# for windows
psycopg2-binary==2.7.6.1
PyInstaller==3.4
pypiwin32==223
pypyodbc==1.3.5
python-dateutil==2.8.1
python-slugify==3.0.6
python-whois==0.7.0
pytz==2019.3
pyxero==0.9.1
# CVE-2017-18342 - https://github.com/advisories/GHSA-rprw-h62v-c2w7
PyYAML==5.2
redis==3.3.8
# for windows
# redis==2.10.6
reportlab==3.5.34
# see urllib3 (below)
requests==2.22.0
social-auth-app-django==1.1.0
sparkpost==1.3.6
spyne==2.11.0
statsd==3.0.1
# legacy
stripe==1.84.2
# SCA
stripe==2.43.0
tasklib==1.1.0
transitions==0.7.1
# for compatibility with requests
urllib3==1.24.2
workalendar==2.5.0
xmltodict==0.12.0
whitenoise==5.0.1
Yapsy==1.10.423

For local requirements (requirements/local.txt):

# django-debug-panel has not been updated since 2016
django-debug-toolbar==2.1

To update the version of a dependency in base.txt:

find . -name "base.txt" | xargs sed -i 's/Django==1.6.1/Django==1.6.2/g'

psycopg2

Psycopg 2.7.4 released, What’s the problem with Wheels?

email from Malcolm, 04/07/2018… it seems that until v2.8 is released the wheel is still included in the psycopg2 package and is installed by default so to install from source we need to specify the --no-binary option in the requirements file as follows:

psycopg2==2.7.5 --no-binary=psycopg2

Recreating the virtual environment or running pip uninstall psycopg2 and then pip install -r requirements/local.txt will install from source and remove the message.