From c5458c2d06fa2e641a01eeb168c1498ca7326b29 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Thu, 10 Aug 2023 16:30:06 +1000 Subject: [PATCH] Migrate to Poetry rather than Pipenv --- .gitignore | 1 + .pre-commit-config.yaml | 4 +- poetry.lock | 1467 +++++++++++++++++++++++++++++++++++++++ pyproject.toml | 67 ++ 4 files changed, 1537 insertions(+), 2 deletions(-) create mode 100644 poetry.lock create mode 100644 pyproject.toml diff --git a/.gitignore b/.gitignore index fa6de09..f81937d 100644 --- a/.gitignore +++ b/.gitignore @@ -18,5 +18,6 @@ media /.env /.mypy_cache /.pytest_cache +/*.egg-info/ /static node_modules diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fc4eb69..538847e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,13 +18,13 @@ repos: hooks: - id: pytest name: Check pytest unit tests pass - entry: pipenv run pytest + entry: poetry run pytest pass_filenames: false language: system types: [python] - id: mypy name: Check mypy static types match - entry: pipenv run mypy . --ignore-missing-imports + entry: poetry run mypy . --ignore-missing-imports pass_filenames: false language: system types: [python] diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..ee776f0 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1467 @@ +[[package]] +category = "main" +description = "Determine the best content to send in an HTTP response" +name = "accept-types" +optional = false +python-versions = "*" +version = "0.4.1" + +[[package]] +category = "main" +description = "ago: Human readable timedeltas" +name = "ago" +optional = false +python-versions = "*" +version = "0.0.95" + +[[package]] +category = "dev" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +name = "appdirs" +optional = false +python-versions = "*" +version = "1.4.4" + +[[package]] +category = "main" +description = "The secure Argon2 password hashing algorithm." +name = "argon2-cffi" +optional = false +python-versions = ">=3.6" +version = "21.3.0" + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["pre-commit", "cogapp", "tomli", "coverage (>=5.0.2)", "hypothesis", "pytest", "sphinx", "sphinx-notfound-page", "furo"] +docs = ["sphinx", "sphinx-notfound-page", "furo"] +tests = ["coverage (>=5.0.2)", "hypothesis", "pytest"] + +[[package]] +category = "main" +description = "Low-level CFFI bindings for Argon2" +name = "argon2-cffi-bindings" +optional = false +python-versions = ">=3.6" +version = "21.2.0" + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["pytest", "cogapp", "pre-commit", "wheel"] +tests = ["pytest"] + +[[package]] +category = "main" +description = "ASGI specs, helper code, and adapters" +name = "asgiref" +optional = false +python-versions = ">=3.7" +version = "3.7.2" + +[package.dependencies] +[package.dependencies.typing-extensions] +python = "<3.11" +version = ">=4" + +[package.extras] +tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"] + +[[package]] +category = "main" +description = "Timeout context manager for asyncio programs" +marker = "python_full_version <= \"3.11.2\"" +name = "async-timeout" +optional = false +python-versions = ">=3.6" +version = "4.0.2" + +[[package]] +category = "main" +description = "Screen-scraping library" +name = "beautifulsoup4" +optional = false +python-versions = ">=3.6.0" +version = "4.12.2" + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +category = "main" +description = "An easy safelist-based HTML-sanitizing tool." +name = "bleach" +optional = false +python-versions = ">=3.7" +version = "6.0.0" + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.2)"] + +[[package]] +category = "main" +description = "httplib2 caching for requests" +name = "cachecontrol" +optional = false +python-versions = ">=3.7" +version = "0.13.1" + +[package.dependencies] +msgpack = ">=0.5.2" +requests = ">=2.16.0" + +[package.extras] +dev = ["cachecontrol", "build", "mypy", "tox", "pytest-cov", "pytest", "cherrypy", "sphinx", "black", "types-redis", "types-requests"] +filecache = ["filelock (>=3.8.0)"] +redis = ["redis (>=2.10.5)"] + +[[package]] +category = "main" +description = "Python package for providing Mozilla's CA Bundle." +name = "certifi" +optional = false +python-versions = ">=3.6" +version = "2023.7.22" + +[[package]] +category = "main" +description = "Foreign Function Interface for Python calling C code." +name = "cffi" +optional = false +python-versions = "*" +version = "1.15.1" + +[package.dependencies] +pycparser = "*" + +[[package]] +category = "main" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +name = "charset-normalizer" +optional = false +python-versions = ">=3.7.0" +version = "3.2.0" + +[[package]] +category = "main" +description = "Composable command line interface toolkit" +name = "click" +optional = false +python-versions = ">=3.7" +version = "8.1.6" + +[package.dependencies] +colorama = "*" + +[[package]] +category = "main" +description = "Cross-platform colored terminal text." +marker = "platform_system == \"Windows\" or sys_platform == \"win32\"" +name = "colorama" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +version = "0.4.6" + +[[package]] +category = "main" +description = "CSS selectors for Python ElementTree" +name = "cssselect2" +optional = false +python-versions = ">=3.7" +version = "0.7.0" + +[package.dependencies] +tinycss2 = "*" +webencodings = "*" + +[package.extras] +doc = ["sphinx", "sphinx-rtd-theme"] +test = ["pytest", "isort", "flake8"] + +[[package]] +category = "main" +description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." +name = "django" +optional = false +python-versions = ">=3.6" +version = "3.2.20" + +[package.dependencies] +asgiref = ">=3.3.2,<4" +pytz = "*" +sqlparse = ">=0.2.2" + +[package.extras] +argon2 = ["argon2-cffi (>=19.1.0)"] +bcrypt = ["bcrypt"] + +[[package]] +category = "main" +description = "Easy-to-use active URL highlighting for Django" +name = "django-activeurl" +optional = false +python-versions = "*" +version = "0.2.0" + +[package.dependencies] +django-classy-tags = "*" +django_appconf = "*" +lxml = "*" + +[package.dependencies.django] +python = ">=3" +version = "*" + +[[package]] +category = "main" +description = "A framework for managing agent trust, such as public vs. private computers." +name = "django-agent-trust" +optional = false +python-versions = "*" +version = "1.0.4" + +[package.dependencies] +django = ">=2.2" + +[[package]] +category = "main" +description = "Analytics service integration for Django projects" +name = "django-analytical" +optional = false +python-versions = ">=3.6" +version = "3.1.0" + +[[package]] +category = "main" +description = "This is a django application that tries to eliminate annoying things in the Django framework." +name = "django-annoying" +optional = false +python-versions = "*" +version = "0.10.6" + +[package.dependencies] +Django = ">=1.11" +six = "*" + +[[package]] +category = "main" +description = "A helper class for handling configuration defaults of packaged apps gracefully." +name = "django-appconf" +optional = false +python-versions = ">=3.6" +version = "1.0.5" + +[package.dependencies] +django = "*" + +[[package]] +category = "main" +description = "Class based template tags for Django" +name = "django-classy-tags" +optional = false +python-versions = ">=3.8" +version = "4.1.0" + +[package.dependencies] +django = ">=3.2" + +[[package]] +category = "main" +description = "('Compresses linked and inline JavaScript or CSS into single cached files.',)" +name = "django-compressor" +optional = false +python-versions = "*" +version = "4.4" + +[package.dependencies] +django-appconf = ">=1.0.3" +rcssmin = "1.1.1" +rjsmin = "1.2.1" + +[[package]] +category = "main" +description = "Computed property model fields for Django" +name = "django-computed-property" +optional = false +python-versions = "*" +version = "0.3.0" + +[package.dependencies] +Django = ">=1.8.2" +six = ">=1.11.0" + +[[package]] +category = "main" +description = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)." +name = "django-cors-headers" +optional = false +python-versions = ">=3.8" +version = "4.2.0" + +[package.dependencies] +Django = ">=3.2" + +[[package]] +category = "main" +description = "A configurable set of panels that display various debug information about the current request/response." +name = "django-debug-toolbar" +optional = false +python-versions = ">=3.8" +version = "4.1.0" + +[package.dependencies] +django = ">=3.2.4" +sqlparse = ">=0.2" + +[[package]] +category = "main" +description = "Extensions for Django" +name = "django-extensions" +optional = false +python-versions = ">=3.6" +version = "3.2.3" + +[package.dependencies] +Django = ">=3.2" + +[[package]] +category = "main" +description = "Pluggable app for handling webpage meta tags and OpenGraph properties" +name = "django-meta" +optional = false +python-versions = ">=3.7" +version = "2.2.0" + +[package.extras] +docs = ["django (<5.0)"] + +[[package]] +category = "main" +description = "Django model mixins and utilities" +name = "django-model-utils" +optional = false +python-versions = ">=3.7" +version = "4.3.1" + +[package.dependencies] +Django = ">=3.2" + +[[package]] +category = "main" +description = "A pluggable framework for adding two-factor authentication to Django using one-time passwords." +name = "django-otp" +optional = false +python-versions = ">=3.7" +version = "1.2.2" + +[package.dependencies] +django = ">=3.2" + +[package.extras] +qrcode = ["qrcode"] + +[[package]] +category = "main" +description = "Integration of django-otp and django-agent-trust." +name = "django-otp-agents" +optional = false +python-versions = "*" +version = "1.0.1" + +[package.dependencies] +django-agent-trust = ">=1.0.1" +django-otp = ">=1.0.1" + +[[package]] +category = "main" +description = "PubSubHubbub (PuSH) support for Django" +name = "django-push" +optional = false +python-versions = "*" +version = "1.1" + +[package.dependencies] +Django = "*" +requests = "*" + +[[package]] +category = "main" +description = "A Django field that automatically generates random slugs." +name = "django-randomslugfield" +optional = false +python-versions = "*" +version = "0.3.0" + +[[package]] +category = "main" +description = "Full featured redis cache backend for Django." +name = "django-redis" +optional = false +python-versions = ">=3.6" +version = "5.3.0" + +[package.dependencies] +Django = ">=3.2" +redis = ">=3,<4.0.0 || >4.0.0,<4.0.1 || >4.0.1" + +[package.extras] +hiredis = ["redis (>=3,<4.0.0 || >4.0.0,<4.0.1 || >4.0.1)"] + +[[package]] +category = "main" +description = "An app that provides django integration for RQ (Redis Queue)" +name = "django-rq" +optional = false +python-versions = "*" +version = "2.8.1" + +[package.dependencies] +django = ">=2.0" +redis = ">=3" +rq = ">=1.14" + +[package.extras] +sentry = ["raven (>=6.1.0)"] +testing = ["mock (>=2.0.0)"] + +[[package]] +category = "main" +description = "Docutils -- Python Documentation Utilities" +name = "docutils" +optional = false +python-versions = ">=3.7" +version = "0.20.1" + +[[package]] +category = "dev" +description = "Backport of PEP 654 (exception groups)" +marker = "python_version < \"3.11\"" +name = "exceptiongroup" +optional = false +python-versions = ">=3.7" +version = "1.1.2" + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +category = "main" +description = "Favicon generator for Python 3 with strongly typed sync & async APIs, CLI, & HTML generation." +name = "favicons" +optional = false +python-versions = ">=3.8.1,<4.0" +version = "0.2.0" + +[package.dependencies] +pillow = ">=9.5.0,<10.0.0" +rich = ">=13.3.4,<14.0.0" +svglib = ">=1.5.1,<2.0.0" +typer = ">=0.7.0,<0.8.0" + +[[package]] +category = "main" +description = "Coroutine-based network library" +name = "gevent" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5" +version = "22.10.2" + +[package.dependencies] +cffi = ">=1.12.2" +greenlet = ">=2.0.0" +setuptools = "*" +"zope.event" = "*" +"zope.interface" = "*" + +[package.extras] +dnspython = ["dnspython (>=1.16.0,<2.0)", "idna"] +docs = ["repoze.sphinx.autointerface", "sphinxcontrib-programoutput", "zope.schema"] +monitor = ["psutil (>=5.7.0)"] +recommended = ["cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "backports.socketpair", "psutil (>=5.7.0)"] +test = ["requests", "objgraph", "cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "futures", "mock", "backports.socketpair", "contextvars (2.4)", "coverage (>=5.0)", "coveralls (>=1.7.0)", "psutil (>=5.7.0)"] + +[[package]] +category = "main" +description = "Coroutine-based network library" +name = "gevent" +optional = false +python-versions = ">=3.8" +version = "23.7.0" + +[package.dependencies] +cffi = ">=1.12.2" +"zope.event" = "*" +"zope.interface" = "*" + +[package.dependencies.greenlet] +python = "<3.12" +version = ">=2.0.0" + +[package.extras] +dnspython = ["dnspython (>=1.16.0,<2.0)", "idna"] +docs = ["sphinx", "furo", "repoze.sphinx.autointerface", "sphinxcontrib-programoutput", "zope.schema"] +monitor = ["psutil (>=5.7.0)"] +recommended = ["cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "psutil (>=5.7.0)"] +test = ["requests", "objgraph", "setuptools", "cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "coverage (>=5.0)", "psutil (>=5.7.0)"] + +[[package]] +category = "main" +description = "Lightweight in-process concurrent programming" +marker = "platform_python_implementation == \"CPython\" and python_version < \"3.12\" or platform_python_implementation == \"CPython\"" +name = "greenlet" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" +version = "2.0.2" + +[package.extras] +docs = ["sphinx", "docutils (<0.18)"] +test = ["objgraph", "psutil"] + +[[package]] +category = "main" +description = "WSGI HTTP Server for UNIX" +name = "gunicorn" +optional = false +python-versions = ">=3.5" +version = "21.2.0" + +[package.dependencies] +packaging = "*" + +[package.dependencies.gevent] +optional = true +version = ">=1.4.0" + +[package.extras] +eventlet = ["eventlet (>=0.24.1)"] +gevent = ["gevent (>=1.4.0)"] +setproctitle = ["setproctitle"] +tornado = ["tornado (>=0.2)"] + +[[package]] +category = "main" +description = "Python wrapper for hiredis" +name = "hiredis" +optional = false +python-versions = ">=3.7" +version = "2.2.3" + +[[package]] +category = "main" +description = "HTML parser based on the WHATWG HTML specification" +name = "html5lib" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "1.1" + +[package.dependencies] +six = ">=1.9" +webencodings = "*" + +[package.extras] +all = ["genshi", "chardet (>=2.2)", "lxml"] +chardet = ["chardet (>=2.2)"] +genshi = ["genshi"] +lxml = ["lxml"] + +[[package]] +category = "main" +description = "Internationalized Domain Names in Applications (IDNA)" +name = "idna" +optional = false +python-versions = ">=3.5" +version = "3.4" + +[[package]] +category = "main" +description = "Read metadata from Python packages" +marker = "python_version < \"3.10\"" +name = "importlib-metadata" +optional = false +python-versions = ">=3.8" +version = "6.8.0" + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "sphinx-lint", "jaraco.tidelift (>=1.4)"] +perf = ["ipython"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ruff", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] + +[[package]] +category = "dev" +description = "brain-dead simple config-ini parsing" +name = "iniconfig" +optional = false +python-versions = ">=3.7" +version = "2.0.0" + +[[package]] +category = "dev" +description = "An autocompletion tool for Python that can be used for text editors." +name = "jedi" +optional = false +python-versions = ">=3.6" +version = "0.19.0" + +[package.dependencies] +parso = ">=0.8.3,<0.9.0" + +[package.extras] +docs = ["Jinja2 (2.11.3)", "MarkupSafe (1.1.1)", "Pygments (2.8.1)", "alabaster (0.7.12)", "babel (2.9.1)", "chardet (4.0.0)", "commonmark (0.8.1)", "docutils (0.17.1)", "future (0.18.2)", "idna (2.10)", "imagesize (1.2.0)", "mock (1.0.1)", "packaging (20.9)", "pyparsing (2.4.7)", "pytz (2021.1)", "readthedocs-sphinx-ext (2.1.4)", "recommonmark (0.5.0)", "requests (2.25.1)", "six (1.15.0)", "snowballstemmer (2.1.0)", "sphinx-rtd-theme (0.4.3)", "sphinx (1.8.5)", "sphinxcontrib-serializinghtml (1.1.4)", "sphinxcontrib-websupport (1.2.4)", "urllib3 (1.26.4)"] +qa = ["flake8 (5.0.4)", "mypy (0.971)", "types-setuptools (67.2.0.1)"] +testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +category = "main" +description = "A very fast and expressive template engine." +name = "jinja2" +optional = false +python-versions = ">=3.7" +version = "3.1.2" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +category = "main" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +name = "lxml" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" +version = "4.9.3" + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html5 = ["html5lib"] +htmlsoup = ["beautifulsoup4"] +source = ["Cython (>=0.29.35)"] + +[[package]] +category = "main" +description = "Python implementation of John Gruber's Markdown." +name = "markdown" +optional = false +python-versions = ">=3.7" +version = "3.4.4" + +[package.dependencies] +[package.dependencies.importlib-metadata] +python = "<3.10" +version = ">=4.4" + +[package.extras] +docs = ["mkdocs (>=1.0)", "mkdocs-nature (>=0.4)", "mdx-gh-links (>=0.2)"] +testing = ["coverage", "pyyaml"] + +[[package]] +category = "main" +description = "Python port of markdown-it. Markdown parsing, done right!" +name = "markdown-it-py" +optional = false +python-versions = ">=3.8" +version = "3.0.0" + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code_style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx-book-theme", "jupyter-sphinx"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +category = "main" +description = "Safely add untrusted strings to HTML/XML markup." +name = "markupsafe" +optional = false +python-versions = ">=3.7" +version = "2.1.3" + +[[package]] +category = "main" +description = "Markdown URL utilities" +name = "mdurl" +optional = false +python-versions = ">=3.7" +version = "0.1.2" + +[[package]] +category = "main" +description = "Python Microformats2 parser" +name = "mf2py" +optional = false +python-versions = ">=2.7" +version = "1.1.3" + +[package.dependencies] +BeautifulSoup4 = ">=4.6.0" +html5lib = ">=1.0.1" +requests = ">=2.18.4" + +[[package]] +category = "main" +description = "Python Microformats2 utilities, a companion to mf2py" +name = "mf2util" +optional = false +python-versions = "*" +version = "0.5.2" + +[[package]] +category = "main" +description = "MessagePack serializer" +name = "msgpack" +optional = false +python-versions = "*" +version = "1.0.5" + +[[package]] +category = "dev" +description = "Optional static typing for Python" +name = "mypy" +optional = false +python-versions = ">=3.7" +version = "1.4.1" + +[package.dependencies] +mypy-extensions = ">=1.0.0" +typing-extensions = ">=4.1.0" + +[package.dependencies.tomli] +python = "<3.11" +version = ">=1.1.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] + +[[package]] +category = "dev" +description = "Type system extensions for programs checked with the mypy type checker." +name = "mypy-extensions" +optional = false +python-versions = ">=3.5" +version = "1.0.0" + +[[package]] +category = "main" +description = "Core utilities for Python packages" +name = "packaging" +optional = false +python-versions = ">=3.7" +version = "23.1" + +[[package]] +category = "dev" +description = "A Python Parser" +name = "parso" +optional = false +python-versions = ">=3.6" +version = "0.8.3" + +[package.extras] +qa = ["flake8 (3.8.3)", "mypy (0.782)"] +testing = ["docopt", "pytest (<6.0.0)"] + +[[package]] +category = "main" +description = "Python Imaging Library (Fork)" +name = "pillow" +optional = false +python-versions = ">=3.7" +version = "9.5.0" + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +category = "dev" +description = "plugin and hook calling mechanisms for python" +name = "pluggy" +optional = false +python-versions = ">=3.7" +version = "1.2.0" + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +category = "dev" +description = "Library for building powerful interactive command lines in Python" +name = "prompt-toolkit" +optional = false +python-versions = ">=3.7.0" +version = "3.0.39" + +[package.dependencies] +wcwidth = "*" + +[[package]] +category = "main" +description = "psycopg2 - Python-PostgreSQL Database Adapter" +name = "psycopg2-binary" +optional = false +python-versions = ">=3.6" +version = "2.9.7" + +[[package]] +category = "dev" +description = "Python REPL build on top of prompt_toolkit" +name = "ptpython" +optional = false +python-versions = ">=3.7" +version = "3.0.23" + +[package.dependencies] +appdirs = "*" +jedi = ">=0.16.0" +prompt-toolkit = ">=3.0.28,<3.1.0" +pygments = "*" + +[package.extras] +all = ["black"] +ptipython = ["ipython"] + +[[package]] +category = "main" +description = "C parser in Python" +name = "pycparser" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "2.21" + +[[package]] +category = "main" +description = "Pygments is a syntax highlighting package written in Python." +name = "pygments" +optional = false +python-versions = ">=3.7" +version = "2.16.1" + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +category = "main" +description = "Pure Python library for saving and loading PNG images" +name = "pypng" +optional = false +python-versions = "*" +version = "0.20220715.0" + +[[package]] +category = "dev" +description = "pytest: simple powerful testing with Python" +name = "pytest" +optional = false +python-versions = ">=3.7" +version = "7.4.0" + +[package.dependencies] +colorama = "*" +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" + +[package.dependencies.exceptiongroup] +python = "<3.11" +version = ">=1.0.0rc8" + +[package.dependencies.tomli] +python = "<3.11" +version = ">=1.0.0" + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +category = "dev" +description = "A Django plugin for pytest." +name = "pytest-django" +optional = false +python-versions = ">=3.5" +version = "4.5.2" + +[package.dependencies] +pytest = ">=5.4.0" + +[package.extras] +docs = ["sphinx", "sphinx-rtd-theme"] +testing = ["django", "django-configurations (>=2.0)"] + +[[package]] +category = "main" +description = "Convert numbers from base 10 integers to base X strings and back again." +name = "python-baseconv" +optional = false +python-versions = "*" +version = "1.2.2" + +[[package]] +category = "main" +description = "File type identification using libmagic" +name = "python-magic" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "0.4.27" + +[[package]] +category = "main" +description = "A Python slugify application that also handles Unicode" +name = "python-slugify" +optional = false +python-versions = ">=3.7" +version = "8.0.1" + +[package.dependencies] +text-unidecode = ">=1.3" + +[package.extras] +unidecode = ["Unidecode (>=1.1.1)"] + +[[package]] +category = "main" +description = "World timezone definitions, modern and historical" +name = "pytz" +optional = false +python-versions = "*" +version = "2023.3" + +[[package]] +category = "main" +description = "pyup-django checks your installed dependencies for known security vulnerabilities and displays them in the admin area." +name = "pyup-django" +optional = false +python-versions = "*" +version = "0.4.0" + +[package.dependencies] +packaging = "*" +requests = "*" + +[[package]] +category = "main" +description = "YAML parser and emitter for Python" +name = "pyyaml" +optional = false +python-versions = ">=3.6" +version = "6.0.1" + +[[package]] +category = "main" +description = "QR Code image generator" +name = "qrcode" +optional = false +python-versions = ">=3.7" +version = "7.4.2" + +[package.dependencies] +colorama = "*" +pypng = "*" +typing-extensions = "*" + +[package.extras] +all = ["zest.releaser", "tox", "pytest", "pytest-cov", "pillow (>=9.1.0)"] +dev = ["tox", "pytest", "pytest-cov"] +maintainer = ["zest.releaser"] +pil = ["pillow (>=9.1.0)"] +test = ["coverage", "pytest"] + +[[package]] +category = "main" +description = "CSS Minifier" +name = "rcssmin" +optional = false +python-versions = "*" +version = "1.1.1" + +[[package]] +category = "main" +description = "Python client for Redis database and key-value store" +name = "redis" +optional = false +python-versions = ">=3.7" +version = "4.6.0" + +[package.dependencies] +[package.dependencies.async-timeout] +python = "<=3.11.2" +version = ">=4.0.2" + +[package.extras] +hiredis = ["hiredis (>=1.0.0)"] +ocsp = ["cryptography (>=36.0.1)", "pyopenssl (20.0.1)", "requests (>=2.26.0)"] + +[[package]] +category = "main" +description = "The Reportlab Toolkit" +name = "reportlab" +optional = false +python-versions = ">=3.7,<4" +version = "4.0.4" + +[package.dependencies] +pillow = ">=9.0.0" + +[package.extras] +accel = ["rl-accel (>=0.9.0,<1.1)"] +pycairo = ["rlPyCairo (>=0.2.0,<1)", "freetype-py (>=2.3.0,<2.4)"] +renderpm = ["rl-renderPM (>=4.0.3,<4.1)"] + +[[package]] +category = "main" +description = "Python HTTP for Humans." +name = "requests" +optional = false +python-versions = ">=3.7" +version = "2.31.0" + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +category = "main" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +name = "rich" +optional = false +python-versions = ">=3.7.0" +version = "13.5.2" + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +category = "main" +description = "Javascript Minifier" +name = "rjsmin" +optional = false +python-versions = "*" +version = "1.2.1" + +[[package]] +category = "main" +description = "\"Webmention Manager\"" +name = "ronkyuu" +optional = false +python-versions = ">=3.9" +version = "0.9" + +[[package]] +category = "main" +description = "RQ is a simple, lightweight, library for creating background jobs, and processing them." +name = "rq" +optional = false +python-versions = ">=3.6" +version = "1.15.1" + +[package.dependencies] +click = ">=5.0.0" +redis = ">=4.0.0" + +[[package]] +category = "main" +description = "Python 2 and 3 compatibility utilities" +name = "six" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +version = "1.16.0" + +[[package]] +category = "main" +description = "A modern CSS selector implementation for Beautiful Soup." +name = "soupsieve" +optional = false +python-versions = ">=3.7" +version = "2.4.1" + +[[package]] +category = "main" +description = "A non-validating SQL parser." +name = "sqlparse" +optional = false +python-versions = ">=3.5" +version = "0.4.4" + +[package.extras] +dev = ["flake8", "build"] +doc = ["sphinx"] +test = ["pytest", "pytest-cov"] + +[[package]] +category = "main" +description = "A pure-Python library for reading and converting SVG" +name = "svglib" +optional = false +python-versions = ">=3.7" +version = "1.5.1" + +[package.dependencies] +cssselect2 = ">=0.2.0" +lxml = "*" +reportlab = "*" +tinycss2 = ">=0.6.0" + +[[package]] +category = "main" +description = "The most basic Text::Unidecode port" +name = "text-unidecode" +optional = false +python-versions = "*" +version = "1.3" + +[[package]] +category = "main" +description = "A tiny CSS parser" +name = "tinycss2" +optional = false +python-versions = ">=3.7" +version = "1.2.1" + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx-rtd-theme"] +test = ["pytest", "isort", "flake8"] + +[[package]] +category = "dev" +description = "A lil' TOML parser" +marker = "python_version < \"3.11\"" +name = "tomli" +optional = false +python-versions = ">=3.7" +version = "2.0.1" + +[[package]] +category = "main" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +name = "typer" +optional = false +python-versions = ">=3.6" +version = "0.7.0" + +[package.dependencies] +click = ">=7.1.1,<9.0.0" + +[package.extras] +all = ["colorama (>=0.4.3,<0.5.0)", "shellingham (>=1.3.0,<2.0.0)", "rich (>=10.11.0,<13.0.0)"] +dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] +doc = ["mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "mdx-include (>=1.4.1,<2.0.0)", "pillow (>=9.3.0,<10.0.0)", "cairosvg (>=2.5.2,<3.0.0)"] +test = ["shellingham (>=1.3.0,<2.0.0)", "pytest (>=4.4.0,<8.0.0)", "pytest-cov (>=2.10.0,<5.0.0)", "coverage (>=6.2,<7.0)", "pytest-xdist (>=1.32.0,<4.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "mypy (0.910)", "black (>=22.3.0,<23.0.0)", "isort (>=5.0.6,<6.0.0)", "rich (>=10.11.0,<13.0.0)"] + +[[package]] +category = "dev" +description = "Typing stubs for bleach" +name = "types-bleach" +optional = false +python-versions = "*" +version = "6.0.0.4" + +[[package]] +category = "dev" +description = "Typing stubs for Markdown" +name = "types-markdown" +optional = false +python-versions = "*" +version = "3.4.2.10" + +[[package]] +category = "dev" +description = "Typing stubs for python-slugify" +name = "types-python-slugify" +optional = false +python-versions = "*" +version = "8.0.0.3" + +[[package]] +category = "dev" +description = "Typing stubs for PyYAML" +name = "types-pyyaml" +optional = false +python-versions = "*" +version = "6.0.12.11" + +[[package]] +category = "dev" +description = "Typing stubs for requests" +name = "types-requests" +optional = false +python-versions = "*" +version = "2.31.0.2" + +[package.dependencies] +types-urllib3 = "*" + +[[package]] +category = "dev" +description = "Typing stubs for urllib3" +name = "types-urllib3" +optional = false +python-versions = "*" +version = "1.26.25.14" + +[[package]] +category = "main" +description = "Backported and Experimental Type Hints for Python 3.7+" +name = "typing-extensions" +optional = false +python-versions = ">=3.7" +version = "4.7.1" + +[[package]] +category = "main" +description = "HTTP library with thread-safe connection pooling, file post, and more." +name = "urllib3" +optional = false +python-versions = ">=3.7" +version = "2.0.4" + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +category = "dev" +description = "Filesystem events monitoring" +name = "watchdog" +optional = false +python-versions = ">=3.7" +version = "3.0.0" + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + +[[package]] +category = "dev" +description = "Measures the displayed width of unicode strings in a terminal" +name = "wcwidth" +optional = false +python-versions = "*" +version = "0.2.6" + +[[package]] +category = "main" +description = "Character encoding aliases for legacy web content" +name = "webencodings" +optional = false +python-versions = "*" +version = "0.5.1" + +[[package]] +category = "dev" +description = "The comprehensive WSGI web application library." +name = "werkzeug" +optional = false +python-versions = ">=3.8" +version = "2.3.6" + +[package.dependencies] +MarkupSafe = ">=2.1.1" + +[package.extras] +watchdog = ["watchdog (>=2.3)"] + +[[package]] +category = "main" +description = "Package for serializing and deserializing of XRD documents" +name = "xrd" +optional = false +python-versions = "*" +version = "0.1" + +[[package]] +category = "main" +description = "Backport of pathlib-compatible object wrapper for zip files" +marker = "python_version < \"3.10\"" +name = "zipp" +optional = false +python-versions = ">=3.8" +version = "3.16.2" + +[package.extras] +docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9.3)", "rst.linker (>=1.9)", "furo", "sphinx-lint", "jaraco.tidelift (>=1.4)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ruff", "jaraco.itertools", "jaraco.functools", "more-itertools", "big-o", "pytest-ignore-flaky", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] + +[[package]] +category = "main" +description = "Very basic event publishing system" +name = "zope.event" +optional = false +python-versions = ">=3.7" +version = "5.0" + +[package.dependencies] +setuptools = "*" + +[package.extras] +docs = ["sphinx"] +test = ["zope.testrunner"] + +[[package]] +category = "main" +description = "Interfaces for Python" +name = "zope.interface" +optional = false +python-versions = ">=3.7" +version = "6.0" + +[package.dependencies] +setuptools = "*" + +[package.extras] +docs = ["sphinx", "repoze.sphinx.autointerface"] +test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] +testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] + +[metadata] +content-hash = "1faf66f8804339bb3a9ccfa5bcd2021fa45a07696c7f56f58ea0443d10c42880" +python-versions = "^3.9" + +[metadata.files] +accept-types = [] +ago = [] +appdirs = [] +argon2-cffi = [] +argon2-cffi-bindings = [] +asgiref = [] +async-timeout = [] +beautifulsoup4 = [] +bleach = [] +cachecontrol = [] +certifi = [] +cffi = [] +charset-normalizer = [] +click = [] +colorama = [] +cssselect2 = [] +django = [] +django-activeurl = [] +django-agent-trust = [] +django-analytical = [] +django-annoying = [] +django-appconf = [] +django-classy-tags = [] +django-compressor = [] +django-computed-property = [] +django-cors-headers = [] +django-debug-toolbar = [] +django-extensions = [] +django-meta = [] +django-model-utils = [] +django-otp = [] +django-otp-agents = [] +django-push = [] +django-randomslugfield = [] +django-redis = [] +django-rq = [] +docutils = [] +exceptiongroup = [] +favicons = [] +gevent = [] +greenlet = [] +gunicorn = [] +hiredis = [] +html5lib = [] +idna = [] +importlib-metadata = [] +iniconfig = [] +jedi = [] +jinja2 = [] +lxml = [] +markdown = [] +markdown-it-py = [] +markupsafe = [] +mdurl = [] +mf2py = [] +mf2util = [] +msgpack = [] +mypy = [] +mypy-extensions = [] +packaging = [] +parso = [] +pillow = [] +pluggy = [] +prompt-toolkit = [] +psycopg2-binary = [] +ptpython = [] +pycparser = [] +pygments = [] +pypng = [] +pytest = [] +pytest-django = [] +python-baseconv = [] +python-magic = [] +python-slugify = [] +pytz = [] +pyup-django = [] +pyyaml = [] +qrcode = [] +rcssmin = [] +redis = [] +reportlab = [] +requests = [] +rich = [] +rjsmin = [] +ronkyuu = [] +rq = [] +six = [] +soupsieve = [] +sqlparse = [] +svglib = [] +text-unidecode = [] +tinycss2 = [] +tomli = [] +typer = [] +types-bleach = [] +types-markdown = [] +types-python-slugify = [] +types-pyyaml = [] +types-requests = [] +types-urllib3 = [] +typing-extensions = [] +urllib3 = [] +watchdog = [] +wcwidth = [] +webencodings = [] +werkzeug = [] +xrd = [] +zipp = [] +"zope.event" = [] +"zope.interface" = [] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..cb79e6e --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,67 @@ +[tool.poetry] +name = "lemoncurry" +version = "1.11.0" +description = "Indieweb-compatible personal website" +authors = ["Danielle McLean "] +license = "MIT" + +[tool.poetry.dependencies] +python = "^3.9" +accept-types = "*" +ago = "*" +argon2-cffi = "*" +bleach = "*" +cachecontrol = "*" +django = "<4,>=3" +django-activeurl = "*" +django-analytical = "*" +django-annoying = "*" +django-compressor = "*" +django-computed-property = "*" +django-cors-headers = "*" +django-debug-toolbar = "*" +django-extensions = "*" +django-meta = "*" +django-model-utils = "*" +django-otp = "*" +django-otp-agents = "*" +django-push = "*" +django-randomslugfield = "*" +django-redis = "*" +django-rq = "*" +docutils = "*" +favicons = "*" +gevent = "*" +gunicorn = {extras = ["gevent"], version = "*"} +hiredis = "*" +jinja2 = "*" +markdown = "*" +mf2py = "*" +mf2util = "*" +msgpack = "*" +pillow = "*" +psycopg2-binary = "*" +python-baseconv = "*" +python-magic = "*" +python-slugify = "*" +pyup-django = "*" +pyyaml = "*" +qrcode = "*" +ronkyuu = "*" +xrd = "*" + +[tool.poetry.dev-dependencies] +mypy = "*" +ptpython = "*" +pytest-django = "*" +types-bleach = "*" +types-markdown = "*" +types-python-slugify = "*" +types-pyyaml = "*" +types-requests = "*" +watchdog = "*" +werkzeug = "*" + +[build-system] +requires = ["poetry>=0.12"] +build-backend = "poetry.masonry.api"