Switch out poetry with pip-tools.

This commit is contained in:
Víðir Valberg Guðmundsson 2022-11-21 20:51:09 +01:00
parent 3dde14614f
commit 4c5803545d
11 changed files with 480 additions and 592 deletions

6
.dockerignore Normal file
View file

@ -0,0 +1,6 @@
*
.*
*/.*
!src/
!requirements/

View file

@ -6,9 +6,10 @@ ENV PYTHONFAULTHANDLER=1 \
PYTHONHASHSEED=random \
PIP_NO_CACHE_DIR=off \
PIP_DISABLE_PIP_VERSION_CHECK=on \
PIP_DEFAULT_TIMEOUT=100 \
POETRY_VERSION=1.1.12 \
POETRY_VIRTUALENVS_IN_PROJECT=true
PIP_DEFAULT_TIMEOUT=100
ARG DJANGO_ENV
ARG BUILD
ENV BUILD ${BUILD}
RUN apt-get update \
&& apt-get install -y \
@ -22,24 +23,15 @@ RUN apt-get update \
libgdk-pixbuf2.0-0 \
libffi-dev \
shared-mime-info \
gettext \
&& pip install "poetry==$POETRY_VERSION"
gettext
WORKDIR /app
COPY poetry.lock pyproject.toml /app/
ARG DJANGO_ENV
RUN poetry export --without-hashes -f requirements.txt $(test "$DJANGO_ENV" != production && echo "--dev") | pip install -r /dev/stdin
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www
COPY --chown=www:www ./ /app/
RUN groupadd -g 1000 www && useradd -u 1000 -ms /bin/bash -g www www
COPY --chown=www:www . /app/
RUN mkdir /app/src/static && chown www:www /app/src/static
ARG BUILD
ENV BUILD ${BUILD}
RUN pip install -r requirements/$([ "$DJANGO_ENV" = "production" ] && echo "base.txt" || echo "dev.txt") &&\
django-admin compilemessages
ENTRYPOINT ["./entrypoint.sh"]

View file

@ -5,9 +5,19 @@ DOCKER_CONTAINER_NAME = backend
MANAGE_EXEC = python /app/src/manage.py
MANAGE_COMMAND = ${DOCKER_RUN} ${DOCKER_CONTAINER_NAME} ${MANAGE_EXEC}
init: setup_venv pre_commit_install migrate
run:
${DOCKER_COMPOSE} up
setup_venv:
python3.10 -m venv venv;
venv/bin/python -m pip install wheel setuptools;
venv/bin/python -m pip install docker-compose pre-commit boto3 pip-tools;
pre_commit_install:
venv/bin/pre-commit install
makemigrations:
${MANAGE_COMMAND} makemigrations ${EXTRA_ARGS}
@ -37,3 +47,12 @@ poetry_command:
build_docker_image:
${DOCKER_COMPOSE} build ${DOCKER_CONTAINER_NAME}
compile_requirements:
./venv/bin/pip-compile --output-file requirements/base.txt requirements/base.in
compile_requirements_test: compile_requirements
./venv/bin/pip-compile --output-file requirements/test.txt requirements/test.in
compile_requirements_dev: compile_requirements_test
./venv/bin/pip-compile --output-file requirements/dev.txt requirements/dev.in

551
poetry.lock generated
View file

@ -1,551 +0,0 @@
[[package]]
name = "asgiref"
version = "3.5.2"
description = "ASGI specs, helper code, and adapters"
category = "main"
optional = false
python-versions = ">=3.7"
[package.extras]
tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"]
[[package]]
name = "atomicwrites"
version = "1.4.0"
description = "Atomic file writes."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "attrs"
version = "21.2.0"
description = "Classes Without Boilerplate"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[package.extras]
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"]
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
[[package]]
name = "certifi"
version = "2021.5.30"
description = "Python package for providing Mozilla's CA Bundle."
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "cffi"
version = "1.14.6"
description = "Foreign Function Interface for Python calling C code."
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
pycparser = "*"
[[package]]
name = "charset-normalizer"
version = "2.0.6"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
python-versions = ">=3.5.0"
[package.extras]
unicode_backport = ["unicodedata2"]
[[package]]
name = "click"
version = "7.1.2"
description = "Composable command line interface toolkit"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]]
name = "colorama"
version = "0.4.4"
description = "Cross-platform colored terminal text."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]]
name = "cryptography"
version = "35.0.0"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
category = "main"
optional = false
python-versions = ">=3.6"
[package.dependencies]
cffi = ">=1.12"
[package.extras]
docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
sdist = ["setuptools_rust (>=0.11.4)"]
ssh = ["bcrypt (>=3.1.5)"]
test = ["pytest (>=6.2.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
[[package]]
name = "defusedxml"
version = "0.7.1"
description = "XML bomb protection for Python stdlib modules"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]]
name = "dj-database-url"
version = "0.5.0"
description = "Use Database URLs in your Django Application."
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "dj-email-url"
version = "1.0.2"
description = "Use an URL to configure email backend settings in your Django Application."
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "django"
version = "4.1"
description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
category = "main"
optional = false
python-versions = ">=3.8"
[package.dependencies]
asgiref = ">=3.5.2,<4"
sqlparse = ">=0.2.2"
tzdata = {version = "*", markers = "sys_platform == \"win32\""}
[package.extras]
argon2 = ["argon2-cffi (>=19.1.0)"]
bcrypt = ["bcrypt"]
[[package]]
name = "django-allauth"
version = "0.46.0"
description = "Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication."
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
Django = ">=2.0"
pyjwt = {version = ">=1.7", extras = ["crypto"]}
python3-openid = ">=3.0.8"
requests = "*"
requests-oauthlib = ">=0.3.0"
[[package]]
name = "django-cache-url"
version = "3.2.3"
description = "Use Cache URLs in your Django application."
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "django-debug-toolbar"
version = "3.5.0"
description = "A configurable set of panels that display various debug information about the current request/response."
category = "dev"
optional = false
python-versions = ">=3.7"
[package.dependencies]
Django = ">=3.2"
sqlparse = ">=0.2.0"
[[package]]
name = "django-money"
version = "1.3"
description = "Adds support for using money and currency fields in django models and forms. Uses py-moneyed as the money implementation."
category = "main"
optional = false
python-versions = ">=3.5"
[package.dependencies]
Django = ">=1.11"
py-moneyed = ">=0.8,<1.0"
[package.extras]
test = ["mixer", "django-reversion", "pytest-cov", "pytest-pythonpath", "pytest-django", "pytest (>=3.1.0)"]
exchange = ["certifi"]
[[package]]
name = "environs"
version = "9.5.0"
description = "simplified environment variable parsing"
category = "main"
optional = false
python-versions = ">=3.6"
[package.dependencies]
dj-database-url = {version = "*", optional = true, markers = "extra == \"django\""}
dj-email-url = {version = "*", optional = true, markers = "extra == \"django\""}
django-cache-url = {version = "*", optional = true, markers = "extra == \"django\""}
marshmallow = ">=3.0.0"
python-dotenv = "*"
[package.extras]
dev = ["pytest", "dj-database-url", "dj-email-url", "django-cache-url", "flake8 (==4.0.1)", "flake8-bugbear (==21.9.2)", "mypy (==0.910)", "pre-commit (>=2.4,<3.0)", "tox"]
django = ["dj-database-url", "dj-email-url", "django-cache-url"]
lint = ["flake8 (==4.0.1)", "flake8-bugbear (==21.9.2)", "mypy (==0.910)", "pre-commit (>=2.4,<3.0)"]
tests = ["pytest", "dj-database-url", "dj-email-url", "django-cache-url"]
[[package]]
name = "h11"
version = "0.12.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
category = "main"
optional = false
python-versions = ">=3.6"
[[package]]
name = "idna"
version = "3.2"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
optional = false
python-versions = ">=3.5"
[[package]]
name = "marshmallow"
version = "3.13.0"
description = "A lightweight library for converting complex datatypes to and from native Python datatypes."
category = "main"
optional = false
python-versions = ">=3.5"
[package.extras]
dev = ["pytest", "pytz", "simplejson", "mypy (==0.910)", "flake8 (==3.9.2)", "flake8-bugbear (==21.4.3)", "pre-commit (>=2.4,<3.0)", "tox"]
docs = ["sphinx (==4.1.1)", "sphinx-issues (==1.2.0)", "alabaster (==0.7.12)", "sphinx-version-warning (==1.1.2)", "autodocsumm (==0.2.6)"]
lint = ["mypy (==0.910)", "flake8 (==3.9.2)", "flake8-bugbear (==21.4.3)", "pre-commit (>=2.4,<3.0)"]
tests = ["pytest", "pytz", "simplejson"]
[[package]]
name = "more-itertools"
version = "8.10.0"
description = "More routines for operating on iterables, beyond itertools"
category = "dev"
optional = false
python-versions = ">=3.5"
[[package]]
name = "oauthlib"
version = "3.1.1"
description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
category = "main"
optional = false
python-versions = ">=3.6"
[package.extras]
rsa = ["cryptography (>=3.0.0,<4)"]
signals = ["blinker (>=1.4.0)"]
signedtoken = ["cryptography (>=3.0.0,<4)", "pyjwt (>=2.0.0,<3)"]
[[package]]
name = "packaging"
version = "21.0"
description = "Core utilities for Python packages"
category = "dev"
optional = false
python-versions = ">=3.6"
[package.dependencies]
pyparsing = ">=2.0.2"
[[package]]
name = "pluggy"
version = "0.13.1"
description = "plugin and hook calling mechanisms for python"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.extras]
dev = ["pre-commit", "tox"]
[[package]]
name = "psycopg2"
version = "2.9.2"
description = "psycopg2 - Python-PostgreSQL Database Adapter"
category = "main"
optional = false
python-versions = ">=3.6"
[[package]]
name = "py"
version = "1.10.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "py-moneyed"
version = "0.8.0"
description = "Provides Currency and Money classes for use in your Python code."
category = "main"
optional = false
python-versions = "*"
[package.extras]
tests = ["tox (>=1.6.0)", "pytest (>=2.3.0)"]
[[package]]
name = "pycparser"
version = "2.20"
description = "C parser in Python"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pyjwt"
version = "2.4.0"
description = "JSON Web Token implementation in Python"
category = "main"
optional = false
python-versions = ">=3.6"
[package.dependencies]
cryptography = {version = ">=3.3.1", optional = true, markers = "extra == \"crypto\""}
[package.extras]
tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"]
docs = ["zope.interface", "sphinx-rtd-theme", "sphinx"]
dev = ["pre-commit", "mypy", "coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)", "cryptography (>=3.3.1)", "zope.interface", "sphinx-rtd-theme", "sphinx"]
crypto = ["cryptography (>=3.3.1)"]
[[package]]
name = "pyparsing"
version = "2.4.7"
description = "Python parsing module"
category = "dev"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "pytest"
version = "5.1.0"
description = "pytest: simple powerful testing with Python"
category = "dev"
optional = false
python-versions = ">=3.5"
[package.dependencies]
atomicwrites = ">=1.0"
attrs = ">=17.4.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
more-itertools = ">=4.0.0"
packaging = "*"
pluggy = ">=0.12,<1.0"
py = ">=1.5.0"
wcwidth = "*"
[package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
[[package]]
name = "pytest-django"
version = "3.5.0"
description = "A Django plugin for pytest."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.dependencies]
pytest = ">=3.6"
[package.extras]
docs = ["sphinx", "sphinx-rtd-theme"]
testing = ["django", "django-configurations (>=2.0)", "six"]
[[package]]
name = "python-dotenv"
version = "0.19.0"
description = "Read key-value pairs from a .env file and set them as environment variables"
category = "main"
optional = false
python-versions = ">=3.5"
[package.extras]
cli = ["click (>=5.0)"]
[[package]]
name = "python3-openid"
version = "3.2.0"
description = "OpenID support for modern servers and consumers."
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
defusedxml = "*"
[package.extras]
mysql = ["mysql-connector-python"]
postgresql = ["psycopg2"]
[[package]]
name = "requests"
version = "2.26.0"
description = "Python HTTP for Humans."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
[package.dependencies]
certifi = ">=2017.4.17"
charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""}
idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""}
urllib3 = ">=1.21.1,<1.27"
[package.extras]
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
[[package]]
name = "requests-oauthlib"
version = "1.3.0"
description = "OAuthlib authentication support for Requests."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.dependencies]
oauthlib = ">=3.0.0"
requests = ">=2.0.0"
[package.extras]
rsa = ["oauthlib[signedtoken] (>=3.0.0)"]
[[package]]
name = "sqlparse"
version = "0.4.2"
description = "A non-validating SQL parser."
category = "main"
optional = false
python-versions = ">=3.5"
[[package]]
name = "tzdata"
version = "2021.5"
description = "Provider of IANA time zone data"
category = "main"
optional = false
python-versions = ">=2"
[[package]]
name = "urllib3"
version = "1.26.7"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
[package.extras]
brotli = ["brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[[package]]
name = "uvicorn"
version = "0.13.4"
description = "The lightning-fast ASGI server."
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
click = ">=7.0.0,<8.0.0"
h11 = ">=0.8"
[package.extras]
standard = ["websockets (>=8.0.0,<9.0.0)", "watchgod (>=0.6)", "python-dotenv (>=0.13)", "PyYAML (>=5.1)", "httptools (>=0.1.0,<0.2.0)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "colorama (>=0.4)"]
[[package]]
name = "wcwidth"
version = "0.2.5"
description = "Measures the displayed width of unicode strings in a terminal"
category = "dev"
optional = false
python-versions = "*"
[[package]]
name = "whitenoise"
version = "5.2.0"
description = "Radically simplified static file serving for WSGI applications"
category = "main"
optional = false
python-versions = ">=3.5, <4"
[package.extras]
brotli = ["brotli"]
[metadata]
lock-version = "1.1"
python-versions = "^3.10"
content-hash = "36626d533a72d4a8597cc1109cf41e383ef0f3663e36770cfe00feac0679ac7d"
[metadata.files]
asgiref = []
atomicwrites = []
attrs = []
certifi = []
cffi = []
charset-normalizer = []
click = []
colorama = []
cryptography = []
defusedxml = []
dj-database-url = []
dj-email-url = []
django = []
django-allauth = []
django-cache-url = []
django-debug-toolbar = []
django-money = []
environs = []
h11 = []
idna = []
marshmallow = []
more-itertools = []
oauthlib = []
packaging = []
pluggy = []
psycopg2 = []
py = []
py-moneyed = []
pycparser = []
pyjwt = []
pyparsing = []
pytest = []
pytest-django = []
python-dotenv = []
python3-openid = []
requests = []
requests-oauthlib = []
sqlparse = []
tzdata = []
urllib3 = []
uvicorn = []
wcwidth = []
whitenoise = []

View file

@ -1,24 +0,0 @@
[tool.poetry]
name = "membersystem"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = "^3.10"
Django = "^4.1"
django-money = "^1.3"
django-allauth = "^0.46"
psycopg2 = "^2.9"
environs = {extras = ["django"], version = "^9.3"}
uvicorn = "^0.13"
whitenoise = "^5.2"
[tool.poetry.dev-dependencies]
pytest = "^5.1"
pytest-django = "^3.5"
django-debug-toolbar = "^3.5"
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

7
requirements/base.in Normal file
View file

@ -0,0 +1,7 @@
Django==4.1
django-money==1.3
django-allauth==0.46
psycopg2-binary==2.9.5
environs[django]==9.3
uvicorn==0.13
whitenoise==5.2

79
requirements/base.txt Normal file
View file

@ -0,0 +1,79 @@
#
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
# pip-compile --output-file=requirements/base.txt requirements/base.in
#
asgiref==3.5.2
# via django
certifi==2022.9.24
# via requests
cffi==1.15.1
# via cryptography
charset-normalizer==2.1.1
# via requests
click==7.1.2
# via uvicorn
cryptography==38.0.3
# via pyjwt
defusedxml==0.7.1
# via python3-openid
dj-database-url==1.0.0
# via environs
dj-email-url==1.0.6
# via environs
django==4.1
# via
# -r requirements/base.in
# dj-database-url
# django-allauth
# django-money
django-allauth==0.46
# via -r requirements/base.in
django-cache-url==3.4.2
# via environs
django-money==1.3
# via -r requirements/base.in
environs[django]==9.3
# via -r requirements/base.in
h11==0.14.0
# via uvicorn
idna==3.4
# via requests
marshmallow==3.19.0
# via environs
oauthlib==3.2.2
# via requests-oauthlib
packaging==21.3
# via marshmallow
psycopg2-binary==2.9.5
# via -r requirements/base.in
py-moneyed==0.8.0
# via django-money
pycparser==2.21
# via cffi
pyjwt[crypto]==2.6.0
# via django-allauth
pyparsing==3.0.9
# via packaging
python-dotenv==0.21.0
# via environs
python3-openid==3.2.0
# via django-allauth
requests==2.28.1
# via
# django-allauth
# requests-oauthlib
requests-oauthlib==1.3.1
# via django-allauth
sqlparse==0.4.3
# via django
urllib3==1.26.12
# via requests
uvicorn==0.13
# via -r requirements/base.in
whitenoise==5.2
# via -r requirements/base.in
# The following packages are considered to be unsafe in a requirements file:
# setuptools

8
requirements/dev.in Normal file
View file

@ -0,0 +1,8 @@
-r test.txt
django-browser-reload==1.6.0
django-debug-toolbar==3.7.0
django-extensions==3.2.1
django-stubs==1.12.0
ipython==8.6.0
mypy==0.990

211
requirements/dev.txt Normal file
View file

@ -0,0 +1,211 @@
#
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
# pip-compile --output-file=requirements/dev.txt requirements/dev.in
#
asgiref==3.5.2
# via
# -r requirements/test.txt
# django
asttokens==2.1.0
# via stack-data
backcall==0.2.0
# via ipython
certifi==2022.9.24
# via
# -r requirements/test.txt
# requests
cffi==1.15.1
# via
# -r requirements/test.txt
# cryptography
charset-normalizer==2.1.1
# via
# -r requirements/test.txt
# requests
click==7.1.2
# via
# -r requirements/test.txt
# uvicorn
coverage==6.5.0
# via -r requirements/test.txt
cryptography==38.0.3
# via
# -r requirements/test.txt
# pyjwt
decorator==5.1.1
# via ipython
defusedxml==0.7.1
# via
# -r requirements/test.txt
# python3-openid
dj-database-url==1.0.0
# via
# -r requirements/test.txt
# environs
dj-email-url==1.0.6
# via
# -r requirements/test.txt
# environs
django==4.1
# via
# -r requirements/test.txt
# dj-database-url
# django-allauth
# django-browser-reload
# django-debug-toolbar
# django-extensions
# django-money
# django-stubs
# django-stubs-ext
django-allauth==0.46
# via -r requirements/test.txt
django-browser-reload==1.6.0
# via -r requirements/dev.in
django-cache-url==3.4.2
# via
# -r requirements/test.txt
# environs
django-debug-toolbar==3.7.0
# via -r requirements/dev.in
django-extensions==3.2.1
# via -r requirements/dev.in
django-money==1.3
# via -r requirements/test.txt
django-stubs==1.12.0
# via -r requirements/dev.in
django-stubs-ext==0.7.0
# via django-stubs
environs[django]==9.3
# via -r requirements/test.txt
executing==1.2.0
# via stack-data
h11==0.14.0
# via
# -r requirements/test.txt
# uvicorn
idna==3.4
# via
# -r requirements/test.txt
# requests
ipython==8.6.0
# via -r requirements/dev.in
jedi==0.18.1
# via ipython
lxml==4.9.1
# via
# -r requirements/test.txt
# unittest-xml-reporting
marshmallow==3.19.0
# via
# -r requirements/test.txt
# environs
matplotlib-inline==0.1.6
# via ipython
mypy==0.990
# via
# -r requirements/dev.in
# django-stubs
mypy-extensions==0.4.3
# via mypy
oauthlib==3.2.2
# via
# -r requirements/test.txt
# requests-oauthlib
packaging==21.3
# via
# -r requirements/test.txt
# marshmallow
parso==0.8.3
# via jedi
pexpect==4.8.0
# via ipython
pickleshare==0.7.5
# via ipython
prompt-toolkit==3.0.32
# via ipython
psycopg2-binary==2.9.5
# via -r requirements/test.txt
ptyprocess==0.7.0
# via pexpect
pure-eval==0.2.2
# via stack-data
py-moneyed==0.8.0
# via
# -r requirements/test.txt
# django-money
pycparser==2.21
# via
# -r requirements/test.txt
# cffi
pygments==2.13.0
# via ipython
pyjwt[crypto]==2.6.0
# via
# -r requirements/test.txt
# django-allauth
pyparsing==3.0.9
# via
# -r requirements/test.txt
# packaging
python-dotenv==0.21.0
# via
# -r requirements/test.txt
# environs
python3-openid==3.2.0
# via
# -r requirements/test.txt
# django-allauth
requests==2.28.1
# via
# -r requirements/test.txt
# django-allauth
# requests-oauthlib
requests-oauthlib==1.3.1
# via
# -r requirements/test.txt
# django-allauth
six==1.16.0
# via asttokens
sqlparse==0.4.3
# via
# -r requirements/test.txt
# django
# django-debug-toolbar
stack-data==0.6.1
# via ipython
tblib==1.7.0
# via -r requirements/test.txt
tomli==2.0.1
# via
# django-stubs
# mypy
traitlets==5.5.0
# via
# ipython
# matplotlib-inline
types-pytz==2022.6.0.1
# via django-stubs
types-pyyaml==6.0.12.2
# via django-stubs
typing-extensions==4.4.0
# via
# django-stubs
# django-stubs-ext
# mypy
unittest-xml-reporting==3.2.0
# via -r requirements/test.txt
urllib3==1.26.12
# via
# -r requirements/test.txt
# requests
uvicorn==0.13
# via -r requirements/test.txt
wcwidth==0.2.5
# via prompt-toolkit
whitenoise==5.2
# via -r requirements/test.txt
# The following packages are considered to be unsafe in a requirements file:
# setuptools

5
requirements/test.in Normal file
View file

@ -0,0 +1,5 @@
-r base.txt
coverage==6.5.0
tblib==1.7.0
unittest-xml-reporting==3.2.0

136
requirements/test.txt Normal file
View file

@ -0,0 +1,136 @@
#
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
# pip-compile --output-file=requirements/test.txt requirements/test.in
#
asgiref==3.5.2
# via
# -r requirements/base.txt
# django
certifi==2022.9.24
# via
# -r requirements/base.txt
# requests
cffi==1.15.1
# via
# -r requirements/base.txt
# cryptography
charset-normalizer==2.1.1
# via
# -r requirements/base.txt
# requests
click==7.1.2
# via
# -r requirements/base.txt
# uvicorn
coverage==6.5.0
# via -r requirements/test.in
cryptography==38.0.3
# via
# -r requirements/base.txt
# pyjwt
defusedxml==0.7.1
# via
# -r requirements/base.txt
# python3-openid
dj-database-url==1.0.0
# via
# -r requirements/base.txt
# environs
dj-email-url==1.0.6
# via
# -r requirements/base.txt
# environs
django==4.1
# via
# -r requirements/base.txt
# dj-database-url
# django-allauth
# django-money
django-allauth==0.46
# via -r requirements/base.txt
django-cache-url==3.4.2
# via
# -r requirements/base.txt
# environs
django-money==1.3
# via -r requirements/base.txt
environs[django]==9.3
# via -r requirements/base.txt
h11==0.14.0
# via
# -r requirements/base.txt
# uvicorn
idna==3.4
# via
# -r requirements/base.txt
# requests
lxml==4.9.1
# via unittest-xml-reporting
marshmallow==3.19.0
# via
# -r requirements/base.txt
# environs
oauthlib==3.2.2
# via
# -r requirements/base.txt
# requests-oauthlib
packaging==21.3
# via
# -r requirements/base.txt
# marshmallow
psycopg2-binary==2.9.5
# via -r requirements/base.txt
py-moneyed==0.8.0
# via
# -r requirements/base.txt
# django-money
pycparser==2.21
# via
# -r requirements/base.txt
# cffi
pyjwt[crypto]==2.6.0
# via
# -r requirements/base.txt
# django-allauth
pyparsing==3.0.9
# via
# -r requirements/base.txt
# packaging
python-dotenv==0.21.0
# via
# -r requirements/base.txt
# environs
python3-openid==3.2.0
# via
# -r requirements/base.txt
# django-allauth
requests==2.28.1
# via
# -r requirements/base.txt
# django-allauth
# requests-oauthlib
requests-oauthlib==1.3.1
# via
# -r requirements/base.txt
# django-allauth
sqlparse==0.4.3
# via
# -r requirements/base.txt
# django
tblib==1.7.0
# via -r requirements/test.in
unittest-xml-reporting==3.2.0
# via -r requirements/test.in
urllib3==1.26.12
# via
# -r requirements/base.txt
# requests
uvicorn==0.13
# via -r requirements/base.txt
whitenoise==5.2
# via -r requirements/base.txt
# The following packages are considered to be unsafe in a requirements file:
# setuptools