From 14756dc59d1a87ff775fbd1809f9f7be91b8e4c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 23:04:20 +0000 Subject: [PATCH 01/21] build(deps): bump redis from 3.5.3 to 4.5.5 Bumps [redis](https://github.com/redis/redis-py) from 3.5.3 to 4.5.5. - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](https://github.com/redis/redis-py/compare/3.5.3...v4.5.5) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- poetry.lock | 273 ++++++++++++++++++++++++++++++++++++++++++++++--- pyproject.toml | 2 +- 2 files changed, 262 insertions(+), 13 deletions(-) diff --git a/poetry.lock b/poetry.lock index d923189ec5..e97391ad90 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.5.0 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "amqp" version = "5.1.1" description = "Low-level AMQP client for Python (fork of amqplib)." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -18,6 +19,7 @@ vine = ">=5.0.0" name = "anyio" version = "3.6.2" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" optional = false python-versions = ">=3.6.2" files = [ @@ -38,6 +40,7 @@ trio = ["trio (>=0.16,<0.22)"] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" +category = "main" optional = false python-versions = "*" files = [ @@ -49,6 +52,7 @@ files = [ name = "argparse" version = "1.4.0" description = "Python command-line parsing library" +category = "main" optional = false python-versions = "*" files = [ @@ -60,6 +64,7 @@ files = [ name = "asgiref" version = "3.6.0" description = "ASGI specs, helper code, and adapters" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -74,6 +79,7 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -85,6 +91,7 @@ files = [ name = "astroid" version = "2.15.4" description = "An abstract syntax tree for Python with inference support." +category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -104,6 +111,7 @@ wrapt = [ name = "asttokens" version = "2.0.8" description = "Annotate AST trees with source code positions" +category = "main" optional = false python-versions = "*" files = [ @@ -121,6 +129,7 @@ test = ["astroid (<=2.5.3)", "pytest"] name = "async-generator" version = "1.10" description = "Async generators and context managers for Python 3.5+" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -128,10 +137,23 @@ files = [ {file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"}, ] +[[package]] +name = "async-timeout" +version = "4.0.2" +description = "Timeout context manager for asyncio programs" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, + {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, +] + [[package]] name = "attrs" version = "20.3.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -149,6 +171,7 @@ tests-no-zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (> name = "autobahn" version = "23.1.2" description = "WebSocket client & server library, WAMP real-time framework" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -177,6 +200,7 @@ xbr = ["base58 (>=2.1.0)", "cbor2 (>=5.2.0)", "click (>=8.1.2)", "ecdsa (>=0.16. name = "automat" version = "22.10.0" description = "Self-service finite-state machines for the programmer on the go." +category = "main" optional = false python-versions = "*" files = [ @@ -195,6 +219,7 @@ visualize = ["Twisted (>=16.1.1)", "graphviz (>0.5.1)"] name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" +category = "main" optional = false python-versions = "*" files = [ @@ -206,6 +231,7 @@ files = [ name = "beautifulsoup4" version = "4.11.2" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -224,6 +250,7 @@ lxml = ["lxml"] name = "billiard" version = "4.1.0" description = "Python multiprocessing fork with improvements and bugfixes" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -235,6 +262,7 @@ files = [ name = "black" version = "23.3.0" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -283,6 +311,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "boto3" version = "1.17.43" description = "The AWS SDK for Python" +category = "main" optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -299,6 +328,7 @@ s3transfer = ">=0.3.0,<0.4.0" name = "botocore" version = "1.20.43" description = "Low-level, data-driven core of boto 3." +category = "main" optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -318,6 +348,7 @@ crt = ["awscrt (==0.10.8)"] name = "celery" version = "5.3.0" description = "Distributed Task Queue." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -373,6 +404,7 @@ zstd = ["zstandard (==0.21.0)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -384,6 +416,7 @@ files = [ name = "cffi" version = "1.14.5" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = "*" files = [ @@ -445,6 +478,7 @@ pycparser = "*" name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." +category = "dev" optional = false python-versions = ">=3.6.1" files = [ @@ -456,6 +490,7 @@ files = [ name = "chardet" version = "5.1.0" description = "Universal encoding detector for Python 3" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -467,6 +502,7 @@ files = [ name = "charset-normalizer" version = "3.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -551,6 +587,7 @@ files = [ name = "click" version = "8.1.2" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -565,6 +602,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-didyoumean" version = "0.3.0" description = "Enables git-like *did-you-mean* feature in click" +category = "main" optional = false python-versions = ">=3.6.2,<4.0.0" files = [ @@ -579,6 +617,7 @@ click = ">=7" name = "click-plugins" version = "1.1.1" description = "An extension module for click to enable registering CLI commands via setuptools entry-points." +category = "main" optional = false python-versions = "*" files = [ @@ -596,6 +635,7 @@ dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] name = "click-repl" version = "0.2.0" description = "REPL plugin for Click" +category = "main" optional = false python-versions = "*" files = [ @@ -612,6 +652,7 @@ six = "*" name = "climage" version = "0.1.3" description = "Convert images to beautiful ANSI escape codes" +category = "main" optional = false python-versions = ">=3.2" files = [ @@ -627,6 +668,7 @@ Pillow = "*" name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -638,6 +680,7 @@ files = [ name = "constantly" version = "15.1.0" description = "Symbolic constants in Python" +category = "main" optional = false python-versions = "*" files = [ @@ -649,6 +692,7 @@ files = [ name = "contextlib2" version = "0.6.0.post1" description = "Backports and enhancements for the contextlib module" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -660,6 +704,7 @@ files = [ name = "coreapi" version = "2.3.3" description = "Python client library for Core API." +category = "main" optional = false python-versions = "*" files = [ @@ -677,6 +722,7 @@ uritemplate = "*" name = "coreschema" version = "0.0.4" description = "Core Schema." +category = "main" optional = false python-versions = "*" files = [ @@ -691,6 +737,7 @@ jinja2 = "*" name = "courts-db" version = "0.10.9" description = "Database of Courts" +category = "main" optional = false python-versions = "*" files = [ @@ -702,6 +749,7 @@ files = [ name = "cryptography" version = "36.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -742,6 +790,7 @@ test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.2.0 name = "cssselect" version = "1.2.0" description = "cssselect parses CSS3 Selectors and translates them to XPath 1.0" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -753,6 +802,7 @@ files = [ name = "daphne" version = "4.0.0" description = "Django ASGI (HTTP/WebSocket) server" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -772,6 +822,7 @@ tests = ["django", "hypothesis", "pytest", "pytest-asyncio"] name = "datasketch" version = "1.5.7" description = "Probabilistic data structures for processing and searching very large datasets" +category = "main" optional = false python-versions = "*" files = [ @@ -794,6 +845,7 @@ test = ["cassandra-driver (>=3.20)", "coverage", "mock (>=2.0.0)", "mockredispy" name = "dateparser" version = "1.1.8" description = "Date parsing library designed to parse dates from HTML pages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -816,6 +868,7 @@ langdetect = ["langdetect"] name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -827,6 +880,7 @@ files = [ 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.*" files = [ @@ -838,6 +892,7 @@ files = [ name = "dill" version = "0.3.6" description = "serialize all of python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -852,6 +907,7 @@ graph = ["objgraph (>=1.7.2)"] name = "disposable-email-domains" version = "0.0.64" description = "A set of disposable email domains" +category = "main" optional = false python-versions = "*" files = [ @@ -866,6 +922,7 @@ dev = ["check-manifest"] name = "distlib" version = "0.3.6" description = "Distribution utilities" +category = "dev" optional = false python-versions = "*" files = [ @@ -877,6 +934,7 @@ files = [ name = "django" version = "4.2.1" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -897,6 +955,7 @@ bcrypt = ["bcrypt"] name = "django-admin-cursor-paginator" version = "0.1.2" description = "Drop-in replacement for django admin default pagination that works fast with huge tables." +category = "main" optional = false python-versions = ">=3.4" files = [ @@ -911,6 +970,7 @@ Django = ">=2.0" name = "django-cache-memoize" version = "0.1.8" description = "Django utility for a memoization decorator that uses the Django cache framework." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -925,6 +985,7 @@ dev = ["black", "flake8", "therapist", "tox", "twine"] name = "django-cors-headers" version = "3.14.0" description = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -939,6 +1000,7 @@ Django = ">=3.2" name = "django-debug-toolbar" version = "4.0.0" description = "A configurable set of panels that display various debug information about the current request/response." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -954,6 +1016,7 @@ sqlparse = ">=0.2" name = "django-elasticsearch-dsl" version = "7.3" description = "Wrapper around elasticsearch-dsl-py for django models" +category = "main" optional = false python-versions = "*" files = [ @@ -969,6 +1032,7 @@ six = "*" name = "django-environ" version = "0.8.1" description = "A package that allows you to utilize 12factor inspired environment variables to configure your Django application." +category = "main" optional = false python-versions = ">=3.4,<4" files = [ @@ -977,14 +1041,15 @@ files = [ ] [package.extras] -develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.dev0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] -docs = ["furo (>=2021.8.17b43,<2021.9.dev0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] +develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] +docs = ["furo (>=2021.8.17b43,<2021.9.0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] testing = ["coverage[toml] (>=5.0a4)", "pytest (>=4.6.11)"] [[package]] name = "django-extensions" version = "3.2.1" description = "Extensions for Django" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -999,6 +1064,7 @@ Django = ">=3.2" name = "django-filter" version = "2.4.0" description = "Django-filter is a reusable Django application for allowing users to filter querysets dynamically." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1013,6 +1079,7 @@ Django = ">=2.2" name = "django-hcaptcha" version = "0.2.0" description = "Django hCaptcha provides a simple way to protect your django forms using hCaptcha" +category = "main" optional = false python-versions = "*" files = [ @@ -1024,6 +1091,7 @@ files = [ name = "django-localflavor" version = "3.1" description = "Country-specific Django helpers" +category = "main" optional = false python-versions = "*" files = [ @@ -1039,6 +1107,7 @@ python-stdnum = ">=1.6" name = "django-markdown-deux" version = "1.0.6" description = "a Django app that provides template tags for using Markdown (using the python-markdown2 processor)" +category = "main" optional = false python-versions = "*" files = [ @@ -1052,6 +1121,7 @@ markdown2 = "*" name = "django-mathfilters" version = "1.0.0" description = "A set of simple math filters for Django" +category = "main" optional = false python-versions = "*" files = [ @@ -1063,6 +1133,7 @@ files = [ name = "django-override-storage" version = "0.3.2" description = "Django test helpers to manage file storage side effects." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1074,6 +1145,7 @@ files = [ name = "django-pghistory" version = "2.7.0" description = "History tracking for Django and Postgres" +category = "main" optional = false python-versions = ">=3.7.0,<4" files = [ @@ -1089,6 +1161,7 @@ django-pgtrigger = ">=4.5.0" name = "django-pgtrigger" version = "4.6.0" description = "Postgres trigger support integrated with Django models." +category = "main" optional = false python-versions = ">=3.7.0,<4" files = [ @@ -1103,6 +1176,7 @@ django = ">=2" name = "django-ratelimit" version = "4.0.0" description = "Cache-based rate-limiting for Django." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1114,6 +1188,7 @@ files = [ name = "django-ses" version = "3.3.0" description = "A Django email backend for Amazon's Simple Email Service" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -1136,6 +1211,7 @@ events = ["cryptography (>=36.0.2)", "requests (>=2.27.1)"] name = "django-storages" version = "1.13.2" description = "Support for many storage backends in Django" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1158,6 +1234,7 @@ sftp = ["paramiko (>=1.10.0)"] name = "django-stubs" version = "4.2.0" description = "Mypy stubs for Django" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1181,6 +1258,7 @@ compatible-mypy = ["mypy (>=1.2.0,<1.3)"] name = "django-stubs-ext" version = "4.2.0" description = "Monkey-patching and extensions for django-stubs" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1196,6 +1274,7 @@ typing-extensions = "*" name = "django-waffle" version = "3.0.0" description = "A feature flipper for Django." +category = "main" optional = false python-versions = "*" files = [ @@ -1207,6 +1286,7 @@ files = [ name = "djangorestframework" version = "3.14.0" description = "Web APIs for Django, made easy." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1222,6 +1302,7 @@ pytz = "*" name = "djangorestframework-filters" version = "1.0.0.dev2" description = "Better filtering for Django REST Framework" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1237,6 +1318,7 @@ djangorestframework = "*" name = "djangorestframework-stubs" version = "3.14.0" description = "PEP-484 stubs for django-rest-framework" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1261,6 +1343,7 @@ markdown = ["types-Markdown (>=0.1.5)"] name = "djangorestframework-xml" version = "2.0.0" description = "XML support for Django REST Framework" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1280,6 +1363,7 @@ tests = ["Django (>=1.6)", "djangorestframework (>=2.4.3)", "flake8", "pytest", name = "docopt" version = "0.6.2" description = "Pythonic argument parser, that will make you smile" +category = "main" optional = false python-versions = "*" files = [ @@ -1290,6 +1374,7 @@ files = [ name = "drf-dynamic-fields" version = "0.3.1" description = "Dynamically return subset of Django REST Framework serializer fields" +category = "main" optional = false python-versions = "*" files = [ @@ -1301,6 +1386,7 @@ files = [ name = "elasticsearch" version = "7.17.9" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4" files = [ @@ -1322,6 +1408,7 @@ requests = ["requests (>=2.4.0,<3.0.0)"] name = "elasticsearch-dsl" version = "7.4.0" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1341,6 +1428,7 @@ develop = ["coverage (<5.0.0)", "mock", "pytest (>=3.0.0)", "pytest-cov", "pytes name = "exceptiongroup" version = "1.1.1" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1355,6 +1443,7 @@ test = ["pytest (>=6)"] name = "executing" version = "1.1.0" description = "Get the currently executing AST node of a frame, and other information" +category = "main" optional = false python-versions = "*" files = [ @@ -1369,6 +1458,7 @@ tests = ["asttokens", "littleutils", "pytest", "rich"] name = "exrex" version = "0.11.0" description = "Irregular methods for regular expressions" +category = "dev" optional = false python-versions = "*" files = [ @@ -1380,6 +1470,7 @@ files = [ name = "eyecite" version = "2.4.0" description = "Tool for extracting legal citations from text strings." +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -1399,6 +1490,7 @@ reporters-db = ">=3.2.2,<4.0.0" name = "factory-boy" version = "3.2.1" description = "A versatile test fixtures replacement based on thoughtbot's factory_bot for Ruby." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1417,6 +1509,7 @@ doc = ["Sphinx", "sphinx-rtd-theme", "sphinxcontrib-spelling"] name = "faker" version = "13.3.1" description = "Faker is a Python package that generates fake data for you." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1431,6 +1524,7 @@ python-dateutil = ">=2.4" name = "fast-diff-match-patch" version = "2.0.1" description = "fast_diff_match_patch: Python package wrapping the C++ implementation of google-diff-match-patch" +category = "main" optional = false python-versions = "*" files = [ @@ -1506,6 +1600,7 @@ files = [ name = "feedparser" version = "6.0.10" description = "Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1520,6 +1615,7 @@ sgmllib3k = "*" name = "filelock" version = "3.9.0" description = "A platform independent file lock." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1535,6 +1631,7 @@ testing = ["covdefaults (>=2.2.2)", "coverage (>=7.0.1)", "pytest (>=7.2)", "pyt name = "flake8" version = "6.0.0" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = ">=3.8.1" files = [ @@ -1551,6 +1648,7 @@ pyflakes = ">=3.0.0,<3.1.0" name = "flynt" version = "0.78" description = "CLI tool to convert a python project's %-formatted strings to f-strings." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1569,6 +1667,7 @@ dev = ["build", "pre-commit", "pytest", "pytest-cov", "twine"] name = "future" version = "0.18.3" description = "Clean single-source support for Python 3 and 2" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1579,6 +1678,7 @@ files = [ name = "fuzzywuzzy" version = "0.18.0" description = "Fuzzy string matching in python" +category = "main" optional = false python-versions = "*" files = [ @@ -1593,6 +1693,7 @@ speedup = ["python-levenshtein (>=0.12)"] name = "geonamescache" version = "1.6.0" description = "Geonames data for continents, cities and US states." +category = "main" optional = false python-versions = "*" files = [ @@ -1604,6 +1705,7 @@ files = [ name = "gunicorn" version = "20.1.0" description = "WSGI HTTP Server for UNIX" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1624,6 +1726,7 @@ tornado = ["tornado (>=0.2)"] name = "h11" version = "0.13.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1635,6 +1738,7 @@ files = [ name = "html5lib" version = "1.1" description = "HTML parser based on the WHATWG HTML specification" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1656,6 +1760,7 @@ lxml = ["lxml"] name = "httplib2" version = "0.22.0" description = "A comprehensive HTTP client library." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1670,6 +1775,7 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 name = "httptools" version = "0.5.0" description = "A collection of framework independent HTTP protocol utils." +category = "main" optional = false python-versions = ">=3.5.0" files = [ @@ -1723,6 +1829,7 @@ test = ["Cython (>=0.29.24,<0.30.0)"] name = "hyperlink" version = "21.0.0" description = "A featureful, immutable, and correct URL for Python." +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1737,6 +1844,7 @@ idna = ">=2.5" name = "identify" version = "2.5.17" description = "File identification library for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1751,6 +1859,7 @@ license = ["ukkonen"] name = "idna" version = "2.10" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1762,6 +1871,7 @@ files = [ name = "igraph" version = "0.10.4" description = "High performance graph data structures and algorithms" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1828,6 +1938,7 @@ test-musl = ["networkx (>=2.5)", "pytest (>=7.0.1)", "pytest-timeout (>=2.1.0)"] name = "incremental" version = "22.10.0" description = "\"A small library that versions your Python projects.\"" +category = "main" optional = false python-versions = "*" files = [ @@ -1843,6 +1954,7 @@ scripts = ["click (>=6.0)", "twisted (>=16.4.0)"] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1854,6 +1966,7 @@ files = [ name = "internetarchive" version = "3.3.0" description = "A Python interface to archive.org." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1879,6 +1992,7 @@ types = ["tqdm-stubs (>=0.2.0)", "types-colorama", "types-docopt (>=0.6.10,<0.7. name = "ipaddress" version = "1.0.23" description = "IPv4/IPv6 manipulation library" +category = "main" optional = false python-versions = "*" files = [ @@ -1890,6 +2004,7 @@ files = [ name = "ipython" version = "8.10.0" description = "IPython: Productive Interactive Computing" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1928,6 +2043,7 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "isort" version = "5.8.0" description = "A Python utility / library to sort Python imports." +category = "dev" optional = false python-versions = ">=3.6,<4.0" files = [ @@ -1944,6 +2060,7 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "itypes" version = "1.2.0" description = "Simple immutable types for python." +category = "main" optional = false python-versions = "*" files = [ @@ -1955,6 +2072,7 @@ files = [ name = "jedi" version = "0.18.1" description = "An autocompletion tool for Python that can be used for text editors." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1973,6 +2091,7 @@ testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "2.11.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1990,6 +2109,7 @@ i18n = ["Babel (>=0.8)"] name = "jmespath" version = "0.10.0" description = "JSON Matching Expressions" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2001,6 +2121,7 @@ files = [ name = "jsonpatch" version = "1.32" description = "Apply JSON-Patches (RFC 6902)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2015,6 +2136,7 @@ jsonpointer = ">=1.9" name = "jsonpointer" version = "2.1" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2026,6 +2148,7 @@ files = [ name = "judge-pics" version = "2.0.2" description = "Database of Judge Pictures" +category = "main" optional = false python-versions = "*" files = [ @@ -2045,6 +2168,7 @@ requests = ">=2.0,<3.0" name = "juriscraper" version = "2.5.49" description = "An API to scrape American court websites for metadata." +category = "main" optional = false python-versions = "*" files = [ @@ -2072,6 +2196,7 @@ tldextract = "*" name = "kdtree" version = "0.16" description = "A Python implemntation of a kd-tree" +category = "main" optional = false python-versions = "*" files = [ @@ -2083,6 +2208,7 @@ files = [ name = "kombu" version = "5.3.0" description = "Messaging library for Python." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2115,6 +2241,7 @@ zookeeper = ["kazoo (>=2.8.0)"] name = "lazy-object-proxy" version = "1.6.0" description = "A fast and thorough lazy object proxy." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -2146,6 +2273,7 @@ files = [ name = "lxml" version = "4.9.1" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -2231,6 +2359,7 @@ source = ["Cython (>=0.29.7)"] name = "lxml-stubs" version = "0.4.0" description = "Type annotations for the lxml package" +category = "dev" optional = false python-versions = "*" files = [ @@ -2245,6 +2374,7 @@ test = ["coverage[toml] (==5.2)", "pytest (>=6.0.0)", "pytest-mypy-plugins (==1. name = "markdown2" version = "2.4.0" description = "A fast and complete Python implementation of Markdown" +category = "main" optional = false python-versions = ">=3.5, <4" files = [ @@ -2256,6 +2386,7 @@ files = [ name = "markupsafe" version = "1.1.1" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -2317,6 +2448,7 @@ files = [ name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2331,6 +2463,7 @@ traitlets = "*" name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2342,6 +2475,7 @@ files = [ name = "mypy" version = "1.2.0" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2388,6 +2522,7 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2399,6 +2534,7 @@ files = [ name = "nameparser" version = "1.1.1" description = "A simple Python module for parsing human names into their individual components." +category = "main" optional = false python-versions = "*" files = [ @@ -2410,6 +2546,7 @@ files = [ name = "natsort" version = "8.3.1" description = "Simple yet flexible natural sorting in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2425,8 +2562,9 @@ icu = ["PyICU (>=1.0.0)"] name = "ndg-httpsclient" version = "0.5.1" description = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL" +category = "main" optional = false -python-versions = ">=2.7,<3.0.dev0 || >=3.4.dev0" +python-versions = ">=2.7,<3.0.0 || >=3.4.0" files = [ {file = "ndg_httpsclient-0.5.1-py2-none-any.whl", hash = "sha256:d2c7225f6a1c6cf698af4ebc962da70178a99bcde24ee6d1961c4f3338130d57"}, {file = "ndg_httpsclient-0.5.1-py3-none-any.whl", hash = "sha256:dd174c11d971b6244a891f7be2b32ca9853d3797a72edb34fa5d7b07d8fff7d4"}, @@ -2441,6 +2579,7 @@ PyOpenSSL = "*" name = "networkx" version = "3.1" description = "Python package for creating and manipulating graphs and networks" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2459,6 +2598,7 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] name = "nodeenv" version = "1.7.0" description = "Node.js virtual environment builder" +category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -2473,6 +2613,7 @@ setuptools = "*" name = "nose" version = "1.3.7" description = "nose extends unittest to make testing easier" +category = "main" optional = false python-versions = "*" files = [ @@ -2485,6 +2626,7 @@ files = [ name = "numpy" version = "1.24.2" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2522,6 +2664,7 @@ files = [ name = "openapi-codec" version = "1.3.2" description = "An OpenAPI codec for Core API." +category = "main" optional = false python-versions = "*" files = [ @@ -2535,6 +2678,7 @@ coreapi = ">=2.2.0" name = "outcome" version = "1.2.0" description = "Capture the outcome of Python function calls." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2549,6 +2693,7 @@ attrs = ">=19.2.0" name = "packaging" version = "23.1" description = "Core utilities for Python packages" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2560,6 +2705,7 @@ files = [ name = "pandas" version = "1.5.0" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2604,6 +2750,7 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] name = "parso" version = "0.8.3" description = "A Python Parser" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2619,6 +2766,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.9.0" description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -2630,6 +2778,7 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." +category = "main" optional = false python-versions = "*" files = [ @@ -2644,6 +2793,7 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" +category = "main" optional = false python-versions = "*" files = [ @@ -2655,6 +2805,7 @@ files = [ name = "pillow" version = "9.3.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2729,6 +2880,7 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "platformdirs" version = "2.5.1" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2744,6 +2896,7 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock 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.*" files = [ @@ -2758,6 +2911,7 @@ dev = ["pre-commit", "tox"] name = "pre-commit" version = "3.3.1" description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2776,6 +2930,7 @@ virtualenv = ">=20.10.0" name = "probableparsing" version = "0.0.1" description = "Common methods for propbable parsers" +category = "main" optional = false python-versions = "*" files = [ @@ -2787,6 +2942,7 @@ files = [ name = "prompt-toolkit" version = "3.0.31" description = "Library for building powerful interactive command lines in Python" +category = "main" optional = false python-versions = ">=3.6.2" files = [ @@ -2801,6 +2957,7 @@ wcwidth = "*" name = "psycopg2" version = "2.9.5" description = "psycopg2 - Python-PostgreSQL Database Adapter" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2823,6 +2980,7 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -2834,6 +2992,7 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "main" optional = false python-versions = "*" files = [ @@ -2848,6 +3007,7 @@ tests = ["pytest"] name = "pyahocorasick" version = "1.4.2" description = "pyahocorasick is a fast and memory efficient library for exact or approximate multi-pattern string search. With the ahocorasick.Automaton class, you can find multiple key strings occurrences at once in some input text. You can use it as a plain dict-like Trie or convert a Trie to an automaton for efficient Aho-Corasick search. Implemented in C and tested on Python 2.7 and 3.4+. Works on Linux, Mac and Windows. BSD-3-clause license." +category = "main" optional = false python-versions = "*" files = [ @@ -2858,6 +3018,7 @@ files = [ name = "pyasn1" version = "0.4.8" description = "ASN.1 types and codecs" +category = "main" optional = false python-versions = "*" files = [ @@ -2869,6 +3030,7 @@ files = [ name = "pyasn1-modules" version = "0.3.0" description = "A collection of ASN.1-based protocols modules" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -2883,6 +3045,7 @@ pyasn1 = ">=0.4.6,<0.6.0" name = "pycodestyle" version = "2.10.0" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2894,6 +3057,7 @@ files = [ name = "pycparser" version = "2.21" description = "C parser in Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2905,6 +3069,7 @@ files = [ name = "pyflakes" version = "3.0.1" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2916,6 +3081,7 @@ files = [ name = "pygments" version = "2.13.0" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2930,6 +3096,7 @@ plugins = ["importlib-metadata"] name = "pylint" version = "2.17.3" description = "python code static checker" +category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -2958,6 +3125,7 @@ testutils = ["gitpython (>3)"] name = "pyopenssl" version = "20.0.1" description = "Python wrapper module around the OpenSSL library" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" files = [ @@ -2977,6 +3145,7 @@ test = ["flaky", "pretend", "pytest (>=3.0.1)"] name = "pyparsing" version = "2.4.7" description = "Python parsing module" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2988,6 +3157,7 @@ files = [ name = "pysocks" version = "1.7.1" description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3000,6 +3170,7 @@ files = [ name = "pystemmer" version = "2.0.1" description = "Snowball stemming algorithms, for information retrieval" +category = "main" optional = false python-versions = "*" files = [ @@ -3010,6 +3181,7 @@ files = [ name = "pytest" version = "7.3.1" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3032,6 +3204,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-django" version = "4.5.2" description = "A Django plugin for pytest." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3050,6 +3223,7 @@ testing = ["Django", "django-configurations (>=2.0)"] name = "python-crfsuite" version = "0.9.9" description = "Python binding for CRFsuite" +category = "main" optional = false python-versions = "*" files = [ @@ -3100,6 +3274,7 @@ files = [ name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -3114,6 +3289,7 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3128,6 +3304,7 @@ cli = ["click (>=5.0)"] name = "python-levenshtein" version = "0.12.2" description = "Python extension for computing string edit distances and similarities." +category = "main" optional = false python-versions = "*" files = [ @@ -3141,6 +3318,7 @@ setuptools = "*" name = "python-magic" version = "0.4.22" description = "File type identification using libmagic" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3152,6 +3330,7 @@ files = [ name = "python-stdnum" version = "1.16" description = "Python module to handle standardized numbers and codes" +category = "main" optional = false python-versions = "*" files = [ @@ -3168,6 +3347,7 @@ soap-fallback = ["PySimpleSOAP"] name = "pytz" version = "2021.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -3179,6 +3359,7 @@ files = [ name = "pytz-deprecation-shim" version = "0.1.0.post0" description = "Shims to make deprecation of pytz easier" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3193,6 +3374,7 @@ tzdata = {version = "*", markers = "python_version >= \"3.6\""} name = "pyyaml" version = "5.4.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -3229,22 +3411,28 @@ files = [ [[package]] name = "redis" -version = "3.5.3" -description = "Python client for Redis key-value store" +version = "4.5.5" +description = "Python client for Redis database and key-value store" +category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.7" files = [ - {file = "redis-3.5.3-py2.py3-none-any.whl", hash = "sha256:432b788c4530cfe16d8d943a09d40ca6c16149727e4afe8c2c9d5580c59d9f24"}, - {file = "redis-3.5.3.tar.gz", hash = "sha256:0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2"}, + {file = "redis-4.5.5-py3-none-any.whl", hash = "sha256:77929bc7f5dab9adf3acba2d3bb7d7658f1e0c2f1cafe7eb36434e751c471119"}, + {file = "redis-4.5.5.tar.gz", hash = "sha256:dc87a0bdef6c8bfe1ef1e1c40be7034390c2ae02d92dcd0c7ca1729443899880"}, ] +[package.dependencies] +async-timeout = {version = ">=4.0.2", markers = "python_full_version <= \"3.11.2\""} + [package.extras] -hiredis = ["hiredis (>=0.1.3)"] +hiredis = ["hiredis (>=1.0.0)"] +ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)"] [[package]] name = "regex" version = "2022.1.18" description = "Alternative regular expression module, to replace re." +category = "main" optional = false python-versions = "*" files = [ @@ -3328,6 +3516,7 @@ files = [ name = "reporters-db" version = "3.2.36" description = "Database of Court Reporters" +category = "main" optional = false python-versions = "*" files = [ @@ -3342,6 +3531,7 @@ six = ">=1.0.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3363,6 +3553,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-file" version = "1.5.1" description = "File transport adapter for Requests" +category = "main" optional = false python-versions = "*" files = [ @@ -3378,6 +3569,7 @@ six = "*" name = "s3transfer" version = "0.3.6" description = "An Amazon S3 Transfer Manager" +category = "main" optional = false python-versions = "*" files = [ @@ -3392,6 +3584,7 @@ botocore = ">=1.12.36,<2.0a.0" name = "schema" version = "0.7.4" description = "Simple data validation library" +category = "main" optional = false python-versions = "*" files = [ @@ -3406,6 +3599,7 @@ contextlib2 = ">=0.5.5" name = "scipy" version = "1.10.1" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = "<3.12,>=3.8" files = [ @@ -3444,6 +3638,7 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo name = "scorched" version = "0.13.1.dev0" description = "" +category = "main" optional = false python-versions = "*" files = [] @@ -3466,6 +3661,7 @@ resolved_reference = "0632024e72e22a71e17cdb778805561f7cdd33d8" name = "selenium" version = "4.9.1" description = "" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3483,6 +3679,7 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} name = "sentry-sdk" version = "1.14.0" description = "Python client for Sentry (https://sentry.io)" +category = "main" optional = false python-versions = "*" files = [ @@ -3521,6 +3718,7 @@ tornado = ["tornado (>=5)"] name = "service-identity" version = "21.1.0" description = "Service identity verification for pyOpenSSL & cryptography." +category = "main" optional = false python-versions = "*" files = [ @@ -3545,6 +3743,7 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] name = "setuptools" version = "65.5.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3561,6 +3760,7 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "sgmllib3k" version = "1.0.0" description = "Py3k port of sgmllib." +category = "main" optional = false python-versions = "*" files = [ @@ -3571,6 +3771,7 @@ files = [ name = "simplejson" version = "3.18.3" description = "Simple, fast, extensible JSON encoder/decoder for Python" +category = "main" optional = false python-versions = ">=2.5, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3653,6 +3854,7 @@ files = [ name = "six" version = "1.15.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3664,6 +3866,7 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3675,6 +3878,7 @@ files = [ name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" +category = "main" optional = false python-versions = "*" files = [ @@ -3686,6 +3890,7 @@ files = [ name = "soupsieve" version = "2.2.1" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3697,6 +3902,7 @@ files = [ name = "sqlparse" version = "0.4.4" description = "A non-validating SQL parser." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3713,6 +3919,7 @@ test = ["pytest", "pytest-cov"] name = "stack-data" version = "0.5.1" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "main" optional = false python-versions = "*" files = [ @@ -3732,6 +3939,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "stripe" version = "5.2.0" description = "Python bindings for the Stripe API" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3746,6 +3954,7 @@ requests = {version = ">=2.20", markers = "python_version >= \"3.0\""} name = "tblib" version = "1.7.0" description = "Traceback serialization library." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3757,6 +3966,7 @@ files = [ name = "texttable" version = "1.6.4" description = "module for creating simple ASCII tables" +category = "main" optional = false python-versions = "*" files = [ @@ -3768,6 +3978,7 @@ files = [ name = "time-machine" version = "2.9.0" description = "Travel through time in your tests." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3833,6 +4044,7 @@ python-dateutil = "*" name = "timeout-decorator" version = "0.5.0" description = "Timeout decorator" +category = "main" optional = false python-versions = "*" files = [ @@ -3843,6 +4055,7 @@ files = [ name = "tldextract" version = "3.4.0" description = "Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL). By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3860,6 +4073,7 @@ requests-file = ">=1.4" name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3871,6 +4085,7 @@ files = [ name = "tomlkit" version = "0.11.8" description = "Style preserving TOML library" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3882,6 +4097,7 @@ files = [ name = "tqdm" version = "4.59.0" description = "Fast, Extensible Progress Meter" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -3898,6 +4114,7 @@ telegram = ["requests"] name = "traitlets" version = "5.4.0" description = "" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3912,6 +4129,7 @@ test = ["pre-commit", "pytest"] name = "trio" version = "0.21.0" description = "A friendly Python library for async concurrency and I/O" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3932,6 +4150,7 @@ sortedcontainers = "*" name = "trio-websocket" version = "0.9.2" description = "WebSocket library for Trio" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3948,6 +4167,7 @@ wsproto = ">=0.14" name = "twisted" version = "22.4.0" description = "An asynchronous networking framework written in Python" +category = "main" optional = false python-versions = ">=3.6.7" files = [ @@ -3988,6 +4208,7 @@ windows-platform = ["PyHamcrest (>=1.9.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.0. name = "twisted-iocpsupport" version = "1.0.3" description = "An extension for use in the twisted I/O Completion Ports reactor." +category = "main" optional = false python-versions = "*" files = [ @@ -4013,6 +4234,7 @@ files = [ name = "txaio" version = "23.1.1" description = "Compatibility API between asyncio/Twisted/Trollius" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4029,6 +4251,7 @@ twisted = ["twisted (>=20.3.0)", "zope.interface (>=5.2.0)"] name = "types-dateparser" version = "1.1.4.6" description = "Typing stubs for dateparser" +category = "main" optional = false python-versions = "*" files = [ @@ -4040,6 +4263,7 @@ files = [ name = "types-pyopenssl" version = "23.0.0.4" description = "Typing stubs for pyOpenSSL" +category = "dev" optional = false python-versions = "*" files = [ @@ -4054,6 +4278,7 @@ cryptography = ">=35.0.0" name = "types-python-dateutil" version = "2.8.19.12" description = "Typing stubs for python-dateutil" +category = "dev" optional = false python-versions = "*" files = [ @@ -4065,6 +4290,7 @@ files = [ name = "types-pytz" version = "2021.3.5" description = "Typing stubs for pytz" +category = "dev" optional = false python-versions = "*" files = [ @@ -4076,6 +4302,7 @@ files = [ name = "types-pyyaml" version = "6.0.4" description = "Typing stubs for PyYAML" +category = "dev" optional = false python-versions = "*" files = [ @@ -4087,6 +4314,7 @@ files = [ name = "types-redis" version = "4.5.4.1" description = "Typing stubs for redis" +category = "dev" optional = false python-versions = "*" files = [ @@ -4102,6 +4330,7 @@ types-pyOpenSSL = "*" name = "types-requests" version = "2.29.0.0" description = "Typing stubs for requests" +category = "dev" optional = false python-versions = "*" files = [ @@ -4116,6 +4345,7 @@ types-urllib3 = "<1.27" name = "types-simplejson" version = "3.19.0.0" description = "Typing stubs for simplejson" +category = "dev" optional = false python-versions = "*" files = [ @@ -4127,6 +4357,7 @@ files = [ name = "types-urllib3" version = "1.26.11" description = "Typing stubs for urllib3" +category = "dev" optional = false python-versions = "*" files = [ @@ -4138,6 +4369,7 @@ files = [ name = "typing-extensions" version = "4.1.1" description = "Backported and Experimental Type Hints for Python 3.6+" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4149,6 +4381,7 @@ files = [ name = "tzdata" version = "2022.7" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -4160,6 +4393,7 @@ files = [ name = "tzlocal" version = "4.2" description = "tzinfo object for the local timezone" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4179,6 +4413,7 @@ test = ["pytest (>=4.3)", "pytest-mock (>=3.3)"] name = "unidecode" version = "1.2.0" description = "ASCII transliterations of Unicode text" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4190,6 +4425,7 @@ files = [ name = "uritemplate" version = "3.0.1" description = "URI templates" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4201,6 +4437,7 @@ files = [ name = "urllib3" version = "1.26.15" 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.*, !=3.5.*" files = [ @@ -4220,6 +4457,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "usaddress" version = "0.5.10" description = "Parse US addresses using conditional random fields" +category = "main" optional = false python-versions = "*" files = [ @@ -4236,6 +4474,7 @@ python-crfsuite = ">=0.7" name = "uvicorn" version = "0.22.0" description = "The lightning-fast ASGI server." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4250,7 +4489,7 @@ h11 = ">=0.8" httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} -uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} @@ -4261,6 +4500,7 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", name = "uvloop" version = "0.17.0" description = "Fast implementation of asyncio event loop on top of libuv" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4305,6 +4545,7 @@ test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "my name = "vine" version = "5.0.0" description = "Promises, promises, promises." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4316,6 +4557,7 @@ files = [ name = "virtualenv" version = "20.17.1" description = "Virtual Python Environment builder" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4336,6 +4578,7 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7 name = "watchfiles" version = "0.19.0" description = "Simple, modern and high performance file watching and code reload in python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4370,6 +4613,7 @@ anyio = ">=3.0.0" name = "wcwidth" version = "0.2.5" description = "Measures the displayed width of unicode strings in a terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -4381,6 +4625,7 @@ files = [ name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "main" optional = false python-versions = "*" files = [ @@ -4392,6 +4637,7 @@ files = [ name = "websockets" version = "11.0.3" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4471,6 +4717,7 @@ files = [ name = "wrapt" version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -4555,6 +4802,7 @@ files = [ name = "wsproto" version = "1.2.0" description = "WebSockets state-machine based protocol implementation" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -4569,6 +4817,7 @@ h11 = ">=0.9.0,<1" name = "zope-interface" version = "6.0" description = "Interfaces for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4615,4 +4864,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.10, <3.12" -content-hash = "d435d4c7dce4af1c659d4dbe2d712e2091a1514a80439b4e4009404f69bef595" +content-hash = "31793909108232d01e0af0d04665aed89ecf132877c5d9b7bfa6b6be06b18dd1" diff --git a/pyproject.toml b/pyproject.toml index 5ec87e6e65..462d55a9a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,7 +72,7 @@ python-dateutil = "^2.8.1" python-magic = "^0.4.21" pytz = "*" pyyaml = "^5.3.1" -redis = "^3.5.3" +redis = "^4.5.5" requests = "^2.31.0" simplejson = "^3.18.3" stripe = "^5.2.0" From 228d4317a8462f5914f9ceb69b76aa56269eba98 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 23:04:51 +0000 Subject: [PATCH 02/21] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e531956054..e9052f9eaf 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This repository is organized in the following way: - scripts: logrotate, systemd, etc, and init scripts for our various configurations and daemons. -## Getting Involved +## Getting Involved If you want to get involved send us an email with your contact info or take a look through the [issues list][issues]. There are innumerable things we need help with, but we especially are looking for help with: From 0f6cbf528513b4dbe6d3ebb8f2a0f95720718973 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 23:07:57 +0000 Subject: [PATCH 03/21] build(deps): bump drf-dynamic-fields from 0.3.1 to 0.4.0 Bumps [drf-dynamic-fields](https://github.com/dbrgn/drf-dynamic-fields) from 0.3.1 to 0.4.0. - [Changelog](https://github.com/dbrgn/drf-dynamic-fields/blob/master/CHANGELOG.md) - [Commits](https://github.com/dbrgn/drf-dynamic-fields/compare/v0.3.1...v0.4.0) --- updated-dependencies: - dependency-name: drf-dynamic-fields dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 249 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 241 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index d923189ec5..5cbfed0e6a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.5.0 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "amqp" version = "5.1.1" description = "Low-level AMQP client for Python (fork of amqplib)." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -18,6 +19,7 @@ vine = ">=5.0.0" name = "anyio" version = "3.6.2" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" optional = false python-versions = ">=3.6.2" files = [ @@ -38,6 +40,7 @@ trio = ["trio (>=0.16,<0.22)"] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" +category = "main" optional = false python-versions = "*" files = [ @@ -49,6 +52,7 @@ files = [ name = "argparse" version = "1.4.0" description = "Python command-line parsing library" +category = "main" optional = false python-versions = "*" files = [ @@ -60,6 +64,7 @@ files = [ name = "asgiref" version = "3.6.0" description = "ASGI specs, helper code, and adapters" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -74,6 +79,7 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -85,6 +91,7 @@ files = [ name = "astroid" version = "2.15.4" description = "An abstract syntax tree for Python with inference support." +category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -104,6 +111,7 @@ wrapt = [ name = "asttokens" version = "2.0.8" description = "Annotate AST trees with source code positions" +category = "main" optional = false python-versions = "*" files = [ @@ -121,6 +129,7 @@ test = ["astroid (<=2.5.3)", "pytest"] name = "async-generator" version = "1.10" description = "Async generators and context managers for Python 3.5+" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -132,6 +141,7 @@ files = [ name = "attrs" version = "20.3.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -149,6 +159,7 @@ tests-no-zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (> name = "autobahn" version = "23.1.2" description = "WebSocket client & server library, WAMP real-time framework" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -177,6 +188,7 @@ xbr = ["base58 (>=2.1.0)", "cbor2 (>=5.2.0)", "click (>=8.1.2)", "ecdsa (>=0.16. name = "automat" version = "22.10.0" description = "Self-service finite-state machines for the programmer on the go." +category = "main" optional = false python-versions = "*" files = [ @@ -195,6 +207,7 @@ visualize = ["Twisted (>=16.1.1)", "graphviz (>0.5.1)"] name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" +category = "main" optional = false python-versions = "*" files = [ @@ -206,6 +219,7 @@ files = [ name = "beautifulsoup4" version = "4.11.2" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -224,6 +238,7 @@ lxml = ["lxml"] name = "billiard" version = "4.1.0" description = "Python multiprocessing fork with improvements and bugfixes" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -235,6 +250,7 @@ files = [ name = "black" version = "23.3.0" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -283,6 +299,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "boto3" version = "1.17.43" description = "The AWS SDK for Python" +category = "main" optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -299,6 +316,7 @@ s3transfer = ">=0.3.0,<0.4.0" name = "botocore" version = "1.20.43" description = "Low-level, data-driven core of boto 3." +category = "main" optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -318,6 +336,7 @@ crt = ["awscrt (==0.10.8)"] name = "celery" version = "5.3.0" description = "Distributed Task Queue." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -373,6 +392,7 @@ zstd = ["zstandard (==0.21.0)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -384,6 +404,7 @@ files = [ name = "cffi" version = "1.14.5" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = "*" files = [ @@ -445,6 +466,7 @@ pycparser = "*" name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." +category = "dev" optional = false python-versions = ">=3.6.1" files = [ @@ -456,6 +478,7 @@ files = [ name = "chardet" version = "5.1.0" description = "Universal encoding detector for Python 3" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -467,6 +490,7 @@ files = [ name = "charset-normalizer" version = "3.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -551,6 +575,7 @@ files = [ name = "click" version = "8.1.2" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -565,6 +590,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-didyoumean" version = "0.3.0" description = "Enables git-like *did-you-mean* feature in click" +category = "main" optional = false python-versions = ">=3.6.2,<4.0.0" files = [ @@ -579,6 +605,7 @@ click = ">=7" name = "click-plugins" version = "1.1.1" description = "An extension module for click to enable registering CLI commands via setuptools entry-points." +category = "main" optional = false python-versions = "*" files = [ @@ -596,6 +623,7 @@ dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] name = "click-repl" version = "0.2.0" description = "REPL plugin for Click" +category = "main" optional = false python-versions = "*" files = [ @@ -612,6 +640,7 @@ six = "*" name = "climage" version = "0.1.3" description = "Convert images to beautiful ANSI escape codes" +category = "main" optional = false python-versions = ">=3.2" files = [ @@ -627,6 +656,7 @@ Pillow = "*" name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -638,6 +668,7 @@ files = [ name = "constantly" version = "15.1.0" description = "Symbolic constants in Python" +category = "main" optional = false python-versions = "*" files = [ @@ -649,6 +680,7 @@ files = [ name = "contextlib2" version = "0.6.0.post1" description = "Backports and enhancements for the contextlib module" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -660,6 +692,7 @@ files = [ name = "coreapi" version = "2.3.3" description = "Python client library for Core API." +category = "main" optional = false python-versions = "*" files = [ @@ -677,6 +710,7 @@ uritemplate = "*" name = "coreschema" version = "0.0.4" description = "Core Schema." +category = "main" optional = false python-versions = "*" files = [ @@ -691,6 +725,7 @@ jinja2 = "*" name = "courts-db" version = "0.10.9" description = "Database of Courts" +category = "main" optional = false python-versions = "*" files = [ @@ -702,6 +737,7 @@ files = [ name = "cryptography" version = "36.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -742,6 +778,7 @@ test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.2.0 name = "cssselect" version = "1.2.0" description = "cssselect parses CSS3 Selectors and translates them to XPath 1.0" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -753,6 +790,7 @@ files = [ name = "daphne" version = "4.0.0" description = "Django ASGI (HTTP/WebSocket) server" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -772,6 +810,7 @@ tests = ["django", "hypothesis", "pytest", "pytest-asyncio"] name = "datasketch" version = "1.5.7" description = "Probabilistic data structures for processing and searching very large datasets" +category = "main" optional = false python-versions = "*" files = [ @@ -794,6 +833,7 @@ test = ["cassandra-driver (>=3.20)", "coverage", "mock (>=2.0.0)", "mockredispy" name = "dateparser" version = "1.1.8" description = "Date parsing library designed to parse dates from HTML pages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -816,6 +856,7 @@ langdetect = ["langdetect"] name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -827,6 +868,7 @@ files = [ 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.*" files = [ @@ -838,6 +880,7 @@ files = [ name = "dill" version = "0.3.6" description = "serialize all of python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -852,6 +895,7 @@ graph = ["objgraph (>=1.7.2)"] name = "disposable-email-domains" version = "0.0.64" description = "A set of disposable email domains" +category = "main" optional = false python-versions = "*" files = [ @@ -866,6 +910,7 @@ dev = ["check-manifest"] name = "distlib" version = "0.3.6" description = "Distribution utilities" +category = "dev" optional = false python-versions = "*" files = [ @@ -877,6 +922,7 @@ files = [ name = "django" version = "4.2.1" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -897,6 +943,7 @@ bcrypt = ["bcrypt"] name = "django-admin-cursor-paginator" version = "0.1.2" description = "Drop-in replacement for django admin default pagination that works fast with huge tables." +category = "main" optional = false python-versions = ">=3.4" files = [ @@ -911,6 +958,7 @@ Django = ">=2.0" name = "django-cache-memoize" version = "0.1.8" description = "Django utility for a memoization decorator that uses the Django cache framework." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -925,6 +973,7 @@ dev = ["black", "flake8", "therapist", "tox", "twine"] name = "django-cors-headers" version = "3.14.0" description = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -939,6 +988,7 @@ Django = ">=3.2" name = "django-debug-toolbar" version = "4.0.0" description = "A configurable set of panels that display various debug information about the current request/response." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -954,6 +1004,7 @@ sqlparse = ">=0.2" name = "django-elasticsearch-dsl" version = "7.3" description = "Wrapper around elasticsearch-dsl-py for django models" +category = "main" optional = false python-versions = "*" files = [ @@ -969,6 +1020,7 @@ six = "*" name = "django-environ" version = "0.8.1" description = "A package that allows you to utilize 12factor inspired environment variables to configure your Django application." +category = "main" optional = false python-versions = ">=3.4,<4" files = [ @@ -977,14 +1029,15 @@ files = [ ] [package.extras] -develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.dev0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] -docs = ["furo (>=2021.8.17b43,<2021.9.dev0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] +develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] +docs = ["furo (>=2021.8.17b43,<2021.9.0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] testing = ["coverage[toml] (>=5.0a4)", "pytest (>=4.6.11)"] [[package]] name = "django-extensions" version = "3.2.1" description = "Extensions for Django" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -999,6 +1052,7 @@ Django = ">=3.2" name = "django-filter" version = "2.4.0" description = "Django-filter is a reusable Django application for allowing users to filter querysets dynamically." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1013,6 +1067,7 @@ Django = ">=2.2" name = "django-hcaptcha" version = "0.2.0" description = "Django hCaptcha provides a simple way to protect your django forms using hCaptcha" +category = "main" optional = false python-versions = "*" files = [ @@ -1024,6 +1079,7 @@ files = [ name = "django-localflavor" version = "3.1" description = "Country-specific Django helpers" +category = "main" optional = false python-versions = "*" files = [ @@ -1039,6 +1095,7 @@ python-stdnum = ">=1.6" name = "django-markdown-deux" version = "1.0.6" description = "a Django app that provides template tags for using Markdown (using the python-markdown2 processor)" +category = "main" optional = false python-versions = "*" files = [ @@ -1052,6 +1109,7 @@ markdown2 = "*" name = "django-mathfilters" version = "1.0.0" description = "A set of simple math filters for Django" +category = "main" optional = false python-versions = "*" files = [ @@ -1063,6 +1121,7 @@ files = [ name = "django-override-storage" version = "0.3.2" description = "Django test helpers to manage file storage side effects." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1074,6 +1133,7 @@ files = [ name = "django-pghistory" version = "2.7.0" description = "History tracking for Django and Postgres" +category = "main" optional = false python-versions = ">=3.7.0,<4" files = [ @@ -1089,6 +1149,7 @@ django-pgtrigger = ">=4.5.0" name = "django-pgtrigger" version = "4.6.0" description = "Postgres trigger support integrated with Django models." +category = "main" optional = false python-versions = ">=3.7.0,<4" files = [ @@ -1103,6 +1164,7 @@ django = ">=2" name = "django-ratelimit" version = "4.0.0" description = "Cache-based rate-limiting for Django." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1114,6 +1176,7 @@ files = [ name = "django-ses" version = "3.3.0" description = "A Django email backend for Amazon's Simple Email Service" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -1136,6 +1199,7 @@ events = ["cryptography (>=36.0.2)", "requests (>=2.27.1)"] name = "django-storages" version = "1.13.2" description = "Support for many storage backends in Django" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1158,6 +1222,7 @@ sftp = ["paramiko (>=1.10.0)"] name = "django-stubs" version = "4.2.0" description = "Mypy stubs for Django" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1181,6 +1246,7 @@ compatible-mypy = ["mypy (>=1.2.0,<1.3)"] name = "django-stubs-ext" version = "4.2.0" description = "Monkey-patching and extensions for django-stubs" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1196,6 +1262,7 @@ typing-extensions = "*" name = "django-waffle" version = "3.0.0" description = "A feature flipper for Django." +category = "main" optional = false python-versions = "*" files = [ @@ -1207,6 +1274,7 @@ files = [ name = "djangorestframework" version = "3.14.0" description = "Web APIs for Django, made easy." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1222,6 +1290,7 @@ pytz = "*" name = "djangorestframework-filters" version = "1.0.0.dev2" description = "Better filtering for Django REST Framework" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1237,6 +1306,7 @@ djangorestframework = "*" name = "djangorestframework-stubs" version = "3.14.0" description = "PEP-484 stubs for django-rest-framework" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1261,6 +1331,7 @@ markdown = ["types-Markdown (>=0.1.5)"] name = "djangorestframework-xml" version = "2.0.0" description = "XML support for Django REST Framework" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1280,6 +1351,7 @@ tests = ["Django (>=1.6)", "djangorestframework (>=2.4.3)", "flake8", "pytest", name = "docopt" version = "0.6.2" description = "Pythonic argument parser, that will make you smile" +category = "main" optional = false python-versions = "*" files = [ @@ -1288,19 +1360,21 @@ files = [ [[package]] name = "drf-dynamic-fields" -version = "0.3.1" +version = "0.4.0" description = "Dynamically return subset of Django REST Framework serializer fields" +category = "main" optional = false python-versions = "*" files = [ - {file = "drf_dynamic_fields-0.3.1-py2.py3-none-any.whl", hash = "sha256:fa5a7ea010476184d776b4b977d57d0090e651e8f897d83ed0c2f2bca9cbf704"}, - {file = "drf_dynamic_fields-0.3.1.tar.gz", hash = "sha256:de75969abff74332f339d082931f1815dc91c2ff1ed6e741bd33d1d5057dceb1"}, + {file = "drf_dynamic_fields-0.4.0-py2.py3-none-any.whl", hash = "sha256:48b879fe899905bc18593a61bca43e3b595dc3431b3b4ee499a9fd6c9a53f98c"}, + {file = "drf_dynamic_fields-0.4.0.tar.gz", hash = "sha256:f20a5ec27d003db7595c9315db22217493dcaed575f3811d3e12f264c791c20c"}, ] [[package]] name = "elasticsearch" version = "7.17.9" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4" files = [ @@ -1322,6 +1396,7 @@ requests = ["requests (>=2.4.0,<3.0.0)"] name = "elasticsearch-dsl" version = "7.4.0" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1341,6 +1416,7 @@ develop = ["coverage (<5.0.0)", "mock", "pytest (>=3.0.0)", "pytest-cov", "pytes name = "exceptiongroup" version = "1.1.1" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1355,6 +1431,7 @@ test = ["pytest (>=6)"] name = "executing" version = "1.1.0" description = "Get the currently executing AST node of a frame, and other information" +category = "main" optional = false python-versions = "*" files = [ @@ -1369,6 +1446,7 @@ tests = ["asttokens", "littleutils", "pytest", "rich"] name = "exrex" version = "0.11.0" description = "Irregular methods for regular expressions" +category = "dev" optional = false python-versions = "*" files = [ @@ -1380,6 +1458,7 @@ files = [ name = "eyecite" version = "2.4.0" description = "Tool for extracting legal citations from text strings." +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -1399,6 +1478,7 @@ reporters-db = ">=3.2.2,<4.0.0" name = "factory-boy" version = "3.2.1" description = "A versatile test fixtures replacement based on thoughtbot's factory_bot for Ruby." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1417,6 +1497,7 @@ doc = ["Sphinx", "sphinx-rtd-theme", "sphinxcontrib-spelling"] name = "faker" version = "13.3.1" description = "Faker is a Python package that generates fake data for you." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1431,6 +1512,7 @@ python-dateutil = ">=2.4" name = "fast-diff-match-patch" version = "2.0.1" description = "fast_diff_match_patch: Python package wrapping the C++ implementation of google-diff-match-patch" +category = "main" optional = false python-versions = "*" files = [ @@ -1506,6 +1588,7 @@ files = [ name = "feedparser" version = "6.0.10" description = "Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1520,6 +1603,7 @@ sgmllib3k = "*" name = "filelock" version = "3.9.0" description = "A platform independent file lock." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1535,6 +1619,7 @@ testing = ["covdefaults (>=2.2.2)", "coverage (>=7.0.1)", "pytest (>=7.2)", "pyt name = "flake8" version = "6.0.0" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = ">=3.8.1" files = [ @@ -1551,6 +1636,7 @@ pyflakes = ">=3.0.0,<3.1.0" name = "flynt" version = "0.78" description = "CLI tool to convert a python project's %-formatted strings to f-strings." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1569,6 +1655,7 @@ dev = ["build", "pre-commit", "pytest", "pytest-cov", "twine"] name = "future" version = "0.18.3" description = "Clean single-source support for Python 3 and 2" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1579,6 +1666,7 @@ files = [ name = "fuzzywuzzy" version = "0.18.0" description = "Fuzzy string matching in python" +category = "main" optional = false python-versions = "*" files = [ @@ -1593,6 +1681,7 @@ speedup = ["python-levenshtein (>=0.12)"] name = "geonamescache" version = "1.6.0" description = "Geonames data for continents, cities and US states." +category = "main" optional = false python-versions = "*" files = [ @@ -1604,6 +1693,7 @@ files = [ name = "gunicorn" version = "20.1.0" description = "WSGI HTTP Server for UNIX" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1624,6 +1714,7 @@ tornado = ["tornado (>=0.2)"] name = "h11" version = "0.13.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1635,6 +1726,7 @@ files = [ name = "html5lib" version = "1.1" description = "HTML parser based on the WHATWG HTML specification" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1656,6 +1748,7 @@ lxml = ["lxml"] name = "httplib2" version = "0.22.0" description = "A comprehensive HTTP client library." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1670,6 +1763,7 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 name = "httptools" version = "0.5.0" description = "A collection of framework independent HTTP protocol utils." +category = "main" optional = false python-versions = ">=3.5.0" files = [ @@ -1723,6 +1817,7 @@ test = ["Cython (>=0.29.24,<0.30.0)"] name = "hyperlink" version = "21.0.0" description = "A featureful, immutable, and correct URL for Python." +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1737,6 +1832,7 @@ idna = ">=2.5" name = "identify" version = "2.5.17" description = "File identification library for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1751,6 +1847,7 @@ license = ["ukkonen"] name = "idna" version = "2.10" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1762,6 +1859,7 @@ files = [ name = "igraph" version = "0.10.4" description = "High performance graph data structures and algorithms" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1828,6 +1926,7 @@ test-musl = ["networkx (>=2.5)", "pytest (>=7.0.1)", "pytest-timeout (>=2.1.0)"] name = "incremental" version = "22.10.0" description = "\"A small library that versions your Python projects.\"" +category = "main" optional = false python-versions = "*" files = [ @@ -1843,6 +1942,7 @@ scripts = ["click (>=6.0)", "twisted (>=16.4.0)"] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1854,6 +1954,7 @@ files = [ name = "internetarchive" version = "3.3.0" description = "A Python interface to archive.org." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1879,6 +1980,7 @@ types = ["tqdm-stubs (>=0.2.0)", "types-colorama", "types-docopt (>=0.6.10,<0.7. name = "ipaddress" version = "1.0.23" description = "IPv4/IPv6 manipulation library" +category = "main" optional = false python-versions = "*" files = [ @@ -1890,6 +1992,7 @@ files = [ name = "ipython" version = "8.10.0" description = "IPython: Productive Interactive Computing" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1928,6 +2031,7 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "isort" version = "5.8.0" description = "A Python utility / library to sort Python imports." +category = "dev" optional = false python-versions = ">=3.6,<4.0" files = [ @@ -1944,6 +2048,7 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "itypes" version = "1.2.0" description = "Simple immutable types for python." +category = "main" optional = false python-versions = "*" files = [ @@ -1955,6 +2060,7 @@ files = [ name = "jedi" version = "0.18.1" description = "An autocompletion tool for Python that can be used for text editors." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1973,6 +2079,7 @@ testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "2.11.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1990,6 +2097,7 @@ i18n = ["Babel (>=0.8)"] name = "jmespath" version = "0.10.0" description = "JSON Matching Expressions" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2001,6 +2109,7 @@ files = [ name = "jsonpatch" version = "1.32" description = "Apply JSON-Patches (RFC 6902)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2015,6 +2124,7 @@ jsonpointer = ">=1.9" name = "jsonpointer" version = "2.1" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2026,6 +2136,7 @@ files = [ name = "judge-pics" version = "2.0.2" description = "Database of Judge Pictures" +category = "main" optional = false python-versions = "*" files = [ @@ -2045,6 +2156,7 @@ requests = ">=2.0,<3.0" name = "juriscraper" version = "2.5.49" description = "An API to scrape American court websites for metadata." +category = "main" optional = false python-versions = "*" files = [ @@ -2072,6 +2184,7 @@ tldextract = "*" name = "kdtree" version = "0.16" description = "A Python implemntation of a kd-tree" +category = "main" optional = false python-versions = "*" files = [ @@ -2083,6 +2196,7 @@ files = [ name = "kombu" version = "5.3.0" description = "Messaging library for Python." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2115,6 +2229,7 @@ zookeeper = ["kazoo (>=2.8.0)"] name = "lazy-object-proxy" version = "1.6.0" description = "A fast and thorough lazy object proxy." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -2146,6 +2261,7 @@ files = [ name = "lxml" version = "4.9.1" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -2231,6 +2347,7 @@ source = ["Cython (>=0.29.7)"] name = "lxml-stubs" version = "0.4.0" description = "Type annotations for the lxml package" +category = "dev" optional = false python-versions = "*" files = [ @@ -2245,6 +2362,7 @@ test = ["coverage[toml] (==5.2)", "pytest (>=6.0.0)", "pytest-mypy-plugins (==1. name = "markdown2" version = "2.4.0" description = "A fast and complete Python implementation of Markdown" +category = "main" optional = false python-versions = ">=3.5, <4" files = [ @@ -2256,6 +2374,7 @@ files = [ name = "markupsafe" version = "1.1.1" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -2317,6 +2436,7 @@ files = [ name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2331,6 +2451,7 @@ traitlets = "*" name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2342,6 +2463,7 @@ files = [ name = "mypy" version = "1.2.0" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2388,6 +2510,7 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2399,6 +2522,7 @@ files = [ name = "nameparser" version = "1.1.1" description = "A simple Python module for parsing human names into their individual components." +category = "main" optional = false python-versions = "*" files = [ @@ -2410,6 +2534,7 @@ files = [ name = "natsort" version = "8.3.1" description = "Simple yet flexible natural sorting in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2425,8 +2550,9 @@ icu = ["PyICU (>=1.0.0)"] name = "ndg-httpsclient" version = "0.5.1" description = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL" +category = "main" optional = false -python-versions = ">=2.7,<3.0.dev0 || >=3.4.dev0" +python-versions = ">=2.7,<3.0.0 || >=3.4.0" files = [ {file = "ndg_httpsclient-0.5.1-py2-none-any.whl", hash = "sha256:d2c7225f6a1c6cf698af4ebc962da70178a99bcde24ee6d1961c4f3338130d57"}, {file = "ndg_httpsclient-0.5.1-py3-none-any.whl", hash = "sha256:dd174c11d971b6244a891f7be2b32ca9853d3797a72edb34fa5d7b07d8fff7d4"}, @@ -2441,6 +2567,7 @@ PyOpenSSL = "*" name = "networkx" version = "3.1" description = "Python package for creating and manipulating graphs and networks" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2459,6 +2586,7 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] name = "nodeenv" version = "1.7.0" description = "Node.js virtual environment builder" +category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -2473,6 +2601,7 @@ setuptools = "*" name = "nose" version = "1.3.7" description = "nose extends unittest to make testing easier" +category = "main" optional = false python-versions = "*" files = [ @@ -2485,6 +2614,7 @@ files = [ name = "numpy" version = "1.24.2" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2522,6 +2652,7 @@ files = [ name = "openapi-codec" version = "1.3.2" description = "An OpenAPI codec for Core API." +category = "main" optional = false python-versions = "*" files = [ @@ -2535,6 +2666,7 @@ coreapi = ">=2.2.0" name = "outcome" version = "1.2.0" description = "Capture the outcome of Python function calls." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2549,6 +2681,7 @@ attrs = ">=19.2.0" name = "packaging" version = "23.1" description = "Core utilities for Python packages" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2560,6 +2693,7 @@ files = [ name = "pandas" version = "1.5.0" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2604,6 +2738,7 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] name = "parso" version = "0.8.3" description = "A Python Parser" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2619,6 +2754,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.9.0" description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -2630,6 +2766,7 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." +category = "main" optional = false python-versions = "*" files = [ @@ -2644,6 +2781,7 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" +category = "main" optional = false python-versions = "*" files = [ @@ -2655,6 +2793,7 @@ files = [ name = "pillow" version = "9.3.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2729,6 +2868,7 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "platformdirs" version = "2.5.1" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2744,6 +2884,7 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock 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.*" files = [ @@ -2758,6 +2899,7 @@ dev = ["pre-commit", "tox"] name = "pre-commit" version = "3.3.1" description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2776,6 +2918,7 @@ virtualenv = ">=20.10.0" name = "probableparsing" version = "0.0.1" description = "Common methods for propbable parsers" +category = "main" optional = false python-versions = "*" files = [ @@ -2787,6 +2930,7 @@ files = [ name = "prompt-toolkit" version = "3.0.31" description = "Library for building powerful interactive command lines in Python" +category = "main" optional = false python-versions = ">=3.6.2" files = [ @@ -2801,6 +2945,7 @@ wcwidth = "*" name = "psycopg2" version = "2.9.5" description = "psycopg2 - Python-PostgreSQL Database Adapter" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2823,6 +2968,7 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -2834,6 +2980,7 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "main" optional = false python-versions = "*" files = [ @@ -2848,6 +2995,7 @@ tests = ["pytest"] name = "pyahocorasick" version = "1.4.2" description = "pyahocorasick is a fast and memory efficient library for exact or approximate multi-pattern string search. With the ahocorasick.Automaton class, you can find multiple key strings occurrences at once in some input text. You can use it as a plain dict-like Trie or convert a Trie to an automaton for efficient Aho-Corasick search. Implemented in C and tested on Python 2.7 and 3.4+. Works on Linux, Mac and Windows. BSD-3-clause license." +category = "main" optional = false python-versions = "*" files = [ @@ -2858,6 +3006,7 @@ files = [ name = "pyasn1" version = "0.4.8" description = "ASN.1 types and codecs" +category = "main" optional = false python-versions = "*" files = [ @@ -2869,6 +3018,7 @@ files = [ name = "pyasn1-modules" version = "0.3.0" description = "A collection of ASN.1-based protocols modules" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -2883,6 +3033,7 @@ pyasn1 = ">=0.4.6,<0.6.0" name = "pycodestyle" version = "2.10.0" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2894,6 +3045,7 @@ files = [ name = "pycparser" version = "2.21" description = "C parser in Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2905,6 +3057,7 @@ files = [ name = "pyflakes" version = "3.0.1" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2916,6 +3069,7 @@ files = [ name = "pygments" version = "2.13.0" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2930,6 +3084,7 @@ plugins = ["importlib-metadata"] name = "pylint" version = "2.17.3" description = "python code static checker" +category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -2958,6 +3113,7 @@ testutils = ["gitpython (>3)"] name = "pyopenssl" version = "20.0.1" description = "Python wrapper module around the OpenSSL library" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" files = [ @@ -2977,6 +3133,7 @@ test = ["flaky", "pretend", "pytest (>=3.0.1)"] name = "pyparsing" version = "2.4.7" description = "Python parsing module" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2988,6 +3145,7 @@ files = [ name = "pysocks" version = "1.7.1" description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3000,6 +3158,7 @@ files = [ name = "pystemmer" version = "2.0.1" description = "Snowball stemming algorithms, for information retrieval" +category = "main" optional = false python-versions = "*" files = [ @@ -3010,6 +3169,7 @@ files = [ name = "pytest" version = "7.3.1" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3032,6 +3192,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-django" version = "4.5.2" description = "A Django plugin for pytest." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3050,6 +3211,7 @@ testing = ["Django", "django-configurations (>=2.0)"] name = "python-crfsuite" version = "0.9.9" description = "Python binding for CRFsuite" +category = "main" optional = false python-versions = "*" files = [ @@ -3100,6 +3262,7 @@ files = [ name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -3114,6 +3277,7 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3128,6 +3292,7 @@ cli = ["click (>=5.0)"] name = "python-levenshtein" version = "0.12.2" description = "Python extension for computing string edit distances and similarities." +category = "main" optional = false python-versions = "*" files = [ @@ -3141,6 +3306,7 @@ setuptools = "*" name = "python-magic" version = "0.4.22" description = "File type identification using libmagic" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3152,6 +3318,7 @@ files = [ name = "python-stdnum" version = "1.16" description = "Python module to handle standardized numbers and codes" +category = "main" optional = false python-versions = "*" files = [ @@ -3168,6 +3335,7 @@ soap-fallback = ["PySimpleSOAP"] name = "pytz" version = "2021.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -3179,6 +3347,7 @@ files = [ name = "pytz-deprecation-shim" version = "0.1.0.post0" description = "Shims to make deprecation of pytz easier" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3193,6 +3362,7 @@ tzdata = {version = "*", markers = "python_version >= \"3.6\""} name = "pyyaml" version = "5.4.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -3231,6 +3401,7 @@ files = [ name = "redis" version = "3.5.3" description = "Python client for Redis key-value store" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3245,6 +3416,7 @@ hiredis = ["hiredis (>=0.1.3)"] name = "regex" version = "2022.1.18" description = "Alternative regular expression module, to replace re." +category = "main" optional = false python-versions = "*" files = [ @@ -3328,6 +3500,7 @@ files = [ name = "reporters-db" version = "3.2.36" description = "Database of Court Reporters" +category = "main" optional = false python-versions = "*" files = [ @@ -3342,6 +3515,7 @@ six = ">=1.0.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3363,6 +3537,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-file" version = "1.5.1" description = "File transport adapter for Requests" +category = "main" optional = false python-versions = "*" files = [ @@ -3378,6 +3553,7 @@ six = "*" name = "s3transfer" version = "0.3.6" description = "An Amazon S3 Transfer Manager" +category = "main" optional = false python-versions = "*" files = [ @@ -3392,6 +3568,7 @@ botocore = ">=1.12.36,<2.0a.0" name = "schema" version = "0.7.4" description = "Simple data validation library" +category = "main" optional = false python-versions = "*" files = [ @@ -3406,6 +3583,7 @@ contextlib2 = ">=0.5.5" name = "scipy" version = "1.10.1" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = "<3.12,>=3.8" files = [ @@ -3444,6 +3622,7 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo name = "scorched" version = "0.13.1.dev0" description = "" +category = "main" optional = false python-versions = "*" files = [] @@ -3466,6 +3645,7 @@ resolved_reference = "0632024e72e22a71e17cdb778805561f7cdd33d8" name = "selenium" version = "4.9.1" description = "" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3483,6 +3663,7 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} name = "sentry-sdk" version = "1.14.0" description = "Python client for Sentry (https://sentry.io)" +category = "main" optional = false python-versions = "*" files = [ @@ -3521,6 +3702,7 @@ tornado = ["tornado (>=5)"] name = "service-identity" version = "21.1.0" description = "Service identity verification for pyOpenSSL & cryptography." +category = "main" optional = false python-versions = "*" files = [ @@ -3545,6 +3727,7 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] name = "setuptools" version = "65.5.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3561,6 +3744,7 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "sgmllib3k" version = "1.0.0" description = "Py3k port of sgmllib." +category = "main" optional = false python-versions = "*" files = [ @@ -3571,6 +3755,7 @@ files = [ name = "simplejson" version = "3.18.3" description = "Simple, fast, extensible JSON encoder/decoder for Python" +category = "main" optional = false python-versions = ">=2.5, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3653,6 +3838,7 @@ files = [ name = "six" version = "1.15.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3664,6 +3850,7 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3675,6 +3862,7 @@ files = [ name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" +category = "main" optional = false python-versions = "*" files = [ @@ -3686,6 +3874,7 @@ files = [ name = "soupsieve" version = "2.2.1" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3697,6 +3886,7 @@ files = [ name = "sqlparse" version = "0.4.4" description = "A non-validating SQL parser." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3713,6 +3903,7 @@ test = ["pytest", "pytest-cov"] name = "stack-data" version = "0.5.1" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "main" optional = false python-versions = "*" files = [ @@ -3732,6 +3923,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "stripe" version = "5.2.0" description = "Python bindings for the Stripe API" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3746,6 +3938,7 @@ requests = {version = ">=2.20", markers = "python_version >= \"3.0\""} name = "tblib" version = "1.7.0" description = "Traceback serialization library." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3757,6 +3950,7 @@ files = [ name = "texttable" version = "1.6.4" description = "module for creating simple ASCII tables" +category = "main" optional = false python-versions = "*" files = [ @@ -3768,6 +3962,7 @@ files = [ name = "time-machine" version = "2.9.0" description = "Travel through time in your tests." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3833,6 +4028,7 @@ python-dateutil = "*" name = "timeout-decorator" version = "0.5.0" description = "Timeout decorator" +category = "main" optional = false python-versions = "*" files = [ @@ -3843,6 +4039,7 @@ files = [ name = "tldextract" version = "3.4.0" description = "Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL). By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3860,6 +4057,7 @@ requests-file = ">=1.4" name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3871,6 +4069,7 @@ files = [ name = "tomlkit" version = "0.11.8" description = "Style preserving TOML library" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3882,6 +4081,7 @@ files = [ name = "tqdm" version = "4.59.0" description = "Fast, Extensible Progress Meter" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -3898,6 +4098,7 @@ telegram = ["requests"] name = "traitlets" version = "5.4.0" description = "" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3912,6 +4113,7 @@ test = ["pre-commit", "pytest"] name = "trio" version = "0.21.0" description = "A friendly Python library for async concurrency and I/O" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3932,6 +4134,7 @@ sortedcontainers = "*" name = "trio-websocket" version = "0.9.2" description = "WebSocket library for Trio" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3948,6 +4151,7 @@ wsproto = ">=0.14" name = "twisted" version = "22.4.0" description = "An asynchronous networking framework written in Python" +category = "main" optional = false python-versions = ">=3.6.7" files = [ @@ -3988,6 +4192,7 @@ windows-platform = ["PyHamcrest (>=1.9.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.0. name = "twisted-iocpsupport" version = "1.0.3" description = "An extension for use in the twisted I/O Completion Ports reactor." +category = "main" optional = false python-versions = "*" files = [ @@ -4013,6 +4218,7 @@ files = [ name = "txaio" version = "23.1.1" description = "Compatibility API between asyncio/Twisted/Trollius" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4029,6 +4235,7 @@ twisted = ["twisted (>=20.3.0)", "zope.interface (>=5.2.0)"] name = "types-dateparser" version = "1.1.4.6" description = "Typing stubs for dateparser" +category = "main" optional = false python-versions = "*" files = [ @@ -4040,6 +4247,7 @@ files = [ name = "types-pyopenssl" version = "23.0.0.4" description = "Typing stubs for pyOpenSSL" +category = "dev" optional = false python-versions = "*" files = [ @@ -4054,6 +4262,7 @@ cryptography = ">=35.0.0" name = "types-python-dateutil" version = "2.8.19.12" description = "Typing stubs for python-dateutil" +category = "dev" optional = false python-versions = "*" files = [ @@ -4065,6 +4274,7 @@ files = [ name = "types-pytz" version = "2021.3.5" description = "Typing stubs for pytz" +category = "dev" optional = false python-versions = "*" files = [ @@ -4076,6 +4286,7 @@ files = [ name = "types-pyyaml" version = "6.0.4" description = "Typing stubs for PyYAML" +category = "dev" optional = false python-versions = "*" files = [ @@ -4087,6 +4298,7 @@ files = [ name = "types-redis" version = "4.5.4.1" description = "Typing stubs for redis" +category = "dev" optional = false python-versions = "*" files = [ @@ -4102,6 +4314,7 @@ types-pyOpenSSL = "*" name = "types-requests" version = "2.29.0.0" description = "Typing stubs for requests" +category = "dev" optional = false python-versions = "*" files = [ @@ -4116,6 +4329,7 @@ types-urllib3 = "<1.27" name = "types-simplejson" version = "3.19.0.0" description = "Typing stubs for simplejson" +category = "dev" optional = false python-versions = "*" files = [ @@ -4127,6 +4341,7 @@ files = [ name = "types-urllib3" version = "1.26.11" description = "Typing stubs for urllib3" +category = "dev" optional = false python-versions = "*" files = [ @@ -4138,6 +4353,7 @@ files = [ name = "typing-extensions" version = "4.1.1" description = "Backported and Experimental Type Hints for Python 3.6+" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4149,6 +4365,7 @@ files = [ name = "tzdata" version = "2022.7" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -4160,6 +4377,7 @@ files = [ name = "tzlocal" version = "4.2" description = "tzinfo object for the local timezone" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4179,6 +4397,7 @@ test = ["pytest (>=4.3)", "pytest-mock (>=3.3)"] name = "unidecode" version = "1.2.0" description = "ASCII transliterations of Unicode text" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4190,6 +4409,7 @@ files = [ name = "uritemplate" version = "3.0.1" description = "URI templates" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4201,6 +4421,7 @@ files = [ name = "urllib3" version = "1.26.15" 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.*, !=3.5.*" files = [ @@ -4220,6 +4441,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "usaddress" version = "0.5.10" description = "Parse US addresses using conditional random fields" +category = "main" optional = false python-versions = "*" files = [ @@ -4236,6 +4458,7 @@ python-crfsuite = ">=0.7" name = "uvicorn" version = "0.22.0" description = "The lightning-fast ASGI server." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4250,7 +4473,7 @@ h11 = ">=0.8" httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} -uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} @@ -4261,6 +4484,7 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", name = "uvloop" version = "0.17.0" description = "Fast implementation of asyncio event loop on top of libuv" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4305,6 +4529,7 @@ test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "my name = "vine" version = "5.0.0" description = "Promises, promises, promises." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4316,6 +4541,7 @@ files = [ name = "virtualenv" version = "20.17.1" description = "Virtual Python Environment builder" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4336,6 +4562,7 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7 name = "watchfiles" version = "0.19.0" description = "Simple, modern and high performance file watching and code reload in python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4370,6 +4597,7 @@ anyio = ">=3.0.0" name = "wcwidth" version = "0.2.5" description = "Measures the displayed width of unicode strings in a terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -4381,6 +4609,7 @@ files = [ name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "main" optional = false python-versions = "*" files = [ @@ -4392,6 +4621,7 @@ files = [ name = "websockets" version = "11.0.3" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4471,6 +4701,7 @@ files = [ name = "wrapt" version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -4555,6 +4786,7 @@ files = [ name = "wsproto" version = "1.2.0" description = "WebSockets state-machine based protocol implementation" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -4569,6 +4801,7 @@ h11 = ">=0.9.0,<1" name = "zope-interface" version = "6.0" description = "Interfaces for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ From e067b3bcd89b42a0409239de3966e667acda6b33 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 23:08:40 +0000 Subject: [PATCH 04/21] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e531956054..e9052f9eaf 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This repository is organized in the following way: - scripts: logrotate, systemd, etc, and init scripts for our various configurations and daemons. -## Getting Involved +## Getting Involved If you want to get involved send us an email with your contact info or take a look through the [issues list][issues]. There are innumerable things we need help with, but we especially are looking for help with: From 661a8786def6bb2ce751dfc236906e6954b7bba9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 23:09:25 +0000 Subject: [PATCH 05/21] build(deps): bump django-ses from 3.3.0 to 3.5.0 Bumps [django-ses](https://github.com/django-ses/django-ses) from 3.3.0 to 3.5.0. - [Release notes](https://github.com/django-ses/django-ses/releases) - [Changelog](https://github.com/django-ses/django-ses/blob/master/CHANGES.md) - [Commits](https://github.com/django-ses/django-ses/compare/v3.3.0...v3.5.0) --- updated-dependencies: - dependency-name: django-ses dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- poetry.lock | 251 +++++++++++++++++++++++++++++++++++++++++++++++-- pyproject.toml | 2 +- 2 files changed, 243 insertions(+), 10 deletions(-) diff --git a/poetry.lock b/poetry.lock index d923189ec5..c316342e1d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.5.0 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "amqp" version = "5.1.1" description = "Low-level AMQP client for Python (fork of amqplib)." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -18,6 +19,7 @@ vine = ">=5.0.0" name = "anyio" version = "3.6.2" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" optional = false python-versions = ">=3.6.2" files = [ @@ -38,6 +40,7 @@ trio = ["trio (>=0.16,<0.22)"] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" +category = "main" optional = false python-versions = "*" files = [ @@ -49,6 +52,7 @@ files = [ name = "argparse" version = "1.4.0" description = "Python command-line parsing library" +category = "main" optional = false python-versions = "*" files = [ @@ -60,6 +64,7 @@ files = [ name = "asgiref" version = "3.6.0" description = "ASGI specs, helper code, and adapters" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -74,6 +79,7 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -85,6 +91,7 @@ files = [ name = "astroid" version = "2.15.4" description = "An abstract syntax tree for Python with inference support." +category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -104,6 +111,7 @@ wrapt = [ name = "asttokens" version = "2.0.8" description = "Annotate AST trees with source code positions" +category = "main" optional = false python-versions = "*" files = [ @@ -121,6 +129,7 @@ test = ["astroid (<=2.5.3)", "pytest"] name = "async-generator" version = "1.10" description = "Async generators and context managers for Python 3.5+" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -132,6 +141,7 @@ files = [ name = "attrs" version = "20.3.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -149,6 +159,7 @@ tests-no-zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (> name = "autobahn" version = "23.1.2" description = "WebSocket client & server library, WAMP real-time framework" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -177,6 +188,7 @@ xbr = ["base58 (>=2.1.0)", "cbor2 (>=5.2.0)", "click (>=8.1.2)", "ecdsa (>=0.16. name = "automat" version = "22.10.0" description = "Self-service finite-state machines for the programmer on the go." +category = "main" optional = false python-versions = "*" files = [ @@ -195,6 +207,7 @@ visualize = ["Twisted (>=16.1.1)", "graphviz (>0.5.1)"] name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" +category = "main" optional = false python-versions = "*" files = [ @@ -206,6 +219,7 @@ files = [ name = "beautifulsoup4" version = "4.11.2" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -224,6 +238,7 @@ lxml = ["lxml"] name = "billiard" version = "4.1.0" description = "Python multiprocessing fork with improvements and bugfixes" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -235,6 +250,7 @@ files = [ name = "black" version = "23.3.0" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -283,6 +299,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "boto3" version = "1.17.43" description = "The AWS SDK for Python" +category = "main" optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -299,6 +316,7 @@ s3transfer = ">=0.3.0,<0.4.0" name = "botocore" version = "1.20.43" description = "Low-level, data-driven core of boto 3." +category = "main" optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -318,6 +336,7 @@ crt = ["awscrt (==0.10.8)"] name = "celery" version = "5.3.0" description = "Distributed Task Queue." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -373,6 +392,7 @@ zstd = ["zstandard (==0.21.0)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -384,6 +404,7 @@ files = [ name = "cffi" version = "1.14.5" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = "*" files = [ @@ -445,6 +466,7 @@ pycparser = "*" name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." +category = "dev" optional = false python-versions = ">=3.6.1" files = [ @@ -456,6 +478,7 @@ files = [ name = "chardet" version = "5.1.0" description = "Universal encoding detector for Python 3" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -467,6 +490,7 @@ files = [ name = "charset-normalizer" version = "3.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -551,6 +575,7 @@ files = [ name = "click" version = "8.1.2" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -565,6 +590,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-didyoumean" version = "0.3.0" description = "Enables git-like *did-you-mean* feature in click" +category = "main" optional = false python-versions = ">=3.6.2,<4.0.0" files = [ @@ -579,6 +605,7 @@ click = ">=7" name = "click-plugins" version = "1.1.1" description = "An extension module for click to enable registering CLI commands via setuptools entry-points." +category = "main" optional = false python-versions = "*" files = [ @@ -596,6 +623,7 @@ dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] name = "click-repl" version = "0.2.0" description = "REPL plugin for Click" +category = "main" optional = false python-versions = "*" files = [ @@ -612,6 +640,7 @@ six = "*" name = "climage" version = "0.1.3" description = "Convert images to beautiful ANSI escape codes" +category = "main" optional = false python-versions = ">=3.2" files = [ @@ -627,6 +656,7 @@ Pillow = "*" name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -638,6 +668,7 @@ files = [ name = "constantly" version = "15.1.0" description = "Symbolic constants in Python" +category = "main" optional = false python-versions = "*" files = [ @@ -649,6 +680,7 @@ files = [ name = "contextlib2" version = "0.6.0.post1" description = "Backports and enhancements for the contextlib module" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -660,6 +692,7 @@ files = [ name = "coreapi" version = "2.3.3" description = "Python client library for Core API." +category = "main" optional = false python-versions = "*" files = [ @@ -677,6 +710,7 @@ uritemplate = "*" name = "coreschema" version = "0.0.4" description = "Core Schema." +category = "main" optional = false python-versions = "*" files = [ @@ -691,6 +725,7 @@ jinja2 = "*" name = "courts-db" version = "0.10.9" description = "Database of Courts" +category = "main" optional = false python-versions = "*" files = [ @@ -702,6 +737,7 @@ files = [ name = "cryptography" version = "36.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -742,6 +778,7 @@ test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.2.0 name = "cssselect" version = "1.2.0" description = "cssselect parses CSS3 Selectors and translates them to XPath 1.0" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -753,6 +790,7 @@ files = [ name = "daphne" version = "4.0.0" description = "Django ASGI (HTTP/WebSocket) server" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -772,6 +810,7 @@ tests = ["django", "hypothesis", "pytest", "pytest-asyncio"] name = "datasketch" version = "1.5.7" description = "Probabilistic data structures for processing and searching very large datasets" +category = "main" optional = false python-versions = "*" files = [ @@ -794,6 +833,7 @@ test = ["cassandra-driver (>=3.20)", "coverage", "mock (>=2.0.0)", "mockredispy" name = "dateparser" version = "1.1.8" description = "Date parsing library designed to parse dates from HTML pages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -816,6 +856,7 @@ langdetect = ["langdetect"] name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -827,6 +868,7 @@ files = [ 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.*" files = [ @@ -838,6 +880,7 @@ files = [ name = "dill" version = "0.3.6" description = "serialize all of python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -852,6 +895,7 @@ graph = ["objgraph (>=1.7.2)"] name = "disposable-email-domains" version = "0.0.64" description = "A set of disposable email domains" +category = "main" optional = false python-versions = "*" files = [ @@ -866,6 +910,7 @@ dev = ["check-manifest"] name = "distlib" version = "0.3.6" description = "Distribution utilities" +category = "dev" optional = false python-versions = "*" files = [ @@ -877,6 +922,7 @@ files = [ name = "django" version = "4.2.1" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -897,6 +943,7 @@ bcrypt = ["bcrypt"] name = "django-admin-cursor-paginator" version = "0.1.2" description = "Drop-in replacement for django admin default pagination that works fast with huge tables." +category = "main" optional = false python-versions = ">=3.4" files = [ @@ -911,6 +958,7 @@ Django = ">=2.0" name = "django-cache-memoize" version = "0.1.8" description = "Django utility for a memoization decorator that uses the Django cache framework." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -925,6 +973,7 @@ dev = ["black", "flake8", "therapist", "tox", "twine"] name = "django-cors-headers" version = "3.14.0" description = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -939,6 +988,7 @@ Django = ">=3.2" name = "django-debug-toolbar" version = "4.0.0" description = "A configurable set of panels that display various debug information about the current request/response." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -954,6 +1004,7 @@ sqlparse = ">=0.2" name = "django-elasticsearch-dsl" version = "7.3" description = "Wrapper around elasticsearch-dsl-py for django models" +category = "main" optional = false python-versions = "*" files = [ @@ -969,6 +1020,7 @@ six = "*" name = "django-environ" version = "0.8.1" description = "A package that allows you to utilize 12factor inspired environment variables to configure your Django application." +category = "main" optional = false python-versions = ">=3.4,<4" files = [ @@ -977,14 +1029,15 @@ files = [ ] [package.extras] -develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.dev0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] -docs = ["furo (>=2021.8.17b43,<2021.9.dev0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] +develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] +docs = ["furo (>=2021.8.17b43,<2021.9.0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] testing = ["coverage[toml] (>=5.0a4)", "pytest (>=4.6.11)"] [[package]] name = "django-extensions" version = "3.2.1" description = "Extensions for Django" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -999,6 +1052,7 @@ Django = ">=3.2" name = "django-filter" version = "2.4.0" description = "Django-filter is a reusable Django application for allowing users to filter querysets dynamically." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1013,6 +1067,7 @@ Django = ">=2.2" name = "django-hcaptcha" version = "0.2.0" description = "Django hCaptcha provides a simple way to protect your django forms using hCaptcha" +category = "main" optional = false python-versions = "*" files = [ @@ -1024,6 +1079,7 @@ files = [ name = "django-localflavor" version = "3.1" description = "Country-specific Django helpers" +category = "main" optional = false python-versions = "*" files = [ @@ -1039,6 +1095,7 @@ python-stdnum = ">=1.6" name = "django-markdown-deux" version = "1.0.6" description = "a Django app that provides template tags for using Markdown (using the python-markdown2 processor)" +category = "main" optional = false python-versions = "*" files = [ @@ -1052,6 +1109,7 @@ markdown2 = "*" name = "django-mathfilters" version = "1.0.0" description = "A set of simple math filters for Django" +category = "main" optional = false python-versions = "*" files = [ @@ -1063,6 +1121,7 @@ files = [ name = "django-override-storage" version = "0.3.2" description = "Django test helpers to manage file storage side effects." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1074,6 +1133,7 @@ files = [ name = "django-pghistory" version = "2.7.0" description = "History tracking for Django and Postgres" +category = "main" optional = false python-versions = ">=3.7.0,<4" files = [ @@ -1089,6 +1149,7 @@ django-pgtrigger = ">=4.5.0" name = "django-pgtrigger" version = "4.6.0" description = "Postgres trigger support integrated with Django models." +category = "main" optional = false python-versions = ">=3.7.0,<4" files = [ @@ -1103,6 +1164,7 @@ django = ">=2" name = "django-ratelimit" version = "4.0.0" description = "Cache-based rate-limiting for Django." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1112,13 +1174,14 @@ files = [ [[package]] name = "django-ses" -version = "3.3.0" +version = "3.5.0" description = "A Django email backend for Amazon's Simple Email Service" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "django_ses-3.3.0-py3-none-any.whl", hash = "sha256:029edd3f23333f09cd14b4ebc274a5c3700819f16f1fcd5a25b5639b3be0fdba"}, - {file = "django_ses-3.3.0.tar.gz", hash = "sha256:bdfc5bd4bf1f95d01756761bc9dae40b79c4c709e49ff1b9bd9e853dfd09efb1"}, + {file = "django_ses-3.5.0-py3-none-any.whl", hash = "sha256:3522fe531155eb06bb015b3b36324c059194450633b33f9bd5bc9d1328822fe2"}, + {file = "django_ses-3.5.0.tar.gz", hash = "sha256:dc1644f50608fbf3a64f085a371c61d56d68eba3c5efa69651f13dc3ba05049d"}, ] [package.dependencies] @@ -1136,6 +1199,7 @@ events = ["cryptography (>=36.0.2)", "requests (>=2.27.1)"] name = "django-storages" version = "1.13.2" description = "Support for many storage backends in Django" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1158,6 +1222,7 @@ sftp = ["paramiko (>=1.10.0)"] name = "django-stubs" version = "4.2.0" description = "Mypy stubs for Django" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1181,6 +1246,7 @@ compatible-mypy = ["mypy (>=1.2.0,<1.3)"] name = "django-stubs-ext" version = "4.2.0" description = "Monkey-patching and extensions for django-stubs" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1196,6 +1262,7 @@ typing-extensions = "*" name = "django-waffle" version = "3.0.0" description = "A feature flipper for Django." +category = "main" optional = false python-versions = "*" files = [ @@ -1207,6 +1274,7 @@ files = [ name = "djangorestframework" version = "3.14.0" description = "Web APIs for Django, made easy." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1222,6 +1290,7 @@ pytz = "*" name = "djangorestframework-filters" version = "1.0.0.dev2" description = "Better filtering for Django REST Framework" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1237,6 +1306,7 @@ djangorestframework = "*" name = "djangorestframework-stubs" version = "3.14.0" description = "PEP-484 stubs for django-rest-framework" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1261,6 +1331,7 @@ markdown = ["types-Markdown (>=0.1.5)"] name = "djangorestframework-xml" version = "2.0.0" description = "XML support for Django REST Framework" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1280,6 +1351,7 @@ tests = ["Django (>=1.6)", "djangorestframework (>=2.4.3)", "flake8", "pytest", name = "docopt" version = "0.6.2" description = "Pythonic argument parser, that will make you smile" +category = "main" optional = false python-versions = "*" files = [ @@ -1290,6 +1362,7 @@ files = [ name = "drf-dynamic-fields" version = "0.3.1" description = "Dynamically return subset of Django REST Framework serializer fields" +category = "main" optional = false python-versions = "*" files = [ @@ -1301,6 +1374,7 @@ files = [ name = "elasticsearch" version = "7.17.9" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4" files = [ @@ -1322,6 +1396,7 @@ requests = ["requests (>=2.4.0,<3.0.0)"] name = "elasticsearch-dsl" version = "7.4.0" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1341,6 +1416,7 @@ develop = ["coverage (<5.0.0)", "mock", "pytest (>=3.0.0)", "pytest-cov", "pytes name = "exceptiongroup" version = "1.1.1" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1355,6 +1431,7 @@ test = ["pytest (>=6)"] name = "executing" version = "1.1.0" description = "Get the currently executing AST node of a frame, and other information" +category = "main" optional = false python-versions = "*" files = [ @@ -1369,6 +1446,7 @@ tests = ["asttokens", "littleutils", "pytest", "rich"] name = "exrex" version = "0.11.0" description = "Irregular methods for regular expressions" +category = "dev" optional = false python-versions = "*" files = [ @@ -1380,6 +1458,7 @@ files = [ name = "eyecite" version = "2.4.0" description = "Tool for extracting legal citations from text strings." +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -1399,6 +1478,7 @@ reporters-db = ">=3.2.2,<4.0.0" name = "factory-boy" version = "3.2.1" description = "A versatile test fixtures replacement based on thoughtbot's factory_bot for Ruby." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1417,6 +1497,7 @@ doc = ["Sphinx", "sphinx-rtd-theme", "sphinxcontrib-spelling"] name = "faker" version = "13.3.1" description = "Faker is a Python package that generates fake data for you." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1431,6 +1512,7 @@ python-dateutil = ">=2.4" name = "fast-diff-match-patch" version = "2.0.1" description = "fast_diff_match_patch: Python package wrapping the C++ implementation of google-diff-match-patch" +category = "main" optional = false python-versions = "*" files = [ @@ -1506,6 +1588,7 @@ files = [ name = "feedparser" version = "6.0.10" description = "Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1520,6 +1603,7 @@ sgmllib3k = "*" name = "filelock" version = "3.9.0" description = "A platform independent file lock." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1535,6 +1619,7 @@ testing = ["covdefaults (>=2.2.2)", "coverage (>=7.0.1)", "pytest (>=7.2)", "pyt name = "flake8" version = "6.0.0" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = ">=3.8.1" files = [ @@ -1551,6 +1636,7 @@ pyflakes = ">=3.0.0,<3.1.0" name = "flynt" version = "0.78" description = "CLI tool to convert a python project's %-formatted strings to f-strings." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1569,6 +1655,7 @@ dev = ["build", "pre-commit", "pytest", "pytest-cov", "twine"] name = "future" version = "0.18.3" description = "Clean single-source support for Python 3 and 2" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1579,6 +1666,7 @@ files = [ name = "fuzzywuzzy" version = "0.18.0" description = "Fuzzy string matching in python" +category = "main" optional = false python-versions = "*" files = [ @@ -1593,6 +1681,7 @@ speedup = ["python-levenshtein (>=0.12)"] name = "geonamescache" version = "1.6.0" description = "Geonames data for continents, cities and US states." +category = "main" optional = false python-versions = "*" files = [ @@ -1604,6 +1693,7 @@ files = [ name = "gunicorn" version = "20.1.0" description = "WSGI HTTP Server for UNIX" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1624,6 +1714,7 @@ tornado = ["tornado (>=0.2)"] name = "h11" version = "0.13.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1635,6 +1726,7 @@ files = [ name = "html5lib" version = "1.1" description = "HTML parser based on the WHATWG HTML specification" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1656,6 +1748,7 @@ lxml = ["lxml"] name = "httplib2" version = "0.22.0" description = "A comprehensive HTTP client library." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1670,6 +1763,7 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 name = "httptools" version = "0.5.0" description = "A collection of framework independent HTTP protocol utils." +category = "main" optional = false python-versions = ">=3.5.0" files = [ @@ -1723,6 +1817,7 @@ test = ["Cython (>=0.29.24,<0.30.0)"] name = "hyperlink" version = "21.0.0" description = "A featureful, immutable, and correct URL for Python." +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1737,6 +1832,7 @@ idna = ">=2.5" name = "identify" version = "2.5.17" description = "File identification library for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1751,6 +1847,7 @@ license = ["ukkonen"] name = "idna" version = "2.10" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1762,6 +1859,7 @@ files = [ name = "igraph" version = "0.10.4" description = "High performance graph data structures and algorithms" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1828,6 +1926,7 @@ test-musl = ["networkx (>=2.5)", "pytest (>=7.0.1)", "pytest-timeout (>=2.1.0)"] name = "incremental" version = "22.10.0" description = "\"A small library that versions your Python projects.\"" +category = "main" optional = false python-versions = "*" files = [ @@ -1843,6 +1942,7 @@ scripts = ["click (>=6.0)", "twisted (>=16.4.0)"] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1854,6 +1954,7 @@ files = [ name = "internetarchive" version = "3.3.0" description = "A Python interface to archive.org." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1879,6 +1980,7 @@ types = ["tqdm-stubs (>=0.2.0)", "types-colorama", "types-docopt (>=0.6.10,<0.7. name = "ipaddress" version = "1.0.23" description = "IPv4/IPv6 manipulation library" +category = "main" optional = false python-versions = "*" files = [ @@ -1890,6 +1992,7 @@ files = [ name = "ipython" version = "8.10.0" description = "IPython: Productive Interactive Computing" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1928,6 +2031,7 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "isort" version = "5.8.0" description = "A Python utility / library to sort Python imports." +category = "dev" optional = false python-versions = ">=3.6,<4.0" files = [ @@ -1944,6 +2048,7 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "itypes" version = "1.2.0" description = "Simple immutable types for python." +category = "main" optional = false python-versions = "*" files = [ @@ -1955,6 +2060,7 @@ files = [ name = "jedi" version = "0.18.1" description = "An autocompletion tool for Python that can be used for text editors." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1973,6 +2079,7 @@ testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "2.11.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1990,6 +2097,7 @@ i18n = ["Babel (>=0.8)"] name = "jmespath" version = "0.10.0" description = "JSON Matching Expressions" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2001,6 +2109,7 @@ files = [ name = "jsonpatch" version = "1.32" description = "Apply JSON-Patches (RFC 6902)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2015,6 +2124,7 @@ jsonpointer = ">=1.9" name = "jsonpointer" version = "2.1" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2026,6 +2136,7 @@ files = [ name = "judge-pics" version = "2.0.2" description = "Database of Judge Pictures" +category = "main" optional = false python-versions = "*" files = [ @@ -2045,6 +2156,7 @@ requests = ">=2.0,<3.0" name = "juriscraper" version = "2.5.49" description = "An API to scrape American court websites for metadata." +category = "main" optional = false python-versions = "*" files = [ @@ -2072,6 +2184,7 @@ tldextract = "*" name = "kdtree" version = "0.16" description = "A Python implemntation of a kd-tree" +category = "main" optional = false python-versions = "*" files = [ @@ -2083,6 +2196,7 @@ files = [ name = "kombu" version = "5.3.0" description = "Messaging library for Python." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2115,6 +2229,7 @@ zookeeper = ["kazoo (>=2.8.0)"] name = "lazy-object-proxy" version = "1.6.0" description = "A fast and thorough lazy object proxy." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -2146,6 +2261,7 @@ files = [ name = "lxml" version = "4.9.1" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -2231,6 +2347,7 @@ source = ["Cython (>=0.29.7)"] name = "lxml-stubs" version = "0.4.0" description = "Type annotations for the lxml package" +category = "dev" optional = false python-versions = "*" files = [ @@ -2245,6 +2362,7 @@ test = ["coverage[toml] (==5.2)", "pytest (>=6.0.0)", "pytest-mypy-plugins (==1. name = "markdown2" version = "2.4.0" description = "A fast and complete Python implementation of Markdown" +category = "main" optional = false python-versions = ">=3.5, <4" files = [ @@ -2256,6 +2374,7 @@ files = [ name = "markupsafe" version = "1.1.1" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -2317,6 +2436,7 @@ files = [ name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2331,6 +2451,7 @@ traitlets = "*" name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2342,6 +2463,7 @@ files = [ name = "mypy" version = "1.2.0" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2388,6 +2510,7 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2399,6 +2522,7 @@ files = [ name = "nameparser" version = "1.1.1" description = "A simple Python module for parsing human names into their individual components." +category = "main" optional = false python-versions = "*" files = [ @@ -2410,6 +2534,7 @@ files = [ name = "natsort" version = "8.3.1" description = "Simple yet flexible natural sorting in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2425,8 +2550,9 @@ icu = ["PyICU (>=1.0.0)"] name = "ndg-httpsclient" version = "0.5.1" description = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL" +category = "main" optional = false -python-versions = ">=2.7,<3.0.dev0 || >=3.4.dev0" +python-versions = ">=2.7,<3.0.0 || >=3.4.0" files = [ {file = "ndg_httpsclient-0.5.1-py2-none-any.whl", hash = "sha256:d2c7225f6a1c6cf698af4ebc962da70178a99bcde24ee6d1961c4f3338130d57"}, {file = "ndg_httpsclient-0.5.1-py3-none-any.whl", hash = "sha256:dd174c11d971b6244a891f7be2b32ca9853d3797a72edb34fa5d7b07d8fff7d4"}, @@ -2441,6 +2567,7 @@ PyOpenSSL = "*" name = "networkx" version = "3.1" description = "Python package for creating and manipulating graphs and networks" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2459,6 +2586,7 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] name = "nodeenv" version = "1.7.0" description = "Node.js virtual environment builder" +category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -2473,6 +2601,7 @@ setuptools = "*" name = "nose" version = "1.3.7" description = "nose extends unittest to make testing easier" +category = "main" optional = false python-versions = "*" files = [ @@ -2485,6 +2614,7 @@ files = [ name = "numpy" version = "1.24.2" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2522,6 +2652,7 @@ files = [ name = "openapi-codec" version = "1.3.2" description = "An OpenAPI codec for Core API." +category = "main" optional = false python-versions = "*" files = [ @@ -2535,6 +2666,7 @@ coreapi = ">=2.2.0" name = "outcome" version = "1.2.0" description = "Capture the outcome of Python function calls." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2549,6 +2681,7 @@ attrs = ">=19.2.0" name = "packaging" version = "23.1" description = "Core utilities for Python packages" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2560,6 +2693,7 @@ files = [ name = "pandas" version = "1.5.0" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2604,6 +2738,7 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] name = "parso" version = "0.8.3" description = "A Python Parser" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2619,6 +2754,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.9.0" description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -2630,6 +2766,7 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." +category = "main" optional = false python-versions = "*" files = [ @@ -2644,6 +2781,7 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" +category = "main" optional = false python-versions = "*" files = [ @@ -2655,6 +2793,7 @@ files = [ name = "pillow" version = "9.3.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2729,6 +2868,7 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "platformdirs" version = "2.5.1" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2744,6 +2884,7 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock 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.*" files = [ @@ -2758,6 +2899,7 @@ dev = ["pre-commit", "tox"] name = "pre-commit" version = "3.3.1" description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2776,6 +2918,7 @@ virtualenv = ">=20.10.0" name = "probableparsing" version = "0.0.1" description = "Common methods for propbable parsers" +category = "main" optional = false python-versions = "*" files = [ @@ -2787,6 +2930,7 @@ files = [ name = "prompt-toolkit" version = "3.0.31" description = "Library for building powerful interactive command lines in Python" +category = "main" optional = false python-versions = ">=3.6.2" files = [ @@ -2801,6 +2945,7 @@ wcwidth = "*" name = "psycopg2" version = "2.9.5" description = "psycopg2 - Python-PostgreSQL Database Adapter" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2823,6 +2968,7 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -2834,6 +2980,7 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "main" optional = false python-versions = "*" files = [ @@ -2848,6 +2995,7 @@ tests = ["pytest"] name = "pyahocorasick" version = "1.4.2" description = "pyahocorasick is a fast and memory efficient library for exact or approximate multi-pattern string search. With the ahocorasick.Automaton class, you can find multiple key strings occurrences at once in some input text. You can use it as a plain dict-like Trie or convert a Trie to an automaton for efficient Aho-Corasick search. Implemented in C and tested on Python 2.7 and 3.4+. Works on Linux, Mac and Windows. BSD-3-clause license." +category = "main" optional = false python-versions = "*" files = [ @@ -2858,6 +3006,7 @@ files = [ name = "pyasn1" version = "0.4.8" description = "ASN.1 types and codecs" +category = "main" optional = false python-versions = "*" files = [ @@ -2869,6 +3018,7 @@ files = [ name = "pyasn1-modules" version = "0.3.0" description = "A collection of ASN.1-based protocols modules" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -2883,6 +3033,7 @@ pyasn1 = ">=0.4.6,<0.6.0" name = "pycodestyle" version = "2.10.0" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2894,6 +3045,7 @@ files = [ name = "pycparser" version = "2.21" description = "C parser in Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2905,6 +3057,7 @@ files = [ name = "pyflakes" version = "3.0.1" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2916,6 +3069,7 @@ files = [ name = "pygments" version = "2.13.0" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2930,6 +3084,7 @@ plugins = ["importlib-metadata"] name = "pylint" version = "2.17.3" description = "python code static checker" +category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -2958,6 +3113,7 @@ testutils = ["gitpython (>3)"] name = "pyopenssl" version = "20.0.1" description = "Python wrapper module around the OpenSSL library" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" files = [ @@ -2977,6 +3133,7 @@ test = ["flaky", "pretend", "pytest (>=3.0.1)"] name = "pyparsing" version = "2.4.7" description = "Python parsing module" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2988,6 +3145,7 @@ files = [ name = "pysocks" version = "1.7.1" description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3000,6 +3158,7 @@ files = [ name = "pystemmer" version = "2.0.1" description = "Snowball stemming algorithms, for information retrieval" +category = "main" optional = false python-versions = "*" files = [ @@ -3010,6 +3169,7 @@ files = [ name = "pytest" version = "7.3.1" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3032,6 +3192,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-django" version = "4.5.2" description = "A Django plugin for pytest." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3050,6 +3211,7 @@ testing = ["Django", "django-configurations (>=2.0)"] name = "python-crfsuite" version = "0.9.9" description = "Python binding for CRFsuite" +category = "main" optional = false python-versions = "*" files = [ @@ -3100,6 +3262,7 @@ files = [ name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -3114,6 +3277,7 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3128,6 +3292,7 @@ cli = ["click (>=5.0)"] name = "python-levenshtein" version = "0.12.2" description = "Python extension for computing string edit distances and similarities." +category = "main" optional = false python-versions = "*" files = [ @@ -3141,6 +3306,7 @@ setuptools = "*" name = "python-magic" version = "0.4.22" description = "File type identification using libmagic" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3152,6 +3318,7 @@ files = [ name = "python-stdnum" version = "1.16" description = "Python module to handle standardized numbers and codes" +category = "main" optional = false python-versions = "*" files = [ @@ -3168,6 +3335,7 @@ soap-fallback = ["PySimpleSOAP"] name = "pytz" version = "2021.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -3179,6 +3347,7 @@ files = [ name = "pytz-deprecation-shim" version = "0.1.0.post0" description = "Shims to make deprecation of pytz easier" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3193,6 +3362,7 @@ tzdata = {version = "*", markers = "python_version >= \"3.6\""} name = "pyyaml" version = "5.4.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -3231,6 +3401,7 @@ files = [ name = "redis" version = "3.5.3" description = "Python client for Redis key-value store" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3245,6 +3416,7 @@ hiredis = ["hiredis (>=0.1.3)"] name = "regex" version = "2022.1.18" description = "Alternative regular expression module, to replace re." +category = "main" optional = false python-versions = "*" files = [ @@ -3328,6 +3500,7 @@ files = [ name = "reporters-db" version = "3.2.36" description = "Database of Court Reporters" +category = "main" optional = false python-versions = "*" files = [ @@ -3342,6 +3515,7 @@ six = ">=1.0.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3363,6 +3537,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-file" version = "1.5.1" description = "File transport adapter for Requests" +category = "main" optional = false python-versions = "*" files = [ @@ -3378,6 +3553,7 @@ six = "*" name = "s3transfer" version = "0.3.6" description = "An Amazon S3 Transfer Manager" +category = "main" optional = false python-versions = "*" files = [ @@ -3392,6 +3568,7 @@ botocore = ">=1.12.36,<2.0a.0" name = "schema" version = "0.7.4" description = "Simple data validation library" +category = "main" optional = false python-versions = "*" files = [ @@ -3406,6 +3583,7 @@ contextlib2 = ">=0.5.5" name = "scipy" version = "1.10.1" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = "<3.12,>=3.8" files = [ @@ -3444,6 +3622,7 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo name = "scorched" version = "0.13.1.dev0" description = "" +category = "main" optional = false python-versions = "*" files = [] @@ -3466,6 +3645,7 @@ resolved_reference = "0632024e72e22a71e17cdb778805561f7cdd33d8" name = "selenium" version = "4.9.1" description = "" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3483,6 +3663,7 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} name = "sentry-sdk" version = "1.14.0" description = "Python client for Sentry (https://sentry.io)" +category = "main" optional = false python-versions = "*" files = [ @@ -3521,6 +3702,7 @@ tornado = ["tornado (>=5)"] name = "service-identity" version = "21.1.0" description = "Service identity verification for pyOpenSSL & cryptography." +category = "main" optional = false python-versions = "*" files = [ @@ -3545,6 +3727,7 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] name = "setuptools" version = "65.5.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3561,6 +3744,7 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "sgmllib3k" version = "1.0.0" description = "Py3k port of sgmllib." +category = "main" optional = false python-versions = "*" files = [ @@ -3571,6 +3755,7 @@ files = [ name = "simplejson" version = "3.18.3" description = "Simple, fast, extensible JSON encoder/decoder for Python" +category = "main" optional = false python-versions = ">=2.5, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3653,6 +3838,7 @@ files = [ name = "six" version = "1.15.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3664,6 +3850,7 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3675,6 +3862,7 @@ files = [ name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" +category = "main" optional = false python-versions = "*" files = [ @@ -3686,6 +3874,7 @@ files = [ name = "soupsieve" version = "2.2.1" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3697,6 +3886,7 @@ files = [ name = "sqlparse" version = "0.4.4" description = "A non-validating SQL parser." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3713,6 +3903,7 @@ test = ["pytest", "pytest-cov"] name = "stack-data" version = "0.5.1" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "main" optional = false python-versions = "*" files = [ @@ -3732,6 +3923,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "stripe" version = "5.2.0" description = "Python bindings for the Stripe API" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3746,6 +3938,7 @@ requests = {version = ">=2.20", markers = "python_version >= \"3.0\""} name = "tblib" version = "1.7.0" description = "Traceback serialization library." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3757,6 +3950,7 @@ files = [ name = "texttable" version = "1.6.4" description = "module for creating simple ASCII tables" +category = "main" optional = false python-versions = "*" files = [ @@ -3768,6 +3962,7 @@ files = [ name = "time-machine" version = "2.9.0" description = "Travel through time in your tests." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3833,6 +4028,7 @@ python-dateutil = "*" name = "timeout-decorator" version = "0.5.0" description = "Timeout decorator" +category = "main" optional = false python-versions = "*" files = [ @@ -3843,6 +4039,7 @@ files = [ name = "tldextract" version = "3.4.0" description = "Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL). By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3860,6 +4057,7 @@ requests-file = ">=1.4" name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3871,6 +4069,7 @@ files = [ name = "tomlkit" version = "0.11.8" description = "Style preserving TOML library" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3882,6 +4081,7 @@ files = [ name = "tqdm" version = "4.59.0" description = "Fast, Extensible Progress Meter" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -3898,6 +4098,7 @@ telegram = ["requests"] name = "traitlets" version = "5.4.0" description = "" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3912,6 +4113,7 @@ test = ["pre-commit", "pytest"] name = "trio" version = "0.21.0" description = "A friendly Python library for async concurrency and I/O" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3932,6 +4134,7 @@ sortedcontainers = "*" name = "trio-websocket" version = "0.9.2" description = "WebSocket library for Trio" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3948,6 +4151,7 @@ wsproto = ">=0.14" name = "twisted" version = "22.4.0" description = "An asynchronous networking framework written in Python" +category = "main" optional = false python-versions = ">=3.6.7" files = [ @@ -3988,6 +4192,7 @@ windows-platform = ["PyHamcrest (>=1.9.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.0. name = "twisted-iocpsupport" version = "1.0.3" description = "An extension for use in the twisted I/O Completion Ports reactor." +category = "main" optional = false python-versions = "*" files = [ @@ -4013,6 +4218,7 @@ files = [ name = "txaio" version = "23.1.1" description = "Compatibility API between asyncio/Twisted/Trollius" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4029,6 +4235,7 @@ twisted = ["twisted (>=20.3.0)", "zope.interface (>=5.2.0)"] name = "types-dateparser" version = "1.1.4.6" description = "Typing stubs for dateparser" +category = "main" optional = false python-versions = "*" files = [ @@ -4040,6 +4247,7 @@ files = [ name = "types-pyopenssl" version = "23.0.0.4" description = "Typing stubs for pyOpenSSL" +category = "dev" optional = false python-versions = "*" files = [ @@ -4054,6 +4262,7 @@ cryptography = ">=35.0.0" name = "types-python-dateutil" version = "2.8.19.12" description = "Typing stubs for python-dateutil" +category = "dev" optional = false python-versions = "*" files = [ @@ -4065,6 +4274,7 @@ files = [ name = "types-pytz" version = "2021.3.5" description = "Typing stubs for pytz" +category = "dev" optional = false python-versions = "*" files = [ @@ -4076,6 +4286,7 @@ files = [ name = "types-pyyaml" version = "6.0.4" description = "Typing stubs for PyYAML" +category = "dev" optional = false python-versions = "*" files = [ @@ -4087,6 +4298,7 @@ files = [ name = "types-redis" version = "4.5.4.1" description = "Typing stubs for redis" +category = "dev" optional = false python-versions = "*" files = [ @@ -4102,6 +4314,7 @@ types-pyOpenSSL = "*" name = "types-requests" version = "2.29.0.0" description = "Typing stubs for requests" +category = "dev" optional = false python-versions = "*" files = [ @@ -4116,6 +4329,7 @@ types-urllib3 = "<1.27" name = "types-simplejson" version = "3.19.0.0" description = "Typing stubs for simplejson" +category = "dev" optional = false python-versions = "*" files = [ @@ -4127,6 +4341,7 @@ files = [ name = "types-urllib3" version = "1.26.11" description = "Typing stubs for urllib3" +category = "dev" optional = false python-versions = "*" files = [ @@ -4138,6 +4353,7 @@ files = [ name = "typing-extensions" version = "4.1.1" description = "Backported and Experimental Type Hints for Python 3.6+" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4149,6 +4365,7 @@ files = [ name = "tzdata" version = "2022.7" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -4160,6 +4377,7 @@ files = [ name = "tzlocal" version = "4.2" description = "tzinfo object for the local timezone" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4179,6 +4397,7 @@ test = ["pytest (>=4.3)", "pytest-mock (>=3.3)"] name = "unidecode" version = "1.2.0" description = "ASCII transliterations of Unicode text" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4190,6 +4409,7 @@ files = [ name = "uritemplate" version = "3.0.1" description = "URI templates" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4201,6 +4421,7 @@ files = [ name = "urllib3" version = "1.26.15" 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.*, !=3.5.*" files = [ @@ -4220,6 +4441,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "usaddress" version = "0.5.10" description = "Parse US addresses using conditional random fields" +category = "main" optional = false python-versions = "*" files = [ @@ -4236,6 +4458,7 @@ python-crfsuite = ">=0.7" name = "uvicorn" version = "0.22.0" description = "The lightning-fast ASGI server." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4250,7 +4473,7 @@ h11 = ">=0.8" httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} -uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} @@ -4261,6 +4484,7 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", name = "uvloop" version = "0.17.0" description = "Fast implementation of asyncio event loop on top of libuv" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4305,6 +4529,7 @@ test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "my name = "vine" version = "5.0.0" description = "Promises, promises, promises." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4316,6 +4541,7 @@ files = [ name = "virtualenv" version = "20.17.1" description = "Virtual Python Environment builder" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4336,6 +4562,7 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7 name = "watchfiles" version = "0.19.0" description = "Simple, modern and high performance file watching and code reload in python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4370,6 +4597,7 @@ anyio = ">=3.0.0" name = "wcwidth" version = "0.2.5" description = "Measures the displayed width of unicode strings in a terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -4381,6 +4609,7 @@ files = [ name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "main" optional = false python-versions = "*" files = [ @@ -4392,6 +4621,7 @@ files = [ name = "websockets" version = "11.0.3" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4471,6 +4701,7 @@ files = [ name = "wrapt" version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -4555,6 +4786,7 @@ files = [ name = "wsproto" version = "1.2.0" description = "WebSockets state-machine based protocol implementation" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -4569,6 +4801,7 @@ h11 = ">=0.9.0,<1" name = "zope-interface" version = "6.0" description = "Interfaces for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4615,4 +4848,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.10, <3.12" -content-hash = "d435d4c7dce4af1c659d4dbe2d712e2091a1514a80439b4e4009404f69bef595" +content-hash = "d4fbe083bb0ec3fbf23ad5fa55c0819f250d024c3022878c6a8c471d094bf231" diff --git a/pyproject.toml b/pyproject.toml index 5ec87e6e65..0fe25deecb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -95,7 +95,7 @@ PyStemmer = "^2.0.1" factory-boy = "^3.2.1" django-elasticsearch-dsl = "^7.3" django-override-storage = "^0.3.2" -django-ses = {extras = ["events"], version = "^3.3.0"} +django-ses = {extras = ["events"], version = "^3.5.0"} django-environ = "^0.8.1" judge-pics = "^2.0.1" django-admin-cursor-paginator = "^0.1.2" From 23221dfc0e548d8da18c75508c98a6e5b2f2078e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 23:10:18 +0000 Subject: [PATCH 06/21] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e531956054..e9052f9eaf 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This repository is organized in the following way: - scripts: logrotate, systemd, etc, and init scripts for our various configurations and daemons. -## Getting Involved +## Getting Involved If you want to get involved send us an email with your contact info or take a look through the [issues list][issues]. There are innumerable things we need help with, but we especially are looking for help with: From 5f193388b1b818c2d2ce0cbcf346f646f44abbbd Mon Sep 17 00:00:00 2001 From: Alberto Islas Date: Wed, 11 Sep 2024 18:39:52 -0500 Subject: [PATCH 07/21] fix(elasticsearch): Improved citing and related clusters query for Opinions page - Make queries run in parallel - Simplify the MLT query - Add a custom timeout Fixes: #4438 --- cl/lib/elasticsearch_utils.py | 140 ++-------- .../templates/includes/opinions_sidebar.html | 30 +-- cl/opinion_page/tests.py | 15 +- cl/opinion_page/utils.py | 240 ++++++++++++++---- cl/opinion_page/views.py | 14 +- cl/search/constants.py | 6 + cl/settings/third_party/elasticsearch.py | 4 +- 7 files changed, 247 insertions(+), 202 deletions(-) diff --git a/cl/lib/elasticsearch_utils.py b/cl/lib/elasticsearch_utils.py index 1b9ca92683..e25f5df5d8 100644 --- a/cl/lib/elasticsearch_utils.py +++ b/cl/lib/elasticsearch_utils.py @@ -9,16 +9,13 @@ from functools import reduce, wraps from typing import Any, Callable, Dict, List, Literal -from asgiref.sync import sync_to_async from django.conf import settings -from django.core.cache import caches -from django.core.paginator import EmptyPage, Page -from django.db.models import Case, CharField +from django.core.paginator import Page +from django.db.models import Case from django.db.models import Q as QObject -from django.db.models import QuerySet, TextField, Value, When +from django.db.models import QuerySet, TextField, When from django.db.models.functions import Substr from django.forms.boundfield import BoundField -from django.http import HttpRequest from django.http.request import QueryDict from django.utils.html import strip_tags from django_elasticsearch_dsl.search import Search @@ -31,9 +28,7 @@ from cl.audio.models import Audio from cl.custom_filters.templatetags.text_filters import html_decode -from cl.lib.bot_detector import is_bot from cl.lib.date_time import midnight_pt -from cl.lib.paginators import ESPaginator from cl.lib.string_utils import trunc from cl.lib.types import ( ApiPositionMapping, @@ -59,6 +54,7 @@ RELATED_PATTERN, SEARCH_ALERTS_ORAL_ARGUMENT_ES_HL_FIELDS, SEARCH_HL_TAG, + SEARCH_MLT_OPINION_QUERY_FIELDS, SEARCH_OPINION_HL_FIELDS, SEARCH_OPINION_QUERY_FIELDS, SEARCH_ORAL_ARGUMENT_ES_HL_FIELDS, @@ -80,14 +76,7 @@ UnbalancedQuotesQuery, ) from cl.search.forms import SearchForm -from cl.search.models import ( - PRECEDENTIAL_STATUS, - SEARCH_TYPES, - Court, - Opinion, - OpinionCluster, - RECAPDocument, -) +from cl.search.models import SEARCH_TYPES, Court, Opinion, RECAPDocument logger = logging.getLogger(__name__) @@ -171,15 +160,8 @@ def build_daterange_query( def build_more_like_this_query(related_id: list[str]): document_list = [{"_id": f"o_{id}"} for id in related_id] - more_like_this_fields = SEARCH_OPINION_QUERY_FIELDS.copy() - more_like_this_fields.extend( - [ - "type", - "text", - "caseName", - "docketNumber", - ] - ) + more_like_this_fields = SEARCH_MLT_OPINION_QUERY_FIELDS.copy() + return Q( "more_like_this", fields=more_like_this_fields, @@ -1178,6 +1160,16 @@ def build_es_base_query( if related_match: cluster_pks = related_match.group("pks").split(",") mlt_query = build_more_like_this_query(cluster_pks) + main_query, join_query = build_full_join_es_queries( + cd, + {"opinion": []}, + [], + mlt_query, + child_highlighting=False, + api_version=api_version, + ) + return search_query.query(main_query), join_query + opinion_search_fields = SEARCH_OPINION_QUERY_FIELDS child_fields = opinion_search_fields.copy() child_fields.extend( @@ -2036,6 +2028,7 @@ def fetch_es_results( main_doc_count_query, parent_unique_field ) + print("MAin query :", main_doc_count_query.to_dict()) if child_docs_count_query: child_unique_field = cardinality_query_unique_ids[ SEARCH_TYPES.RECAP_DOCUMENT @@ -2043,6 +2036,7 @@ def fetch_es_results( child_total_query = build_cardinality_count( child_docs_count_query, child_unique_field ) + print("child_total_query", child_total_query.to_dict()) # Execute the ES main query + count queries in a single request. multi_search = MultiSearch() @@ -2461,12 +2455,13 @@ def build_full_join_es_queries( child_filters_original = deepcopy(child_filters) # Build child text query. child_fields = child_query_fields[child_type] - child_text_query = build_fulltext_query( - child_fields, cd.get("q", ""), only_queries=True - ) if mlt_query: - child_text_query.append(mlt_query) + child_text_query = [mlt_query] + else: + child_text_query = build_fulltext_query( + child_fields, cd.get("q", ""), only_queries=True + ) # Build parent filters. parent_filters = build_join_es_filters(cd) @@ -2602,7 +2597,7 @@ def build_full_join_es_queries( should=string_query, minimum_should_match=1, ) - if parent_query: + if parent_query and not mlt_query: q_should.append(parent_query) if not q_should: @@ -2758,91 +2753,6 @@ def merge_opinion_and_cluster(results: Page | dict) -> None: result["status_exact"] = result["status"] -async def get_related_clusters_with_cache_and_es( - search: Search, - cluster: OpinionCluster, - request: HttpRequest, -) -> tuple[Page | list, list[int], dict[str, str]]: - """Retrieve related opinion clusters from ES or cache. - - :param search: The ES Search object. - :param cluster: The current OpinionCluster. - :param request: The HttpRequest object. - :return: A three tuple containing a Page containing opinion clusters or an - empty list. A list containing the cluster sub opinions ids. A dic containing - the url_search_params. - """ - - # By default, all statuses are included. Retrieve the PRECEDENTIAL_STATUS - # attributes (since they're indexed in ES) instead of the NAMES values. - available_statuses = [status[0] for status in PRECEDENTIAL_STATUS.NAMES] - url_search_params = {f"stat_{v}": "on" for v in available_statuses} - search_params: CleanData = {} - # Opinions that belong to the targeted cluster - sub_opinion_ids = cluster.sub_opinions.values_list("pk", flat=True) - sub_opinion_pks = [pk async for pk in sub_opinion_ids] - if is_bot(request) or not sub_opinion_pks: - # If it is a bot or lacks sub-opinion IDs, return empty results - return [], [], url_search_params - - # Use cache if enabled - cache = caches["db_cache"] - mlt_cache_key = f"mlt-cluster-es:{cluster.pk}" - related_clusters = ( - await cache.aget(mlt_cache_key) if settings.RELATED_USE_CACHE else None - ) - - if settings.RELATED_FILTER_BY_STATUS: - # Filter results by status (e.g., Precedential) - # Update URL parameters accordingly - search_params[ - f"stat_{PRECEDENTIAL_STATUS.get_status_value(settings.RELATED_FILTER_BY_STATUS)}" - ] = True - url_search_params = { - f"stat_{PRECEDENTIAL_STATUS.get_status_value(settings.RELATED_FILTER_BY_STATUS)}": "on" - } - - if related_clusters is None: - sub_opinion_queries = ",".join(str(pk) for pk in sub_opinion_pks) - search_params["q"] = f"related:{sub_opinion_queries}" - search_params["type"] = SEARCH_TYPES.OPINION - query_dict = QueryDict("", mutable=True) - query_dict.update(search_params) - search_query, child_docs_count_query, _ = await sync_to_async( - build_es_main_query - )(search, search_params) - hits, _, error, total_query_results, _ = await sync_to_async( - fetch_es_results - )( - query_dict, - search_query, - child_docs_count_query, - 1, - settings.RELATED_COUNT, - ) - if error: - return [], [], url_search_params - - @sync_to_async - def paginate_related_clusters(total_results: int, results: Response): - paginator = ESPaginator( - total_results, results, settings.RELATED_COUNT - ) - try: - return paginator.page(1) - except EmptyPage: - return paginator.page(paginator.num_pages) - - related_clusters = await paginate_related_clusters( - total_query_results, hits - ) - - await cache.aset( - mlt_cache_key, related_clusters, settings.RELATED_CACHE_TIMEOUT - ) - return related_clusters, sub_opinion_pks, url_search_params - - def make_es_stats_variable( search_form: SearchForm, results: Page | Response, diff --git a/cl/opinion_page/templates/includes/opinions_sidebar.html b/cl/opinion_page/templates/includes/opinions_sidebar.html index b15dd44002..28afcd315d 100644 --- a/cl/opinion_page/templates/includes/opinions_sidebar.html +++ b/cl/opinion_page/templates/includes/opinions_sidebar.html @@ -1,27 +1,15 @@ {% load text_filters %} {% load waffle_tags %}

diff --git a/cl/opinion_page/tests.py b/cl/opinion_page/tests.py index d5ac1475d6..c9cfa007b7 100644 --- a/cl/opinion_page/tests.py +++ b/cl/opinion_page/tests.py @@ -14,7 +14,7 @@ from django.contrib.auth.models import Group, User from django.core.files.uploadedfile import SimpleUploadedFile from django.core.management import call_command -from django.test import RequestFactory, override_settings +from django.test import AsyncRequestFactory, RequestFactory, override_settings from django.test.client import AsyncClient from django.urls import reverse from django.utils.text import slugify @@ -38,7 +38,7 @@ TennWorkCompClUploadForm, ) from cl.opinion_page.utils import ( - es_get_citing_clusters_with_cache, + es_get_citing_and_related_clusters_with_cache, generate_docket_entries_csv_data, make_docket_title, ) @@ -191,12 +191,15 @@ async def test_simple_opinion_page(self) -> None: self.assertIn("33 state 1", response.content.decode()) async def test_es_get_citing_clusters_with_cache(self) -> None: - """Does es_get_citing_clusters_with_cache return the correct clusters - citing and the total cites count? + """Does es_get_citing_and_related_clusters_with_cache return the + correct clusters citing and the total cites count? """ - clusters, count = await es_get_citing_clusters_with_cache( - self.o_cluster_3 + request = AsyncRequestFactory().get("/") + _, _, _, clusters, count = ( + await es_get_citing_and_related_clusters_with_cache( + self.o_cluster_3, request + ) ) c_list_names = [c["caseName"] for c in clusters] expected_clusters = [ diff --git a/cl/opinion_page/utils.py b/cl/opinion_page/utils.py index 2e5f7f1c99..8cf471db0d 100644 --- a/cl/opinion_page/utils.py +++ b/cl/opinion_page/utils.py @@ -1,24 +1,38 @@ import csv +import logging +import traceback from io import StringIO from typing import Dict, Tuple, Union from asgiref.sync import sync_to_async +from django.conf import settings from django.contrib.auth.models import AnonymousUser, User from django.core.cache import caches from django.core.exceptions import ObjectDoesNotExist from django.http import HttpRequest from django.shortcuts import aget_object_or_404 # type: ignore[attr-defined] -from elasticsearch_dsl import Q +from django_elasticsearch_dsl.search import Search +from elasticsearch.exceptions import ApiError, RequestError, TransportError +from elasticsearch_dsl import MultiSearch, Q from cl.alerts.models import DocketAlert from cl.custom_filters.templatetags.text_filters import best_case_name from cl.favorites.forms import NoteForm from cl.favorites.models import Note -from cl.lib.elasticsearch_utils import do_count_query +from cl.lib.bot_detector import is_bot +from cl.lib.elasticsearch_utils import build_es_main_query from cl.lib.string_utils import trunc +from cl.lib.types import CleanData from cl.recap.constants import COURT_TIMEZONES from cl.search.documents import OpinionClusterDocument -from cl.search.models import Docket, OpinionCluster +from cl.search.models import ( + PRECEDENTIAL_STATUS, + SEARCH_TYPES, + Docket, + OpinionCluster, +) + +logger = logging.getLogger(__name__) async def get_case_title(cluster: OpinionCluster) -> str: @@ -88,53 +102,6 @@ async def user_has_alert( return has_alert -async def es_get_citing_clusters_with_cache( - cluster: OpinionCluster, -) -> tuple[list[OpinionClusterDocument], int | None]: - """Use Elasticsearch to get clusters citing the one we're looking at - - :param cluster: The cluster we're targeting - :type cluster: OpinionCluster - :return: A tuple of the list of ES results and the number of results - """ - cache_key = f"citing-es:{cluster.pk}" - cache = caches["db_cache"] - cached_results = await cache.aget(cache_key) - if cached_results is not None: - return cached_results - - # No cached results. Get the citing results from Elasticsearch - sub_opinion_pks = cluster.sub_opinions.values_list("pk", flat=True) - ids_str = [str(pk) async for pk in sub_opinion_pks] - cites_query = Q( - "bool", - filter=[ - Q("match", cluster_child="opinion"), - Q("terms", **{"cites": ids_str}), - ], - ) - cluster_document = OpinionClusterDocument.search() - cluster_cites_query = cluster_document.query(cites_query) - search_query = ( - cluster_cites_query.sort({"citeCount": {"order": "desc"}}) - .source(includes=["absolute_url", "caseName", "dateFiled"]) - .extra(size=5) - ) - results = await sync_to_async(search_query.execute)() - citing_cluster_count = await sync_to_async(do_count_query)( - cluster_cites_query - ) - citing_clusters = list(results) - a_week = 60 * 60 * 24 * 7 - - if citing_cluster_count is not None: - # Cache only if the citing_cluster_count query was successful. - await cache.aset( - cache_key, (citing_clusters, citing_cluster_count), a_week - ) - return citing_clusters, citing_cluster_count - - def generate_docket_entries_csv_data(docket_entries): """Get str representing in memory file from docket_entries. @@ -162,3 +129,176 @@ def generate_docket_entries_csv_data(docket_entries): csv_content: str = output.getvalue() output.close() return csv_content + + +async def build_cites_clusters_query( + cluster_search: Search, sub_opinion_pks: list[str] +) -> Search: + """Build the ES cites clusters query to find clusters citing specific + sub-opinions. + + :param cluster_search: The Elasticsearch DSL Search object + :param sub_opinion_pks: A list of ids of sub-opinions to search for in + the 'cites' field. + :return: The ES DSL Search object representing the query to find clusters + citing the specified sub-opinions. + """ + cites_query = Q( + "bool", + filter=[ + Q("match", cluster_child="opinion"), + Q("terms", **{"cites": sub_opinion_pks}), + ], + ) + cluster_cites_query = cluster_search.query(cites_query) + search_query = ( + cluster_cites_query.sort({"citeCount": {"order": "desc"}}) + .source(includes=["absolute_url", "caseName", "dateFiled"]) + .extra(size=5) + ) + return search_query + + +async def build_related_clusters_query( + cluster_search: Search, + sub_opinion_pks: list[str], + search_params: dict[str, str], +) -> Search: + """Build the ES related clusters query based on sub-opinion IDs. + + :param cluster_search: The Elasticsearch DSL Search object + :param sub_opinion_pks: A list of IDs representing sub-opinions to be queried. + :param search_params: A dict of parameters used to form the query. + :return: The ES DSL Search object representing the query to find the + related clusters. + """ + + sub_opinion_queries = ",".join(str(pk) for pk in sub_opinion_pks) + search_params["q"] = f"related:{sub_opinion_queries}" + search_params["type"] = SEARCH_TYPES.OPINION + search_query, _, _ = await sync_to_async(build_es_main_query)( + cluster_search, search_params + ) + return search_query + + +async def es_get_citing_and_related_clusters_with_cache( + cluster: OpinionCluster, + request: HttpRequest, +) -> tuple[ + list[OpinionClusterDocument], + list[int], + dict[str, str], + list[OpinionClusterDocument], + int | None, +]: + """Use Elasticsearch to get clusters citing and related clusters to the + one we're looking at. + + :param cluster: The cluster we're targeting + :param request: The HttpRequest object. + :return: A tuple of related_clusters, sub_opinion_pks, the url_search_params, + citing_clusters and citing_cluster_count. + """ + + cache = caches["db_cache"] + cache_citing_key = f"citing-es:{cluster.pk}" + mlt_cache_key = f"mlt-cluster-es:{cluster.pk}" + + # By default, all statuses are included. Retrieve the PRECEDENTIAL_STATUS + # attributes (since they're indexed in ES) instead of the NAMES values. + search_params: CleanData = {} + url_search_params = { + f"stat_{v[0]}": "on" for v in PRECEDENTIAL_STATUS.NAMES + } + sub_opinion_pks = [ + str(pk) + async for pk in cluster.sub_opinions.values_list("pk", flat=True) + ] + + if settings.RELATED_FILTER_BY_STATUS: + # Filter results by status (e.g., Precedential) + # Update URL parameters accordingly + search_params[ + f"stat_{PRECEDENTIAL_STATUS.get_status_value(settings.RELATED_FILTER_BY_STATUS)}" + ] = True + url_search_params = { + f"stat_{PRECEDENTIAL_STATUS.get_status_value(settings.RELATED_FILTER_BY_STATUS)}": "on" + } + + if is_bot(request) or not sub_opinion_pks: + return [], [], url_search_params, [], None + + cached_citing_results = await cache.aget(cache_citing_key) + cached_related_clusters = ( + await cache.aget(mlt_cache_key) if settings.RELATED_USE_CACHE else None + ) + + # Prepare cited and related cluster queries if not cached results. + cluster_search = OpinionClusterDocument.search() + cited_search_query = ( + None + if cached_citing_results + else await build_cites_clusters_query(cluster_search, sub_opinion_pks) + ) + related_search_query = ( + None + if cached_related_clusters + else await build_related_clusters_query( + cluster_search, sub_opinion_pks, search_params + ) + ) + + if related_search_query: + related_search_query = related_search_query.extra( + size=settings.RELATED_COUNT, track_total_hits=False + ) + try: + # Execute the MultiSearch request as needed based on available + # cached results + multi_search = MultiSearch() + if related_search_query: + multi_search = multi_search.add(related_search_query) + if cited_search_query: + multi_search = multi_search.add(cited_search_query) + multi_search.params( + timeout=f"{settings.ELASTICSEARCH_FAST_QUERIES_TIMEOUT}s" + ) + + responses = multi_search.execute() if multi_search._searches else [] + related_clusters = ( + list(responses[0]) + if related_search_query + else cached_related_clusters or [] + ) + citing_clusters, citing_cluster_count = ( + (list(responses[1]), responses[1].hits.total.value) + if cited_search_query + else cached_citing_results or ([], None) + ) + except (TransportError, ConnectionError, RequestError, ApiError) as e: + logger.warning("Error getting cited and related clusters: %s", e) + if settings.DEBUG is True: + traceback.print_exc() + + return [], [], url_search_params, [], None + + if cited_search_query: + await cache.aset( + cache_citing_key, + (citing_clusters, citing_cluster_count), + settings.RELATED_CACHE_TIMEOUT, + ) + if related_search_query: + await cache.aset( + mlt_cache_key, related_clusters, settings.RELATED_CACHE_TIMEOUT + ) + + sub_opinion_ids = list(map(int, sub_opinion_pks)) + return ( + related_clusters, + sub_opinion_ids, + url_search_params, + citing_clusters, + citing_cluster_count, + ) diff --git a/cl/opinion_page/views.py b/cl/opinion_page/views.py index 59c23238d0..9ec404e29c 100644 --- a/cl/opinion_page/views.py +++ b/cl/opinion_page/views.py @@ -46,7 +46,6 @@ from cl.favorites.models import Note from cl.lib.auth import group_required from cl.lib.bot_detector import is_og_bot -from cl.lib.elasticsearch_utils import get_related_clusters_with_cache_and_es from cl.lib.http import is_ajax from cl.lib.model_helpers import choices_to_csv from cl.lib.models import THUMBNAIL_STATUSES @@ -73,14 +72,13 @@ from cl.opinion_page.types import AuthoritiesContext from cl.opinion_page.utils import ( core_docket_data, - es_get_citing_clusters_with_cache, + es_get_citing_and_related_clusters_with_cache, generate_docket_entries_csv_data, get_case_title, ) from cl.people_db.models import AttorneyOrganization, CriminalCount, Role from cl.recap.constants import COURT_TIMEZONES from cl.recap.models import FjcIntegratedDatabase -from cl.search.documents import OpinionClusterDocument from cl.search.models import ( SEARCH_TYPES, Citation, @@ -822,18 +820,16 @@ async def view_opinion(request: HttpRequest, pk: int, _: str) -> HttpResponse: request, "o-es-active" ) if es_flag_for_o: - search = OpinionClusterDocument.search() ( related_clusters, sub_opinion_ids, related_search_params, - ) = await get_related_clusters_with_cache_and_es( - search, cluster, request - ) - ( citing_clusters, citing_cluster_count, - ) = await es_get_citing_clusters_with_cache(cluster) + ) = await es_get_citing_and_related_clusters_with_cache( + cluster, request + ) + else: ( related_clusters, diff --git a/cl/search/constants.py b/cl/search/constants.py index a210beb801..a62617f031 100644 --- a/cl/search/constants.py +++ b/cl/search/constants.py @@ -109,6 +109,12 @@ "posture", "syllabus", ] +SEARCH_MLT_OPINION_QUERY_FIELDS = [ + "procedural_history", + "posture", + "syllabus", + "text", +] # ES fields that are used for highlighting SEARCH_HL_TAG = "mark" diff --git a/cl/settings/third_party/elasticsearch.py b/cl/settings/third_party/elasticsearch.py index 1450949232..51f0fb57a6 100644 --- a/cl/settings/third_party/elasticsearch.py +++ b/cl/settings/third_party/elasticsearch.py @@ -58,7 +58,9 @@ default="/opt/courtlistener/docker/elastic/ca.crt", ) ELASTICSEARCH_TIMEOUT = env("ELASTICSEARCH_TIMEOUT", default=3500) - +ELASTICSEARCH_FAST_QUERIES_TIMEOUT = env( + "ELASTICSEARCH_FAST_QUERIES_TIMEOUT", default=2 +) base_connection_params = { "hosts": ELASTICSEARCH_DSL_HOST, "http_auth": (ELASTICSEARCH_USER, ELASTICSEARCH_PASSWORD), From 97b5c7491d6d82569ba25aeeb67e7286e6310f9b Mon Sep 17 00:00:00 2001 From: Alberto Islas Date: Thu, 12 Sep 2024 11:27:31 -0500 Subject: [PATCH 08/21] fix(elasticsearch): Improve the MLT query to support multi sub-opinions clusters - Show unable to retrieve related cluster on query timeout --- cl/lib/elasticsearch_utils.py | 46 +++++++-- cl/opinion_page/templates/opinion.html | 9 +- cl/opinion_page/tests.py | 2 +- cl/opinion_page/utils.py | 94 ++++++++++++------ cl/opinion_page/views.py | 3 + cl/search/templates/search.html | 9 +- cl/search/tests/tests_es_opinion.py | 127 ++++++++++++++++++++++--- cl/search/views.py | 4 +- 8 files changed, 235 insertions(+), 59 deletions(-) diff --git a/cl/lib/elasticsearch_utils.py b/cl/lib/elasticsearch_utils.py index e25f5df5d8..dc1d9bcb71 100644 --- a/cl/lib/elasticsearch_utils.py +++ b/cl/lib/elasticsearch_utils.py @@ -9,6 +9,7 @@ from functools import reduce, wraps from typing import Any, Callable, Dict, List, Literal +from asgiref.sync import async_to_sync from django.conf import settings from django.core.paginator import Page from django.db.models import Case @@ -76,7 +77,13 @@ UnbalancedQuotesQuery, ) from cl.search.forms import SearchForm -from cl.search.models import SEARCH_TYPES, Court, Opinion, RECAPDocument +from cl.search.models import ( + SEARCH_TYPES, + Court, + Opinion, + OpinionCluster, + RECAPDocument, +) logger = logging.getLogger(__name__) @@ -158,17 +165,33 @@ def build_daterange_query( return [] -def build_more_like_this_query(related_id: list[str]): - document_list = [{"_id": f"o_{id}"} for id in related_id] - more_like_this_fields = SEARCH_MLT_OPINION_QUERY_FIELDS.copy() +async def build_more_like_this_query(related_ids: list[str]) -> Query: + """Build an ES "more like this" query based on related Opinion IDs. - return Q( + :param related_ids: A list of related Opinion IDs to build the query on. + :return: An ES query object with "more like this" query and + exclusions for specific opinion clusters. + """ + + document_list = [{"_id": f"o_{id}"} for id in related_ids] + more_like_this_fields = SEARCH_MLT_OPINION_QUERY_FIELDS.copy() + mlt_query = Q( "more_like_this", fields=more_like_this_fields, like=document_list, min_term_freq=1, max_query_terms=12, ) + # Exclude opinion clusters to which the related IDs to query belong. + cluster_ids_to_exclude = ( + OpinionCluster.objects.filter(sub_opinions__pk__in=related_ids) + .distinct("pk") + .values_list("pk", flat=True) + ) + cluster_ids_list = [pk async for pk in cluster_ids_to_exclude.aiterator()] + exclude_cluster_ids = [Q("terms", cluster_id=cluster_ids_list)] + bool_query = Q("bool", must=[mlt_query], must_not=exclude_cluster_ids) + return bool_query def make_es_boost_list(fields: Dict[str, float]) -> list[str]: @@ -1159,7 +1182,9 @@ def build_es_base_query( mlt_query = None if related_match: cluster_pks = related_match.group("pks").split(",") - mlt_query = build_more_like_this_query(cluster_pks) + mlt_query = async_to_sync(build_more_like_this_query)( + cluster_pks + ) main_query, join_query = build_full_join_es_queries( cd, {"opinion": []}, @@ -1433,6 +1458,12 @@ def add_es_highlighting( :param highlighting: Whether highlighting should be enabled in docs. :return: The modified Elasticsearch search query object with highlights set """ + + # Avoid highlighting for the related cluster query. + related_match = RELATED_PATTERN.search(cd.get("q", "")) + if related_match: + return search_query + highlighting_fields = {} highlighting_keyword_fields = [] hl_tag = ALERTS_HL_TAG if alerts else SEARCH_HL_TAG @@ -2027,8 +2058,6 @@ def fetch_es_results( main_doc_count_query = build_cardinality_count( main_doc_count_query, parent_unique_field ) - - print("MAin query :", main_doc_count_query.to_dict()) if child_docs_count_query: child_unique_field = cardinality_query_unique_ids[ SEARCH_TYPES.RECAP_DOCUMENT @@ -2036,7 +2065,6 @@ def fetch_es_results( child_total_query = build_cardinality_count( child_docs_count_query, child_unique_field ) - print("child_total_query", child_total_query.to_dict()) # Execute the ES main query + count queries in a single request. multi_search = MultiSearch() diff --git a/cl/opinion_page/templates/opinion.html b/cl/opinion_page/templates/opinion.html index a5992f8189..1840dd0df3 100644 --- a/cl/opinion_page/templates/opinion.html +++ b/cl/opinion_page/templates/opinion.html @@ -159,14 +159,13 @@

{# Related opinions #} - {% if related_clusters %} + {% if related_clusters or queries_timeout %}