Flask==0.10.1

# Hello. This is Nick from the future (March 2019 to be exact). An emergency
# addition had to be made below to fix an issue related to a recent version of
# werkzeug. This library was not version locked in this file.
#
# The line below isn't covered on video, but it locks werkzeug to the latest
# version that works with this course's code base. A future update video will
# cover upgrading this package and more.
werkzeug==0.14.1

# Hello. This is Nick from the future (Feb 2022 to be exact). A new addition
# had to be made below to fix an issue related to the version of Flask
# that we use. A new major version of both itsdangerous and markupsafe came up
# that are no longer backwards compatible with our version of Flask.
#
# These packages are both dependencies of Flask and now we're locking them to
# a specific version that works with our version of Flask.
itsdangerous==1.1.0
markupsafe==1.1.1

# Hello. This is Nick from the future (March 2022 to be exact). A new addition
# had to be made below to fix an issue with a recent release of Jinja 3.1. It's
# breaking all sorts of libraries, so let's lock it to a stable 3.0.X version.
#
# Jinja 2 is the HTML templating library that Flask uses.
jinja2==3.0.3

# Application server for both development and production.
gunicorn==19.4.5

# Testing and static analysis.
#
# Hello. This is Nick from the future (December 2019 to be exact). Since we
# upgraded to Python 3.7.x, we also have to update pytest to 5.x.x since older
# versions of it are not compatable with Python 3.7+.
#
# This line is different than what's on video but we do cover this update in
# more detail in the October 2019 update video. When you run your tests you
# may also see extra warnings and details than what's on video. Don't sweat it.
pytest==5.1.0
pytest-cov==2.7.1
flake8==3.7.8

# CLI.
Click==6.4

# Data and workers.
#
# Hello. This is Nick from the future (August 2019 to be exact). An emergency
# addition had to be made below to fix an issue related to Docker recently
# changing the internals of their Python image.
#
# On video it shows psycopg2 version 2.6.1 but I had to bump it to 2.8.3 here.
psycopg2==2.8.3
Flask-SQLAlchemy==2.1

# Hello. This is Nick from the future (March 2019 to be exact). An emergency
# addition had to be made below to fix an issue that resulted in SQLAlchemy
# throwing an error. Flask-SQLAlchemy 2.1 doesn't version lock SQLAlchemy and
# SQLAlchemy 1.3.x introduced breaking changes.
#
# The line below isn't covered on video, but it locks SQLAlchemy to 1.2.0. A
# future update video will cover upgrading SQLAlchemy to 1.3.0 and more.
SQLAlchemy==1.2.0

# Hello. This is Nick from the future (October 2022 to be exact). Celery
# started to break because they didn't version lock this dependency and it was
# recently updated to 5.X which had breaking changes. Let's stick with 4.X.
importlib-metadata==4.13.0

# Hello. This is Nick from the future (December 2019 to be exact). Since we
# upgraded to Python 3.7.x, we also have to update Celery to 4.3.x since older
# versions of it are not compatible with Python 3.7+.
#
# This line is different than what's on video but we do cover this update in
# more detail in the October 2019 update video.
#
# And this is Nick again from September 2020. Turns out Celery 4.3.x started to
# break due to one of its dependencies not being locked. Now we're using 4.4.0.
redis==3.3.7
celery==4.4.0

# Forms.
Flask-WTF==0.9.5
WTForms-Components==0.9.7

# Hello. This is Nick from the future (Nov 2021 to be exact). WTForms 3.x came
# out recently and has a number of backwards incompatible changes. Flask-WTF
# will install the latest version so we need to version lock WTForms to 2.3.3.
# A future update video will address using the latest WTForms version.
WTForms==2.3.3

# Utils.
fake-factory==0.5.7

# Extensions.
flask-debugtoolbar==0.10.0
Flask-Mail==0.9.1
Flask-Login==0.3.2
