From 4c5803545ddf2a93f1f72f1803856481a10c02c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=AD=C3=B0ir=20Valberg=20Gu=C3=B0mundsson?= Date: Mon, 21 Nov 2022 20:51:09 +0100 Subject: [PATCH] Switch out poetry with pip-tools. --- .dockerignore | 6 + Dockerfile | 26 +- Makefile | 19 ++ poetry.lock | 551 ------------------------------------------ pyproject.toml | 24 -- requirements/base.in | 7 + requirements/base.txt | 79 ++++++ requirements/dev.in | 8 + requirements/dev.txt | 211 ++++++++++++++++ requirements/test.in | 5 + requirements/test.txt | 136 +++++++++++ 11 files changed, 480 insertions(+), 592 deletions(-) create mode 100644 .dockerignore delete mode 100644 poetry.lock delete mode 100644 pyproject.toml create mode 100644 requirements/base.in create mode 100644 requirements/base.txt create mode 100644 requirements/dev.in create mode 100644 requirements/dev.txt create mode 100644 requirements/test.in create mode 100644 requirements/test.txt diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e8733a9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +* +.* +*/.* + +!src/ +!requirements/ diff --git a/Dockerfile b/Dockerfile index 05e39d1..e05257e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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"] diff --git a/Makefile b/Makefile index 3624bde..780fc9a 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index 83477ed..0000000 --- a/poetry.lock +++ /dev/null @@ -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 = [] diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 4671e3c..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,24 +0,0 @@ -[tool.poetry] -name = "membersystem" -version = "0.1.0" -description = "" -authors = ["Your Name "] - -[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" diff --git a/requirements/base.in b/requirements/base.in new file mode 100644 index 0000000..2c7bf1c --- /dev/null +++ b/requirements/base.in @@ -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 diff --git a/requirements/base.txt b/requirements/base.txt new file mode 100644 index 0000000..bd60189 --- /dev/null +++ b/requirements/base.txt @@ -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 diff --git a/requirements/dev.in b/requirements/dev.in new file mode 100644 index 0000000..7a45bd0 --- /dev/null +++ b/requirements/dev.in @@ -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 diff --git a/requirements/dev.txt b/requirements/dev.txt new file mode 100644 index 0000000..92d7f98 --- /dev/null +++ b/requirements/dev.txt @@ -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 diff --git a/requirements/test.in b/requirements/test.in new file mode 100644 index 0000000..ec90b2f --- /dev/null +++ b/requirements/test.in @@ -0,0 +1,5 @@ +-r base.txt + +coverage==6.5.0 +tblib==1.7.0 +unittest-xml-reporting==3.2.0 diff --git a/requirements/test.txt b/requirements/test.txt new file mode 100644 index 0000000..797fb9c --- /dev/null +++ b/requirements/test.txt @@ -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