diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 85c6d317ef7d..1f200088ed5c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,7 +20,7 @@ repos: args: [--config, api/.flake8] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-yaml - id: check-json diff --git a/.release-please-manifest.json b/.release-please-manifest.json index de42b48660ee..d376d2db103d 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.156.1" + ".": "2.157.1" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9158aa1c4646..66d718e0ce19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,38 @@ # Changelog +## [2.157.1](https://github.com/Flagsmith/flagsmith/compare/v2.157.0...v2.157.1) (2024-12-16) + + +### Bug Fixes + +* description state management in EnvironmentSettingsPage ([#4917](https://github.com/Flagsmith/flagsmith/issues/4917)) ([0223227](https://github.com/Flagsmith/flagsmith/commit/02232278a1309a1b04bbe5ea03ed8019b0eec849)) +* Numbers such as 1e100 cannot be retrieved from DynamoDB ([#4916](https://github.com/Flagsmith/flagsmith/issues/4916)) ([5d02ab1](https://github.com/Flagsmith/flagsmith/commit/5d02ab17cda6854d17933d0eff5a835ad2ea99ea)) +* Preserve Page number in URL at AuditLogs page ([#4913](https://github.com/Flagsmith/flagsmith/issues/4913)) ([6cd6cb8](https://github.com/Flagsmith/flagsmith/commit/6cd6cb866af2ec17357b13a51e9fad56af743446)) +* Set project change requests url ([#4920](https://github.com/Flagsmith/flagsmith/issues/4920)) ([e94e5c6](https://github.com/Flagsmith/flagsmith/commit/e94e5c6064c4b0df1a4cd09ddb9a0b8d30c75612)) + +## [2.157.0](https://github.com/Flagsmith/flagsmith/compare/v2.156.2...v2.157.0) (2024-12-10) + + +### Features + +* Heal all identities with blank traits ([#4908](https://github.com/Flagsmith/flagsmith/issues/4908)) ([5405cc5](https://github.com/Flagsmith/flagsmith/commit/5405cc59b4e49a8936a278439c018072fcdc7df4)) + + +### Bug Fixes + +* **chargebee:** ensure that missing api calls are handled correctly ([#4901](https://github.com/Flagsmith/flagsmith/issues/4901)) ([38b4300](https://github.com/Flagsmith/flagsmith/commit/38b43004d139278a1cadc4935c5b36ab9c1cf360)) +* Relax Hubspot cookie tracking ([#4905](https://github.com/Flagsmith/flagsmith/issues/4905)) ([4f20e5a](https://github.com/Flagsmith/flagsmith/commit/4f20e5a551a6d2f70329d4851188f5ebedd55f4b)) +* Restore `make docker-up` ([#4907](https://github.com/Flagsmith/flagsmith/issues/4907)) ([f97c56f](https://github.com/Flagsmith/flagsmith/commit/f97c56fd79703212354d8dbbb6a7e6ca438e78a3)) + +## [2.156.2](https://github.com/Flagsmith/flagsmith/compare/v2.156.1...v2.156.2) (2024-12-10) + + +### Bug Fixes + +* anchor button height ([#4891](https://github.com/Flagsmith/flagsmith/issues/4891)) ([7048c4c](https://github.com/Flagsmith/flagsmith/commit/7048c4c213ed60077aa85c30812d03544b10327a)) +* audit log integrations for versioned environments ([#4876](https://github.com/Flagsmith/flagsmith/issues/4876)) ([486bcd1](https://github.com/Flagsmith/flagsmith/commit/486bcd1d2fc6a360f002183027186d70798b4f06)) +* **pre-commit:** refactor prettier hook ([#4902](https://github.com/Flagsmith/flagsmith/issues/4902)) ([cbecde7](https://github.com/Flagsmith/flagsmith/commit/cbecde7cb53fd0865807f947de04f99407eacdaf)) + ## [2.156.1](https://github.com/Flagsmith/flagsmith/compare/v2.156.0...v2.156.1) (2024-12-04) diff --git a/api/Makefile b/api/Makefile index f9308c59d9a9..8707e2334026 100644 --- a/api/Makefile +++ b/api/Makefile @@ -2,7 +2,7 @@ DOCKER_TAG ?= flagsmith/flagsmith-api:local -COMPOSE_FILE ?= ../docker/db.yml +COMPOSE_FILE ?= ../docker/api/docker-compose.local.yml COMPOSE_PROJECT_NAME ?= flagsmith DOTENV_OVERRIDE_FILE ?= .env diff --git a/api/edge_api/management/commands/ensure_identity_traits_blanks.py b/api/edge_api/management/commands/ensure_identity_traits_blanks.py new file mode 100644 index 000000000000..53eabc3d1345 --- /dev/null +++ b/api/edge_api/management/commands/ensure_identity_traits_blanks.py @@ -0,0 +1,65 @@ +from typing import Any + +from django.core.management import BaseCommand +from structlog import get_logger +from structlog.stdlib import BoundLogger + +from environments.dynamodb import DynamoIdentityWrapper + +identity_wrapper = DynamoIdentityWrapper() + + +LOG_COUNT_EVERY = 100_000 + + +class Command(BaseCommand): + def handle(self, *args: Any, **options: Any) -> None: + total_count = identity_wrapper.table.item_count + scanned_count = 0 + fixed_count = 0 + + log: BoundLogger = get_logger(total_count=total_count) + log.info("started") + + for identity_document in identity_wrapper.query_get_all_items(): + should_write_identity_document = False + + if identity_traits_data := identity_document.get("identity_traits"): + blank_traits = ( + trait_data + for trait_data in identity_traits_data + if "trait_value" not in trait_data + ) + for trait_data in blank_traits: + should_write_identity_document = True + trait_data["trait_value"] = "" + + scanned_count += 1 + scanned_percentage = scanned_count / total_count * 100 + + if should_write_identity_document: + identity_wrapper.put_item(identity_document) + fixed_count += 1 + + log.info( + "identity-fixed", + identity_uuid=identity_document["identity_uuid"], + scanned_count=scanned_count, + scanned_percentage=scanned_percentage, + fixed_count=fixed_count, + ) + + if not (scanned_count % LOG_COUNT_EVERY): + log.info( + "in-progress", + scanned_count=scanned_count, + scanned_percentage=scanned_percentage, + fixed_count=fixed_count, + ) + + log.info( + "finished", + scanned_count=scanned_count, + scanned_percentage=scanned_percentage, + fixed_count=fixed_count, + ) diff --git a/api/environments/dynamodb/wrappers/base.py b/api/environments/dynamodb/wrappers/base.py index abac7ca9b442..9358ee62d4bd 100644 --- a/api/environments/dynamodb/wrappers/base.py +++ b/api/environments/dynamodb/wrappers/base.py @@ -1,12 +1,20 @@ import typing +from decimal import Context +from functools import partial import boto3 +import boto3.dynamodb.types from botocore.config import Config if typing.TYPE_CHECKING: from mypy_boto3_dynamodb.service_resource import Table +# Avoid `decimal.Rounded` when reading large numbers +# See https://github.com/boto/boto3/issues/2500 +boto3.dynamodb.types.DYNAMODB_CONTEXT = Context(prec=100) + + class BaseDynamoWrapper: table_name: str = None @@ -33,8 +41,13 @@ def is_enabled(self) -> bool: return self.table is not None def query_get_all_items(self, **kwargs: dict) -> typing.Generator[dict, None, None]: + if kwargs: + response_getter = partial(self.table.query, **kwargs) + else: + response_getter = partial(self.table.scan) + while True: - query_response = self.table.query(**kwargs) + query_response = response_getter() for item in query_response["Items"]: yield item @@ -42,4 +55,4 @@ def query_get_all_items(self, **kwargs: dict) -> typing.Generator[dict, None, No if not last_evaluated_key: break - kwargs["ExclusiveStartKey"] = last_evaluated_key + response_getter.keywords["ExclusiveStartKey"] = last_evaluated_key diff --git a/api/features/workflows/core/migrations/0012_alter_changerequest_options.py b/api/features/workflows/core/migrations/0012_alter_changerequest_options.py new file mode 100644 index 000000000000..4c9d85388ebe --- /dev/null +++ b/api/features/workflows/core/migrations/0012_alter_changerequest_options.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.17 on 2024-12-16 16:49 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("workflows_core", "0011_add_project_to_change_requests"), + ] + + operations = [ + migrations.AlterModelOptions( + name="changerequest", + options={"ordering": ("id",)}, + ), + ] diff --git a/api/features/workflows/core/models.py b/api/features/workflows/core/models.py index 3d1c99bf9d27..b25395a67f57 100644 --- a/api/features/workflows/core/models.py +++ b/api/features/workflows/core/models.py @@ -102,6 +102,10 @@ class ChangeRequest( ignore_conflicts = models.BooleanField(default=False) + class Meta: + # Explicit ordering to prevent pagination warnings. + ordering = ("id",) + def approve(self, user: "FFAdminUser"): if user.id == self.user_id: raise CannotApproveOwnChangeRequest( @@ -277,7 +281,7 @@ def url(self): url += f"/project/{self.environment.project_id}" url += f"/environment/{self.environment.api_key}" else: - url += f"/projects/{self.project_id}" + url += f"/project/{self.project_id}" url += f"/change-requests/{self.id}" return url diff --git a/api/integrations/lead_tracking/hubspot/services.py b/api/integrations/lead_tracking/hubspot/services.py index 324af4f8bfcd..7926b8d59b21 100644 --- a/api/integrations/lead_tracking/hubspot/services.py +++ b/api/integrations/lead_tracking/hubspot/services.py @@ -12,18 +12,26 @@ def register_hubspot_tracker(request: Request) -> None: hubspot_cookie = request.data.get(HUBSPOT_COOKIE_NAME) if not hubspot_cookie: + logger.info(f"Request did not included Hubspot data for user {request.user.id}") + return + + if ( + HubspotTracker.objects.filter(hubspot_cookie=hubspot_cookie) + .exclude(user=request.user) + .exists() + ): logger.info( - f"Request did not included Hubspot data for user {request.user.email}" + f"HubspotTracker could not be created for user {request.user.id}" + f" due to cookie conflict with cookie {hubspot_cookie}" ) return - logger.info( - f"Creating HubspotTracker instance for user {request.user.email} with cookie {hubspot_cookie}" - ) - HubspotTracker.objects.update_or_create( user=request.user, defaults={ "hubspot_cookie": hubspot_cookie, }, ) + logger.info( + f"Created HubspotTracker instance for user {request.user.id} with cookie {hubspot_cookie}" + ) diff --git a/api/organisations/subscriptions/metadata.py b/api/organisations/subscriptions/metadata.py index fdb3033ab55d..fcec281c8c47 100644 --- a/api/organisations/subscriptions/metadata.py +++ b/api/organisations/subscriptions/metadata.py @@ -9,7 +9,7 @@ class BaseSubscriptionMetadata: def __init__( self, seats: int = 0, - api_calls: None | int = None, + api_calls: int = 0, projects: None | int = None, chargebee_email: None | str = None, audit_log_visibility_days: int | None = 0, diff --git a/api/poetry.lock b/api/poetry.lock index faa3408fe8e9..7092666e9d86 100644 --- a/api/poetry.lock +++ b/api/poetry.lock @@ -2,13 +2,13 @@ [[package]] name = "annotated-types" -version = "0.6.0" +version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" files = [ - {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, - {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] [[package]] @@ -24,13 +24,13 @@ files = [ [[package]] name = "argcomplete" -version = "3.1.2" +version = "3.5.2" description = "Bash tab completion for argparse" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "argcomplete-3.1.2-py3-none-any.whl", hash = "sha256:d97c036d12a752d1079f190bc1521c545b941fda89ad85d15afa909b4d1b9a99"}, - {file = "argcomplete-3.1.2.tar.gz", hash = "sha256:d5d1e5efd41435260b8f85673b74ea2e883affcbec9f4230c582689e8e78251b"}, + {file = "argcomplete-3.5.2-py3-none-any.whl", hash = "sha256:036d020d79048a5d525bc63880d7a4b8d1668566b8a76daf1144c0bbe0f63472"}, + {file = "argcomplete-3.5.2.tar.gz", hash = "sha256:23146ed7ac4403b70bd6026402468942ceba34a6732255b9edf5b7354f68a6bb"}, ] [package.extras] @@ -67,32 +67,33 @@ wrapt = {version = ">=1.14,<2", markers = "python_version >= \"3.11\""} [[package]] name = "async-timeout" -version = "4.0.3" +version = "5.0.1" description = "Timeout context manager for asyncio programs" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, - {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, ] [[package]] name = "attrs" -version = "23.1.0" +version = "24.3.0" description = "Classes Without Boilerplate" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, - {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, + {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, + {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, ] [package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "autopep8" @@ -110,39 +111,40 @@ pycodestyle = ">=2.10.0" [[package]] name = "azure-core" -version = "1.28.0" +version = "1.32.0" description = "Microsoft Azure Core Library for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "azure-core-1.28.0.zip", hash = "sha256:e9eefc66fc1fde56dab6f04d4e5d12c60754d5a9fa49bdcfd8534fc96ed936bd"}, - {file = "azure_core-1.28.0-py3-none-any.whl", hash = "sha256:dec36dfc8eb0b052a853f30c07437effec2f9e3e1fc8f703d9bdaa5cfc0043d9"}, + {file = "azure_core-1.32.0-py3-none-any.whl", hash = "sha256:eac191a0efb23bfa83fddf321b27b122b4ec847befa3091fa736a5c32c50d7b4"}, + {file = "azure_core-1.32.0.tar.gz", hash = "sha256:22b3c35d6b2dae14990f6c1be2912bf23ffe50b220e708a28ab1bb92b1c730e5"}, ] [package.dependencies] -requests = ">=2.18.4" +requests = ">=2.21.0" six = ">=1.11.0" -typing-extensions = ">=4.3.0" +typing-extensions = ">=4.6.0" [package.extras] aio = ["aiohttp (>=3.0)"] [[package]] name = "azure-identity" -version = "1.16.1" +version = "1.19.0" description = "Microsoft Azure Identity Library for Python" optional = false python-versions = ">=3.8" files = [ - {file = "azure-identity-1.16.1.tar.gz", hash = "sha256:6d93f04468f240d59246d8afde3091494a5040d4f141cad0f49fc0c399d0d91e"}, - {file = "azure_identity-1.16.1-py3-none-any.whl", hash = "sha256:8fb07c25642cd4ac422559a8b50d3e77f73dcc2bbfaba419d06d6c9d7cff6726"}, + {file = "azure_identity-1.19.0-py3-none-any.whl", hash = "sha256:e3f6558c181692d7509f09de10cca527c7dce426776454fb97df512a46527e81"}, + {file = "azure_identity-1.19.0.tar.gz", hash = "sha256:500144dc18197d7019b81501165d4fa92225f03778f17d7ca8a2a180129a9c83"}, ] [package.dependencies] -azure-core = ">=1.23.0" +azure-core = ">=1.31.0" cryptography = ">=2.5" -msal = ">=1.24.0" -msal-extensions = ">=0.3.0" +msal = ">=1.30.0" +msal-extensions = ">=1.2.0" +typing-extensions = ">=4.0.0" [[package]] name = "backoff" @@ -201,17 +203,17 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "boto3" -version = "1.28.78" +version = "1.28.85" description = "The AWS SDK for Python" optional = false python-versions = ">= 3.7" files = [ - {file = "boto3-1.28.78-py3-none-any.whl", hash = "sha256:ff8df4bb5aeb69acc64959a74b31042bfc52d64ca77dbe845a72c8062c48d179"}, - {file = "boto3-1.28.78.tar.gz", hash = "sha256:aa970b1571321846543a6e615848352fe7621f1cb96b4454e919421924af95f7"}, + {file = "boto3-1.28.85-py3-none-any.whl", hash = "sha256:1fb7e7ba32a6701990168eb7a08e1fb624ae48130784dfab25904ed47deabb31"}, + {file = "boto3-1.28.85.tar.gz", hash = "sha256:96b4cb2708933cef7dbe1177df37ef0593839942978784147aade0e49511eb2b"}, ] [package.dependencies] -botocore = ">=1.31.78,<1.32.0" +botocore = ">=1.31.85,<1.32.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.7.0,<0.8.0" @@ -220,13 +222,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-stubs" -version = "1.35.76" -description = "Type annotations for boto3 1.35.76 generated with mypy-boto3-builder 8.5.0" +version = "1.35.82" +description = "Type annotations for boto3 1.35.82 generated with mypy-boto3-builder 8.6.3" optional = false python-versions = ">=3.8" files = [ - {file = "boto3_stubs-1.35.76-py3-none-any.whl", hash = "sha256:882f69f02cca48176fa3adf7f354fe64a65268423c9696871d0f4d098af35431"}, - {file = "boto3_stubs-1.35.76.tar.gz", hash = "sha256:32109b6a0c9720bf7c2e389655479c6dab4ee33c622e2cf2746c9e5ec527bae3"}, + {file = "boto3_stubs-1.35.82-py3-none-any.whl", hash = "sha256:c6fdac66202938bb2fe568d0c5287d9838ef161f4a2efeb584d8bb92c0a83c79"}, + {file = "boto3_stubs-1.35.82.tar.gz", hash = "sha256:2184a11bf011df3a079f7d28164838022601265a4a257d07e966d7c32cdb6ea1"}, ] [package.dependencies] @@ -281,7 +283,7 @@ bedrock-data-automation-runtime = ["mypy-boto3-bedrock-data-automation-runtime ( bedrock-runtime = ["mypy-boto3-bedrock-runtime (>=1.35.0,<1.36.0)"] billing = ["mypy-boto3-billing (>=1.35.0,<1.36.0)"] billingconductor = ["mypy-boto3-billingconductor (>=1.35.0,<1.36.0)"] -boto3 = ["boto3 (==1.35.76)", "botocore (==1.35.76)"] +boto3 = ["boto3 (==1.35.82)"] braket = ["mypy-boto3-braket (>=1.35.0,<1.36.0)"] budgets = ["mypy-boto3-budgets (>=1.35.0,<1.36.0)"] ce = ["mypy-boto3-ce (>=1.35.0,<1.36.0)"] @@ -392,7 +394,7 @@ forecastquery = ["mypy-boto3-forecastquery (>=1.35.0,<1.36.0)"] frauddetector = ["mypy-boto3-frauddetector (>=1.35.0,<1.36.0)"] freetier = ["mypy-boto3-freetier (>=1.35.0,<1.36.0)"] fsx = ["mypy-boto3-fsx (>=1.35.0,<1.36.0)"] -full = ["boto3-stubs-full"] +full = ["boto3-stubs-full (>=1.35.0,<1.36.0)"] gamelift = ["mypy-boto3-gamelift (>=1.35.0,<1.36.0)"] geo-maps = ["mypy-boto3-geo-maps (>=1.35.0,<1.36.0)"] geo-places = ["mypy-boto3-geo-places (>=1.35.0,<1.36.0)"] @@ -646,13 +648,13 @@ xray = ["mypy-boto3-xray (>=1.35.0,<1.36.0)"] [[package]] name = "botocore" -version = "1.31.78" +version = "1.31.85" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">= 3.7" files = [ - {file = "botocore-1.31.78-py3-none-any.whl", hash = "sha256:a9ca8deeb3f47a10a25637859fee8d81cac2db37ace819d24471279e44879547"}, - {file = "botocore-1.31.78.tar.gz", hash = "sha256:320c70bc412157813c2cf60217a592b4b345f8e97e4bf3b1ce49b6be69ed8965"}, + {file = "botocore-1.31.85-py3-none-any.whl", hash = "sha256:b8f35d65f2b45af50c36fc25cc1844d6bd61d38d2148b2ef133b8f10e198555d"}, + {file = "botocore-1.31.85.tar.gz", hash = "sha256:ce58e688222df73ec5691f934be1a2122a52c9d11d3037b586b3fff16ed6d25f"}, ] [package.dependencies] @@ -661,17 +663,17 @@ python-dateutil = ">=2.1,<3.0.0" urllib3 = {version = ">=1.25.4,<2.1", markers = "python_version >= \"3.10\""} [package.extras] -crt = ["awscrt (==0.16.26)"] +crt = ["awscrt (==0.19.12)"] [[package]] name = "botocore-stubs" -version = "1.35.76" +version = "1.35.82" description = "Type annotations and code completion for botocore" optional = false python-versions = ">=3.8" files = [ - {file = "botocore_stubs-1.35.76-py3-none-any.whl", hash = "sha256:617508d023e0bc98901e0189b794c4b3f289c1747c7cc410173ad698c819a716"}, - {file = "botocore_stubs-1.35.76.tar.gz", hash = "sha256:c977a049481d50a14bf2db0ef15020b76734ff628d4b8e0e77b8d1c65318369e"}, + {file = "botocore_stubs-1.35.82-py3-none-any.whl", hash = "sha256:16883fc15998c9246114cd86e0fa74f57623ddd21464046fa0add0e9b85beef9"}, + {file = "botocore_stubs-1.35.82.tar.gz", hash = "sha256:4c365e6cdcad1cfb7e97affc0c6e6a4d04750db22931f2dbc71fcd89bcd28f82"}, ] [package.dependencies] @@ -682,97 +684,100 @@ botocore = ["botocore"] [[package]] name = "cachetools" -version = "5.3.1" +version = "5.5.0" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.7" files = [ - {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, - {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, + {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, + {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, ] [[package]] name = "certifi" -version = "2024.7.4" +version = "2024.12.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] [[package]] name = "cffi" -version = "1.15.1" +version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] [package.dependencies] @@ -780,23 +785,23 @@ pycparser = "*" [[package]] name = "cfgv" -version = "3.3.1" +version = "3.4.0" description = "Validate configuration and produce human readable error messages." optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8" files = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, ] [[package]] name = "chargebee" -version = "2.37.1" +version = "2.47.2" description = "Python wrapper for the ChargeBee Subscription Billing API" optional = false python-versions = "*" files = [ - {file = "chargebee-2.37.1.tar.gz", hash = "sha256:14e53268dc434fe1d065fd5067e69e99f045dbd84a762016fb9c9d7734b740ce"}, + {file = "chargebee-2.47.2.tar.gz", hash = "sha256:49a0a639e37c98fa879e9d324b3930de128a56f2bedaea0346a9f39c29afea5a"}, ] [package.dependencies] @@ -804,97 +809,127 @@ requests = "*" [[package]] name = "charset-normalizer" -version = "3.2.0" +version = "3.4.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, + {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, + {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, ] [[package]] name = "click" -version = "8.1.6" +version = "8.1.7" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.6-py3-none-any.whl", hash = "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5"}, - {file = "click-8.1.6.tar.gz", hash = "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -944,63 +979,73 @@ jinja2 = "*" [[package]] name = "coverage" -version = "7.4.4" +version = "7.6.9" description = "Code coverage measurement for Python" optional = false -python-versions = ">=3.8" -files = [ - {file = "coverage-7.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0be5efd5127542ef31f165de269f77560d6cdef525fffa446de6f7e9186cfb2"}, - {file = "coverage-7.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ccd341521be3d1b3daeb41960ae94a5e87abe2f46f17224ba5d6f2b8398016cf"}, - {file = "coverage-7.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fa497a8ab37784fbb20ab699c246053ac294d13fc7eb40ec007a5043ec91f8"}, - {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1a93009cb80730c9bca5d6d4665494b725b6e8e157c1cb7f2db5b4b122ea562"}, - {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:690db6517f09336559dc0b5f55342df62370a48f5469fabf502db2c6d1cffcd2"}, - {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:09c3255458533cb76ef55da8cc49ffab9e33f083739c8bd4f58e79fecfe288f7"}, - {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8ce1415194b4a6bd0cdcc3a1dfbf58b63f910dcb7330fe15bdff542c56949f87"}, - {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b91cbc4b195444e7e258ba27ac33769c41b94967919f10037e6355e998af255c"}, - {file = "coverage-7.4.4-cp310-cp310-win32.whl", hash = "sha256:598825b51b81c808cb6f078dcb972f96af96b078faa47af7dfcdf282835baa8d"}, - {file = "coverage-7.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:09ef9199ed6653989ebbcaacc9b62b514bb63ea2f90256e71fea3ed74bd8ff6f"}, - {file = "coverage-7.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f9f50e7ef2a71e2fae92774c99170eb8304e3fdf9c8c3c7ae9bab3e7229c5cf"}, - {file = "coverage-7.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:623512f8ba53c422fcfb2ce68362c97945095b864cda94a92edbaf5994201083"}, - {file = "coverage-7.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0513b9508b93da4e1716744ef6ebc507aff016ba115ffe8ecff744d1322a7b63"}, - {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40209e141059b9370a2657c9b15607815359ab3ef9918f0196b6fccce8d3230f"}, - {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a2b2b78c78293782fd3767d53e6474582f62443d0504b1554370bde86cc8227"}, - {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:73bfb9c09951125d06ee473bed216e2c3742f530fc5acc1383883125de76d9cd"}, - {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f384c3cc76aeedce208643697fb3e8437604b512255de6d18dae3f27655a384"}, - {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54eb8d1bf7cacfbf2a3186019bcf01d11c666bd495ed18717162f7eb1e9dd00b"}, - {file = "coverage-7.4.4-cp311-cp311-win32.whl", hash = "sha256:cac99918c7bba15302a2d81f0312c08054a3359eaa1929c7e4b26ebe41e9b286"}, - {file = "coverage-7.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:b14706df8b2de49869ae03a5ccbc211f4041750cd4a66f698df89d44f4bd30ec"}, - {file = "coverage-7.4.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:201bef2eea65e0e9c56343115ba3814e896afe6d36ffd37bab783261db430f76"}, - {file = "coverage-7.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41c9c5f3de16b903b610d09650e5e27adbfa7f500302718c9ffd1c12cf9d6818"}, - {file = "coverage-7.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d898fe162d26929b5960e4e138651f7427048e72c853607f2b200909794ed978"}, - {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ea79bb50e805cd6ac058dfa3b5c8f6c040cb87fe83de10845857f5535d1db70"}, - {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce4b94265ca988c3f8e479e741693d143026632672e3ff924f25fab50518dd51"}, - {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00838a35b882694afda09f85e469c96367daa3f3f2b097d846a7216993d37f4c"}, - {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fdfafb32984684eb03c2d83e1e51f64f0906b11e64482df3c5db936ce3839d48"}, - {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:69eb372f7e2ece89f14751fbcbe470295d73ed41ecd37ca36ed2eb47512a6ab9"}, - {file = "coverage-7.4.4-cp312-cp312-win32.whl", hash = "sha256:137eb07173141545e07403cca94ab625cc1cc6bc4c1e97b6e3846270e7e1fea0"}, - {file = "coverage-7.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:d71eec7d83298f1af3326ce0ff1d0ea83c7cb98f72b577097f9083b20bdaf05e"}, - {file = "coverage-7.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ae728ff3b5401cc320d792866987e7e7e880e6ebd24433b70a33b643bb0384"}, - {file = "coverage-7.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc4f1358cb0c78edef3ed237ef2c86056206bb8d9140e73b6b89fbcfcbdd40e1"}, - {file = "coverage-7.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8130a2aa2acb8788e0b56938786c33c7c98562697bf9f4c7d6e8e5e3a0501e4a"}, - {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf271892d13e43bc2b51e6908ec9a6a5094a4df1d8af0bfc360088ee6c684409"}, - {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4cdc86d54b5da0df6d3d3a2f0b710949286094c3a6700c21e9015932b81447e"}, - {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ae71e7ddb7a413dd60052e90528f2f65270aad4b509563af6d03d53e979feafd"}, - {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:38dd60d7bf242c4ed5b38e094baf6401faa114fc09e9e6632374388a404f98e7"}, - {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa5b1c1bfc28384f1f53b69a023d789f72b2e0ab1b3787aae16992a7ca21056c"}, - {file = "coverage-7.4.4-cp38-cp38-win32.whl", hash = "sha256:dfa8fe35a0bb90382837b238fff375de15f0dcdb9ae68ff85f7a63649c98527e"}, - {file = "coverage-7.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:b2991665420a803495e0b90a79233c1433d6ed77ef282e8e152a324bbbc5e0c8"}, - {file = "coverage-7.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b799445b9f7ee8bf299cfaed6f5b226c0037b74886a4e11515e569b36fe310d"}, - {file = "coverage-7.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b4d33f418f46362995f1e9d4f3a35a1b6322cb959c31d88ae56b0298e1c22357"}, - {file = "coverage-7.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aadacf9a2f407a4688d700e4ebab33a7e2e408f2ca04dbf4aef17585389eff3e"}, - {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c95949560050d04d46b919301826525597f07b33beba6187d04fa64d47ac82e"}, - {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff7687ca3d7028d8a5f0ebae95a6e4827c5616b31a4ee1192bdfde697db110d4"}, - {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5fc1de20b2d4a061b3df27ab9b7c7111e9a710f10dc2b84d33a4ab25065994ec"}, - {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c74880fc64d4958159fbd537a091d2a585448a8f8508bf248d72112723974cbd"}, - {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:742a76a12aa45b44d236815d282b03cfb1de3b4323f3e4ec933acfae08e54ade"}, - {file = "coverage-7.4.4-cp39-cp39-win32.whl", hash = "sha256:d89d7b2974cae412400e88f35d86af72208e1ede1a541954af5d944a8ba46c57"}, - {file = "coverage-7.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:9ca28a302acb19b6af89e90f33ee3e1906961f94b54ea37de6737b7ca9d8827c"}, - {file = "coverage-7.4.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:b2c5edc4ac10a7ef6605a966c58929ec6c1bd0917fb8c15cb3363f65aa40e677"}, - {file = "coverage-7.4.4.tar.gz", hash = "sha256:c901df83d097649e257e803be22592aedfd5182f07b3cc87d640bbb9afd50f49"}, +python-versions = ">=3.9" +files = [ + {file = "coverage-7.6.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85d9636f72e8991a1706b2b55b06c27545448baf9f6dbf51c4004609aacd7dcb"}, + {file = "coverage-7.6.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:608a7fd78c67bee8936378299a6cb9f5149bb80238c7a566fc3e6717a4e68710"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96d636c77af18b5cb664ddf12dab9b15a0cfe9c0bde715da38698c8cea748bfa"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cded8a3cff93da9edc31446872d2997e327921d8eed86641efafd350e1df1"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7b15f589593110ae767ce997775d645b47e5cbbf54fd322f8ebea6277466cec"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:44349150f6811b44b25574839b39ae35291f6496eb795b7366fef3bd3cf112d3"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d891c136b5b310d0e702e186d70cd16d1119ea8927347045124cb286b29297e5"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:db1dab894cc139f67822a92910466531de5ea6034ddfd2b11c0d4c6257168073"}, + {file = "coverage-7.6.9-cp310-cp310-win32.whl", hash = "sha256:41ff7b0da5af71a51b53f501a3bac65fb0ec311ebed1632e58fc6107f03b9198"}, + {file = "coverage-7.6.9-cp310-cp310-win_amd64.whl", hash = "sha256:35371f8438028fdccfaf3570b31d98e8d9eda8bb1d6ab9473f5a390969e98717"}, + {file = "coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9"}, + {file = "coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3"}, + {file = "coverage-7.6.9-cp311-cp311-win32.whl", hash = "sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0"}, + {file = "coverage-7.6.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b"}, + {file = "coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8"}, + {file = "coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f"}, + {file = "coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692"}, + {file = "coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97"}, + {file = "coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664"}, + {file = "coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb"}, + {file = "coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba"}, + {file = "coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1"}, + {file = "coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419"}, + {file = "coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9"}, + {file = "coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b"}, + {file = "coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611"}, + {file = "coverage-7.6.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:adb697c0bd35100dc690de83154627fbab1f4f3c0386df266dded865fc50a902"}, + {file = "coverage-7.6.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:be57b6d56e49c2739cdf776839a92330e933dd5e5d929966fbbd380c77f060be"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1592791f8204ae9166de22ba7e6705fa4ebd02936c09436a1bb85aabca3e599"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e12ae8cc979cf83d258acb5e1f1cf2f3f83524d1564a49d20b8bec14b637f08"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5555cff66c4d3d6213a296b360f9e1a8e323e74e0426b6c10ed7f4d021e464"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9389a429e0e5142e69d5bf4a435dd688c14478a19bb901735cdf75e57b13845"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:592ac539812e9b46046620341498caf09ca21023c41c893e1eb9dbda00a70cbf"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a27801adef24cc30871da98a105f77995e13a25a505a0161911f6aafbd66e678"}, + {file = "coverage-7.6.9-cp39-cp39-win32.whl", hash = "sha256:8e3c3e38930cfb729cb8137d7f055e5a473ddaf1217966aa6238c88bd9fd50e6"}, + {file = "coverage-7.6.9-cp39-cp39-win_amd64.whl", hash = "sha256:e28bf44afa2b187cc9f41749138a64435bf340adfcacb5b2290c070ce99839d4"}, + {file = "coverage-7.6.9-pp39.pp310-none-any.whl", hash = "sha256:f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b"}, + {file = "coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d"}, ] [package.extras] @@ -1008,62 +1053,62 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "43.0.3" +version = "44.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, - {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, - {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, - {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, - {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, - {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, - {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +python-versions = "!=3.9.0,!=3.9.1,>=3.7" +files = [ + {file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"}, + {file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"}, + {file = "cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd"}, + {file = "cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"}, + {file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"}, + {file = "cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c"}, + {file = "cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02"}, ] [package.dependencies] cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -nox = ["nox"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] -sdist = ["build"] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"] +docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"] +nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"] +pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] +sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi (>=2024)", "cryptography-vectors (==44.0.0)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] test-randomorder = ["pytest-randomly"] [[package]] name = "datamodel-code-generator" -version = "0.25.8" +version = "0.25.9" description = "Datamodel Code Generator" optional = false python-versions = "<4.0,>=3.7" files = [ - {file = "datamodel_code_generator-0.25.8-py3-none-any.whl", hash = "sha256:f9b216efad84d8dcb517273d2728875b6052b7e8dc4e5c13a597441cef236f6e"}, - {file = "datamodel_code_generator-0.25.8.tar.gz", hash = "sha256:b7838122b8133dae6e46f36a1cf25c0ccc66745da057988f490d00ab71121de7"}, + {file = "datamodel_code_generator-0.25.9-py3-none-any.whl", hash = "sha256:9e0324233123d6e39a35bc0004771956935889a974aacfd7a0651de11d2219a9"}, + {file = "datamodel_code_generator-0.25.9.tar.gz", hash = "sha256:65ca9807d8edbd88a7f7931c10f4bc1c08bd9bbc5bb0508418a2b6a16590eb65"}, ] [package.dependencies] @@ -1099,20 +1144,20 @@ files = [ [[package]] name = "deprecated" -version = "1.2.14" +version = "1.2.15" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ - {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"}, - {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"}, + {file = "Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320"}, + {file = "deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d"}, ] [package.dependencies] wrapt = ">=1.10,<2" [package.extras] -dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "jinja2 (>=3.0.3,<3.1.0)", "setuptools", "sphinx (<2)", "tox"] [[package]] name = "deprecation" @@ -1130,13 +1175,13 @@ packaging = "*" [[package]] name = "dill" -version = "0.3.8" +version = "0.3.9" description = "serialize all of Python" optional = false python-versions = ">=3.8" files = [ - {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, - {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, + {file = "dill-0.3.9-py3-none-any.whl", hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a"}, + {file = "dill-0.3.9.tar.gz", hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c"}, ] [package.extras] @@ -1145,13 +1190,13 @@ profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "distlib" -version = "0.3.7" +version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] [[package]] @@ -1286,13 +1331,13 @@ Django = ">=2.2" [[package]] name = "django-health-check" -version = "3.18.2" +version = "3.18.3" description = "Run checks on services like databases, queue servers, celery processes, etc." optional = false python-versions = ">=3.8" files = [ - {file = "django_health_check-3.18.2-py2.py3-none-any.whl", hash = "sha256:16f9c9186236cbc2858fa0d0ecc3566ba2ad2b72683e5678d0d58eb9e8bbba1a"}, - {file = "django_health_check-3.18.2.tar.gz", hash = "sha256:21235120f8d756fa75ba430d0b0dbb04620fbd7bfac92ed6a0b911915ba38918"}, + {file = "django_health_check-3.18.3-py2.py3-none-any.whl", hash = "sha256:f5f58762b80bdf7b12fad724761993d6e83540f97e2c95c42978f187e452fa07"}, + {file = "django_health_check-3.18.3.tar.gz", hash = "sha256:18b75daca4551c69a43f804f9e41e23f5f5fb9efd06cf6a313b3d5031bb87bd0"}, ] [package.dependencies] @@ -1304,23 +1349,26 @@ test = ["boto3", "celery", "django-storages", "pytest", "pytest-cov", "pytest-dj [[package]] name = "django-ipware" -version = "5.0.0" +version = "7.0.1" description = "A Django application to retrieve user's IP address" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "django-ipware-5.0.0.tar.gz", hash = "sha256:4fa5607ee85e12ee5e158bc7569ff1e134fb1579681aa1ff3f0ed04be21be153"}, - {file = "django_ipware-5.0.0-py2.py3-none-any.whl", hash = "sha256:80b52a3f571a371519cc552798f1015b934dd5dd7738bfad87e101e861bd21b8"}, + {file = "django-ipware-7.0.1.tar.gz", hash = "sha256:d9ec43d2bf7cdf216fed8d494a084deb5761a54860a53b2e74346a4f384cff47"}, + {file = "django_ipware-7.0.1-py2.py3-none-any.whl", hash = "sha256:db16bbee920f661ae7f678e4270460c85850f03c6761a4eaeb489bdc91f64709"}, ] +[package.dependencies] +python-ipware = ">=2.0.3" + [[package]] name = "django-lifecycle" -version = "1.0.0" +version = "1.0.2" description = "Declarative model lifecycle hooks." optional = false python-versions = "*" files = [ - {file = "django-lifecycle-1.0.0.tar.gz", hash = "sha256:136c48e65d439cc34a6cb9a10d6d17611a9a5223f8249ee9c190ca5c7a67e9c1"}, + {file = "django-lifecycle-1.0.2.tar.gz", hash = "sha256:c5cb6127d15f5fa59a083f22accae189527a94b16057c56537e762ac4f3044c3"}, ] [package.dependencies] @@ -1355,13 +1403,13 @@ files = [ [[package]] name = "django-python3-ldap" -version = "0.15.6" +version = "0.15.8" description = "Django LDAP user authentication backend for Python 3." optional = false python-versions = "*" files = [ - {file = "django-python3-ldap-0.15.6.tar.gz", hash = "sha256:780ac3a2d20de17857990dd0a1bdb8f899855a59725c23638fd07f349439f588"}, - {file = "django_python3_ldap-0.15.6-py3-none-any.whl", hash = "sha256:04f59c25d76265e8f112d0563928877c5b08fa3422c4afea34912f02473e7fcb"}, + {file = "django_python3_ldap-0.15.8-py3-none-any.whl", hash = "sha256:bfd91dcb446c2cca33da195ed14d29513b2aba06f1d8ac2ef83009fa5826b518"}, + {file = "django_python3_ldap-0.15.8.tar.gz", hash = "sha256:5ca7800d02a3f25b1fd270a71ecf63cde4384c73b1982908e5e7aad6e37ea5ec"}, ] [package.dependencies] @@ -1389,13 +1437,13 @@ hiredis = ["redis[hiredis] (>=3,!=4.0.0,!=4.0.1)"] [[package]] name = "django-ses" -version = "3.5.0" -description = "A Django email backend for Amazon's Simple Email Service" +version = "3.5.2" +description = "A Django email backend for Amazon's Simple Email Service (SES)" optional = false -python-versions = ">=3.7,<4.0" +python-versions = ">=3.8,<4.0" files = [ - {file = "django_ses-3.5.0-py3-none-any.whl", hash = "sha256:3522fe531155eb06bb015b3b36324c059194450633b33f9bd5bc9d1328822fe2"}, - {file = "django_ses-3.5.0.tar.gz", hash = "sha256:dc1644f50608fbf3a64f085a371c61d56d68eba3c5efa69651f13dc3ba05049d"}, + {file = "django_ses-3.5.2-py3-none-any.whl", hash = "sha256:90c68cc6ca3467893faa8499981c81ba8ff2bd3f3acb08c06423a4142d6a0fc6"}, + {file = "django_ses-3.5.2.tar.gz", hash = "sha256:b6d94689bc15de02a11e84f05a5bf4a7895688e570c6f07c21698094debc6ced"}, ] [package.dependencies] @@ -1630,13 +1678,13 @@ markdown = ["types-Markdown (>=0.1.5)"] [[package]] name = "djoser" -version = "2.2.2" +version = "2.2.3" description = "REST implementation of Django authentication system." optional = false -python-versions = ">=3.8,<4.0" +python-versions = "<4.0,>=3.8" files = [ - {file = "djoser-2.2.2-py3-none-any.whl", hash = "sha256:efb91ad61e4d5b8d664db029b5947df9d34078289ef2680a1ab665e047144b74"}, - {file = "djoser-2.2.2.tar.gz", hash = "sha256:9deb831a1c8781ceff325699e1407b4e1be8b4588e87071621d88ba31c09349f"}, + {file = "djoser-2.2.3-py3-none-any.whl", hash = "sha256:1325e5c1ee3233560e3737fc8fe2ab4b014c5adb98a01682f30ef250aaabafba"}, + {file = "djoser-2.2.3.tar.gz", hash = "sha256:28545bfb15096dd26e0d74b49b4dd267c0a8d5f9d562225ecc60c83289799131"}, ] [package.dependencies] @@ -1651,21 +1699,21 @@ webauthn = ["webauthn (<1.0)"] [[package]] name = "dnspython" -version = "2.6.1" +version = "2.7.0" description = "DNS toolkit" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, - {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, + {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, + {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, ] [package.extras] -dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "sphinx (>=7.2.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] -dnssec = ["cryptography (>=41)"] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=43)"] doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] -doq = ["aioquic (>=0.9.25)"] -idna = ["idna (>=3.6)"] +doq = ["aioquic (>=1.0.0)"] +idna = ["idna (>=3.7)"] trio = ["trio (>=0.23)"] wmi = ["wmi (>=1.5.1)"] @@ -1696,13 +1744,13 @@ files = [ [[package]] name = "drf-yasg" -version = "1.21.7" +version = "1.21.8" description = "Automated generation of real Swagger/OpenAPI 2.0 schemas from Django Rest Framework code." optional = false python-versions = ">=3.6" files = [ - {file = "drf-yasg-1.21.7.tar.gz", hash = "sha256:4c3b93068b3dfca6969ab111155e4dd6f7b2d680b98778de8fd460b7837bdb0d"}, - {file = "drf_yasg-1.21.7-py3-none-any.whl", hash = "sha256:f85642072c35e684356475781b7ecf5d218fff2c6185c040664dd49f0a4be181"}, + {file = "drf-yasg-1.21.8.tar.gz", hash = "sha256:cbb7f81c3d140f2207392b4bc5dde65384eeb58e1b7eea1a6d641dec2f7352a9"}, + {file = "drf_yasg-1.21.8-py3-none-any.whl", hash = "sha256:a410b235e7cc2c0f6b9d4f671e8efe6f2d27cba398fbd16064e16ef814998444"}, ] [package.dependencies] @@ -1720,27 +1768,27 @@ validation = ["swagger-spec-validator (>=2.1.0)"] [[package]] name = "elementpath" -version = "4.1.5" +version = "4.6.0" description = "XPath 1.0/2.0/3.0/3.1 parsers and selectors for ElementTree and lxml" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "elementpath-4.1.5-py3-none-any.whl", hash = "sha256:2ac1a2fb31eb22bbbf817f8cf6752f844513216263f0e3892c8e79782fe4bb55"}, - {file = "elementpath-4.1.5.tar.gz", hash = "sha256:c2d6dc524b29ef751ecfc416b0627668119d8812441c555d7471da41d4bacb8d"}, + {file = "elementpath-4.6.0-py3-none-any.whl", hash = "sha256:e578677f19ccc6ff374c4477c687c547ecbaf7b478d98abb951b7b4b45260a17"}, + {file = "elementpath-4.6.0.tar.gz", hash = "sha256:ba46bf07f66774927727ade55022b6c435fac06b2523cb3cd7689a1884d33468"}, ] [package.extras] -dev = ["Sphinx", "coverage", "flake8", "lxml", "lxml-stubs", "memory-profiler", "memray", "mypy", "tox", "xmlschema (>=2.0.0)"] +dev = ["Sphinx", "coverage", "flake8", "lxml", "lxml-stubs", "memory-profiler", "memray", "mypy", "tox", "xmlschema (>=3.3.2)"] [[package]] name = "email-validator" -version = "2.0.0.post2" +version = "2.2.0" description = "A robust email address syntax and deliverability validation library." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "email_validator-2.0.0.post2-py3-none-any.whl", hash = "sha256:2466ba57cda361fb7309fd3d5a225723c788ca4bbad32a0ebd5373b99730285c"}, - {file = "email_validator-2.0.0.post2.tar.gz", hash = "sha256:1ff6e86044200c56ae23595695c54e9614f4a9551e0e393614f764860b3d7900"}, + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, ] [package.dependencies] @@ -1799,34 +1847,35 @@ pyrepl = ">=0.8.2" [[package]] name = "filelock" -version = "3.12.2" +version = "3.16.1" description = "A platform independent file lock." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, - {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, ] [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "flagsmith" -version = "3.6.0" +version = "3.8.0" description = "Flagsmith Python SDK" optional = false -python-versions = ">=3.8.1,<4" +python-versions = "<4,>=3.8.1" files = [ - {file = "flagsmith-3.6.0.tar.gz", hash = "sha256:b189bea8def2a01f2fc2c53a71dcf917ed088a68d8478f7aed4575c488782632"}, + {file = "flagsmith-3.8.0.tar.gz", hash = "sha256:0ed401d32978632e9ea156418f7e479bdae8bd879354164d667721ece972d878"}, ] [package.dependencies] flagsmith-flag-engine = ">=5.1.0,<6.0.0" -pytz = ">=2023.4,<2024.0" -requests = ">=2.27.1,<3.0.0" -requests-futures = ">=1.0.0,<2.0.0" +pydantic = ">=2,<3" +requests = ">=2.32.3,<3.0.0" +requests-futures = ">=1.0.1,<2.0.0" sseclient-py = ">=1.8.0,<2.0.0" [[package]] @@ -1845,7 +1894,7 @@ django-multiselectfield = "0.1.12" type = "git" url = "https://github.com/flagsmith/flagsmith-auth-controller" reference = "v0.1.3" -resolved_reference = "303954ba54fd2f402c75806b3b9ba7f2d42aa426" +resolved_reference = "b1d3a01edf90c9fb11c4e57aae40206c4ed67a4c" [[package]] name = "flagsmith-common" @@ -1928,13 +1977,13 @@ resolved_reference = "1424d95cbadd18dfc57debbdf0ea2d3d13ea1446" [[package]] name = "freezegun" -version = "1.2.2" +version = "1.5.1" description = "Let your Python tests travel through time" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "freezegun-1.2.2-py3-none-any.whl", hash = "sha256:ea1b963b993cb9ea195adbd893a48d573fda951b0da64f60883d7e988b606c9f"}, - {file = "freezegun-1.2.2.tar.gz", hash = "sha256:cd22d1ba06941384410cd967d8a99d5ae2442f57dfafeff2fda5de8dc5c05446"}, + {file = "freezegun-1.5.1-py3-none-any.whl", hash = "sha256:bf111d7138a8abe55ab48a71755673dbaa4ab87f4cff5634a4442dfec34c15f1"}, + {file = "freezegun-1.5.1.tar.gz", hash = "sha256:b29dedfcda6d5e8e083ce71b2b542753ad48cfec44037b3fc79702e2980a89e9"}, ] [package.dependencies] @@ -1942,32 +1991,35 @@ python-dateutil = ">=2.7" [[package]] name = "genson" -version = "1.2.2" +version = "1.3.0" description = "GenSON is a powerful, user-friendly JSON Schema generator." optional = false python-versions = "*" files = [ - {file = "genson-1.2.2.tar.gz", hash = "sha256:8caf69aa10af7aee0e1a1351d1d06801f4696e005f06cedef438635384346a16"}, + {file = "genson-1.3.0-py3-none-any.whl", hash = "sha256:468feccd00274cc7e4c09e84b08704270ba8d95232aa280f65b986139cec67f7"}, + {file = "genson-1.3.0.tar.gz", hash = "sha256:e02db9ac2e3fd29e65b5286f7135762e2cd8a986537c075b06fc5f1517308e37"}, ] [[package]] name = "google-api-core" -version = "2.11.1" +version = "2.24.0" description = "Google API client core library" optional = false python-versions = ">=3.7" files = [ - {file = "google-api-core-2.11.1.tar.gz", hash = "sha256:25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a"}, - {file = "google_api_core-2.11.1-py3-none-any.whl", hash = "sha256:d92a5a92dc36dd4f4b9ee4e55528a90e432b059f93aee6ad857f9de8cc7ae94a"}, + {file = "google_api_core-2.24.0-py3-none-any.whl", hash = "sha256:10d82ac0fca69c82a25b3efdeefccf6f28e02ebb97925a8cce8edbfe379929d9"}, + {file = "google_api_core-2.24.0.tar.gz", hash = "sha256:e255640547a597a4da010876d333208ddac417d60add22b6851a0c66a831fcaf"}, ] [package.dependencies] google-auth = ">=2.14.1,<3.0.dev0" googleapis-common-protos = ">=1.56.2,<2.0.dev0" -protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" +proto-plus = ">=1.22.3,<2.0.0dev" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0" requests = ">=2.18.0,<3.0.0.dev0" [package.extras] +async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.dev0)"] grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0)"] grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] @@ -1993,374 +2045,116 @@ uritemplate = ">=3.0.0,<4dev" [[package]] name = "google-auth" -version = "2.22.0" +version = "2.37.0" description = "Google Authentication Library" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "google-auth-2.22.0.tar.gz", hash = "sha256:164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce"}, - {file = "google_auth-2.22.0-py2.py3-none-any.whl", hash = "sha256:d61d1b40897407b574da67da1a833bdc10d5a11642566e506565d1b1a46ba873"}, + {file = "google_auth-2.37.0-py2.py3-none-any.whl", hash = "sha256:42664f18290a6be591be5329a96fe30184be1a1badb7292a7f686a9659de9ca0"}, + {file = "google_auth-2.37.0.tar.gz", hash = "sha256:0054623abf1f9c83492c63d3f47e77f0a544caa3d40b2d98e099a611c2dd5d00"}, ] [package.dependencies] cachetools = ">=2.0.0,<6.0" pyasn1-modules = ">=0.2.1" rsa = ">=3.1.4,<5" -six = ">=1.9.0" -urllib3 = "<2.0" [package.extras] aiohttp = ["aiohttp (>=3.6.2,<4.0.0.dev0)", "requests (>=2.20.0,<3.0.0.dev0)"] -enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"] +enterprise-cert = ["cryptography", "pyopenssl"] +pyjwt = ["cryptography (>=38.0.3)", "pyjwt (>=2.0)"] pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] reauth = ["pyu2f (>=0.1.5)"] requests = ["requests (>=2.20.0,<3.0.0.dev0)"] [[package]] name = "google-auth-httplib2" -version = "0.1.0" +version = "0.2.0" description = "Google Authentication Library: httplib2 transport" optional = false python-versions = "*" files = [ - {file = "google-auth-httplib2-0.1.0.tar.gz", hash = "sha256:a07c39fd632becacd3f07718dfd6021bf396978f03ad3ce4321d060015cc30ac"}, - {file = "google_auth_httplib2-0.1.0-py2.py3-none-any.whl", hash = "sha256:31e49c36c6b5643b57e82617cb3e021e3e1d2df9da63af67252c02fa9c1f4a10"}, + {file = "google-auth-httplib2-0.2.0.tar.gz", hash = "sha256:38aa7badf48f974f1eb9861794e9c0cb2a0511a4ec0679b1f886d108f5640e05"}, + {file = "google_auth_httplib2-0.2.0-py2.py3-none-any.whl", hash = "sha256:b65a0a2123300dd71281a7bf6e64d65a0759287df52729bdd1ae2e47dc311a3d"}, ] [package.dependencies] google-auth = "*" -httplib2 = ">=0.15.0" -six = "*" +httplib2 = ">=0.19.0" [[package]] name = "google-re2" -version = "1.1" +version = "1.1.20240702" description = "RE2 Python bindings" optional = false python-versions = "~=3.8" files = [ - {file = "google-re2-1.1.tar.gz", hash = "sha256:d3a9467ee52b46ac77ca928f6d0cbeaccfd92f03ca0f0f65b9df6a95184f3a1c"}, - {file = "google_re2-1.1-1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:874d2e36dfa506b03d4f9c4aef1701a65304f4004c96c7edac7d8aea08fe193e"}, - {file = "google_re2-1.1-1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b66eb84850afdce09aabca40bcd6f2a0e96178a1b4990d555678edb1f59bf255"}, - {file = "google_re2-1.1-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:c461640a07db26dc2b51f43de607b7520e7debaf4f6a000f796a3c0196ca52af"}, - {file = "google_re2-1.1-1-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:7f9ba69eaee6e7a9f5ddfb919bf1a866af14a18b26a179e3fb1a6fe3d0cbf349"}, - {file = "google_re2-1.1-1-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:f95cf16739cc3ea63728366881221b119f2322b4b739b7da6522d45a68792cea"}, - {file = "google_re2-1.1-1-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:9fb56a41250191298e6a2859b0fdea1e83330c9870fe8d84e5836c506ae46e96"}, - {file = "google_re2-1.1-1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb22ea995564d87baf4a4bfbb3ca024be913683a710f4f0dc9c94dc663afab20"}, - {file = "google_re2-1.1-1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:19b3f0bfbb2a2ca58ed0aaa9356d07a5c0921383a6dbeca086b2b74472f5ee08"}, - {file = "google_re2-1.1-1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:34fd7f97b84af7453cf05b25adfe2491ba3cef1ca548ac2907efa63d3510954d"}, - {file = "google_re2-1.1-1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e029664192d8d30f7c977706183ef483e82ca239302272df74e01d2e22897ca"}, - {file = "google_re2-1.1-1-cp310-cp310-win32.whl", hash = "sha256:41a8f222f9839d059d37efd28e4deec203502d7e39c3759d83d6a33deadf1d2e"}, - {file = "google_re2-1.1-1-cp310-cp310-win_amd64.whl", hash = "sha256:6141d569fdf72aa693f040ba05c469036587395af07ff419b9a3c009d6ffefd3"}, - {file = "google_re2-1.1-1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2d03f6aaf22788ba13a770f0d183b8eebe55545bcbb6e4c41dcccac7ded014d"}, - {file = "google_re2-1.1-1-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:a98f15fd9c31bf80d368698447191a2e9703880b305dbf34d9a63ce634b8a557"}, - {file = "google_re2-1.1-1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:42128916cc2966623832aabbd224c88e862d1c531d6bc49ab141f565e6321a90"}, - {file = "google_re2-1.1-1-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:6e27986a166903ad7000635f6faed8ab5072d687f822ac9f692c40b2470aebcf"}, - {file = "google_re2-1.1-1-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:5e9edcd743a830d0c0b2729201e42ab86fceef8f4086df65563f482e4544359e"}, - {file = "google_re2-1.1-1-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:d33145bbfd32e916f1c911cd9225be5364a36c3959742a0cc4dfc0692d6a2a5e"}, - {file = "google_re2-1.1-1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8b27cc2544b69a357ab2a749dc0c13a1b9055198c56f4c2c3b0f61d693f8e203"}, - {file = "google_re2-1.1-1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3cdf8982b6def987e95b37984d0c1c878de32635dd78acde3273f730b69708c9"}, - {file = "google_re2-1.1-1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:71ac661a7365e134741fe5542f13d7ce1e6187446b96ddee4c8b7d153fc8f05a"}, - {file = "google_re2-1.1-1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:35a902ba31a71a3e9e114e44473624d9aa9f9b85ec981bfa91671aefe0ef1a6c"}, - {file = "google_re2-1.1-1-cp311-cp311-win32.whl", hash = "sha256:9469f26b485da2784c658e687a766c72e1a17b1e63b3ed24b5f64c3d19fbae3d"}, - {file = "google_re2-1.1-1-cp311-cp311-win_amd64.whl", hash = "sha256:07dd0780240ee431781119b46c3bbf76f5cef24a2cbb542f6a08c643e0a68d98"}, - {file = "google_re2-1.1-1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9857dc4d69b8025057c8129e98406a24d51bdaf1b96e481dbba7e69e0ec85104"}, - {file = "google_re2-1.1-1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:a6eaaa5f200022eb0bdded5949c91454fc96e1edd6f9e9a96dd1dc32c821c00e"}, - {file = "google_re2-1.1-1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a32bb2afe128d90b8edc20d4f7d297f7e2753206eba92937a57e5280736eac74"}, - {file = "google_re2-1.1-1-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:4f2754616c61b76ab4e5a4f39892a52a00897203b859c5abd7e3c630dd883cda"}, - {file = "google_re2-1.1-1-cp38-cp38-macosx_13_0_arm64.whl", hash = "sha256:b110f3d657e8f67a43a699d327ce47095b80180ea1118e2de44cb5c7002503d9"}, - {file = "google_re2-1.1-1-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:fd62ba2853eef65e249a9c4437a9ecac568222062bc956f0c61a3d1151a6271b"}, - {file = "google_re2-1.1-1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:23b50eb74dc3e1d480b04b987c61242df5dade50d08bc16e25eb3582b83fca80"}, - {file = "google_re2-1.1-1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e1bde89855dd5ab0811187d21eec149975510c80e865c771c883524a452445e7"}, - {file = "google_re2-1.1-1-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10c6cddc720151a509beb98ab310fa0cc8bcb265f83518ebf831de2c9ff73af0"}, - {file = "google_re2-1.1-1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bea09c5e8401ec50b8f211bc820ec2f0ca5e744ac67431a1b39bdacbd266553"}, - {file = "google_re2-1.1-1-cp38-cp38-win32.whl", hash = "sha256:ffa51b118037518bcdf63c7649d0b4be7071982b83f48ee3bbabf24a9cb48f8a"}, - {file = "google_re2-1.1-1-cp38-cp38-win_amd64.whl", hash = "sha256:3b47715b6d43c9351957eb5092ad0fa625d04106d81f34cb8a726c53395ad474"}, - {file = "google_re2-1.1-1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:998f31bf7efbc9bb603d0c356c1c77e5331f689c71783df8e21e67bb025fc66a"}, - {file = "google_re2-1.1-1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:0b5f0eaab859d3ba5f462c82bf37ab56e9d37e19b40b5898c731dbe4213a85f7"}, - {file = "google_re2-1.1-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:f6d591d9c4cbc7142b729ddcc3f654d059d8ebc3bc95891198808a4785a6b4d8"}, - {file = "google_re2-1.1-1-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:3c325c2eae197b423330a04ab62e2e1cf942676cd5560907db4d63e23ce0648a"}, - {file = "google_re2-1.1-1-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:1e019e8f57955806ee843254ce454249b58800a6e872b2c8e9df2ef3459de0d5"}, - {file = "google_re2-1.1-1-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:58ebbcc7ad2b639768a6bca586357291660ea40dfac83039208e5055c357513b"}, - {file = "google_re2-1.1-1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:723f8553e7fc022294071f14fb7dfc7958c365dc7d4a71d4938ccd2df8c6eca4"}, - {file = "google_re2-1.1-1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d81512b08e6787fc8ef29fea365d3fdbf957553a625550e1d96c36877ae30355"}, - {file = "google_re2-1.1-1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c58601b155651cc572a23ee2860788c77581aad85d3567a55b89b0674702f34d"}, - {file = "google_re2-1.1-1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c6c9f64b9724ec38da8e514f404ac64e9a6a5e8b1d7031c2dadd05c1f4c16fd"}, - {file = "google_re2-1.1-1-cp39-cp39-win32.whl", hash = "sha256:d1b751b9ab9f8e2ab2a36d72b909281ce65f328c9115a1685acae1a2d1afd7a4"}, - {file = "google_re2-1.1-1-cp39-cp39-win_amd64.whl", hash = "sha256:ac775c75cec7069351d201da4e0fb0cae4c1c5ebecd08fa34e1be89740c1d80b"}, - {file = "google_re2-1.1-2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5eaefe4705b75ca5f78178a50104b689e9282f868e12f119b26b4cffc0c7ee6e"}, - {file = "google_re2-1.1-2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:e35f2c8aabfaaa4ce6420b3cae86c0c29042b1b4f9937254347e9b985694a171"}, - {file = "google_re2-1.1-2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:35fd189cbaaaa39c9a6a8a00164c8d9c709bacd0c231c694936879609beff516"}, - {file = "google_re2-1.1-2-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:60475d222cebd066c80414831c8a42aa2449aab252084102ee05440896586e6a"}, - {file = "google_re2-1.1-2-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:871cb85b9b0e1784c983b5c148156b3c5314cb29ca70432dff0d163c5c08d7e5"}, - {file = "google_re2-1.1-2-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:94f4e66e34bdb8de91ec6cdf20ba4fa9fea1dfdcfb77ff1f59700d01a0243664"}, - {file = "google_re2-1.1-2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1563577e2b720d267c4cffacc0f6a2b5c8480ea966ebdb1844fbea6602c7496f"}, - {file = "google_re2-1.1-2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:49b7964532a801b96062d78c0222d155873968f823a546a3dbe63d73f25bb56f"}, - {file = "google_re2-1.1-2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2362fd70eb639a75fd0187d28b4ba7b20b3088833d8ad7ffd8693d0ba159e1c2"}, - {file = "google_re2-1.1-2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86b80719636a4e21391e20a9adf18173ee6ae2ec956726fe2ff587417b5e8ba6"}, - {file = "google_re2-1.1-2-cp310-cp310-win32.whl", hash = "sha256:5456fba09df951fe8d1714474ed1ecda102a68ddffab0113e6c117d2e64e6f2b"}, - {file = "google_re2-1.1-2-cp310-cp310-win_amd64.whl", hash = "sha256:2ac6936a3a60d8d9de9563e90227b3aea27068f597274ca192c999a12d8baa8f"}, - {file = "google_re2-1.1-2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5a87b436028ec9b0f02fe19d4cbc19ef30441085cdfcdf1cce8fbe5c4bd5e9a"}, - {file = "google_re2-1.1-2-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:fc0d4163de9ed2155a77e7a2d59d94c348a6bbab3cff88922fab9e0d3d24faec"}, - {file = "google_re2-1.1-2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:48b12d953bc796736e7831d67b36892fb6419a4cc44cb16521fe291e594bfe23"}, - {file = "google_re2-1.1-2-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:62c780c927cff98c1538439f0ff616f48a9b2e8837c676f53170d8ae5b9e83cb"}, - {file = "google_re2-1.1-2-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:04b2aefd768aa4edeef8b273327806c9cb0b82e90ff52eacf5d11003ac7a0db2"}, - {file = "google_re2-1.1-2-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:9c90175992346519ee7546d9af9a64541c05b6b70346b0ddc54a48aa0d3b6554"}, - {file = "google_re2-1.1-2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22ad9ad9d125249d6386a2e80efb9de7af8260b703b6be7fa0ab069c1cf56ced"}, - {file = "google_re2-1.1-2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f70971f6ffe5254e476e71d449089917f50ebf9cf60f9cec80975ab1693777e2"}, - {file = "google_re2-1.1-2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f267499529e64a4abed24c588f355ebe4700189d434d84a7367725f5a186e48d"}, - {file = "google_re2-1.1-2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b632eff5e4cd44545a9c0e52f2e1becd55831e25f4dd4e0d7ec8ee6ca50858c1"}, - {file = "google_re2-1.1-2-cp311-cp311-win32.whl", hash = "sha256:a42c733036e8f242ee4e5f0e27153ad4ca44ced9e4ce82f3972938ddee528db0"}, - {file = "google_re2-1.1-2-cp311-cp311-win_amd64.whl", hash = "sha256:64f8eed4ca96905d99b5286b3d14b5ca4f6a025ff3c1351626a7df2f93ad1ddd"}, - {file = "google_re2-1.1-2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5541efcca5b5faf7e0d882334a04fa479bad4e7433f94870f46272eec0672c4a"}, - {file = "google_re2-1.1-2-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:92309af35b6eb2d3b3dc57045cdd83a76370958ab3e0edd2cc4638f6d23f5b32"}, - {file = "google_re2-1.1-2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:197cd9bcaba96d18c5bf84d0c32fca7a26c234ea83b1d3083366f4392cb99f78"}, - {file = "google_re2-1.1-2-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:1b896f171d29b541256cf26e10dccc9103ac1894683914ed88828ca6facf8dca"}, - {file = "google_re2-1.1-2-cp38-cp38-macosx_13_0_arm64.whl", hash = "sha256:e022d3239b945014e916ca7120fee659b246ec26c301f9e0542f1a19b38a8744"}, - {file = "google_re2-1.1-2-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:2c73f8a9440873b68bee1198094377501065e85aaf6fcc0d2512c7589ffa06ca"}, - {file = "google_re2-1.1-2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:901d86555bd7725506d651afaba7d71cd4abd13260aed6cfd7c641a45f76d4f6"}, - {file = "google_re2-1.1-2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ce4710ff636701cfb56eb91c19b775d53b03749a23b7d2a5071bbbf4342a9067"}, - {file = "google_re2-1.1-2-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:76a20e5ebdf5bc5d430530197e42a2eeb562f729d3a3fb51f39168283d676e66"}, - {file = "google_re2-1.1-2-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:77c9f4d4bb1c8de9d2642d3c4b8b615858ba764df025b3b4f1310266f8def269"}, - {file = "google_re2-1.1-2-cp38-cp38-win32.whl", hash = "sha256:94bd60785bf37ef130a1613738e3c39465a67eae3f3be44bb918540d39b68da3"}, - {file = "google_re2-1.1-2-cp38-cp38-win_amd64.whl", hash = "sha256:59efeb77c0dcdbe37794c61f29c5b1f34bc06e8ec309a111ccdd29d380644d70"}, - {file = "google_re2-1.1-2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:221e38c27e1dd9ccb8e911e9c7aed6439f68ce81e7bb74001076830b0d6e931d"}, - {file = "google_re2-1.1-2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:d9145879e6c2e1b814445300b31f88a675e1f06c57564670d95a1442e8370c27"}, - {file = "google_re2-1.1-2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:c8a12f0740e2a52826bdbf95569a4b0abdf413b4012fa71e94ad25dd4715c6e5"}, - {file = "google_re2-1.1-2-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:9c9998f71466f4db7bda752aa7c348b2881ff688e361108fe500caad1d8b9cb2"}, - {file = "google_re2-1.1-2-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:0c39f69b702005963a3d3bf78743e1733ad73efd7e6e8465d76e3009e4694ceb"}, - {file = "google_re2-1.1-2-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:6d0ce762dee8d6617d0b1788a9653e805e83a23046c441d0ea65f1e27bf84114"}, - {file = "google_re2-1.1-2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ecf3619d98c9b4a7844ab52552ad32597cdbc9a5bdbc7e3435391c653600d1e2"}, - {file = "google_re2-1.1-2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9a1426a8cbd1fa004974574708d496005bd379310c4b1c7012be4bc75efde7a8"}, - {file = "google_re2-1.1-2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1a30626ba48b4070f3eab272d860ef1952e710b088792c4d68dddb155be6bfc"}, - {file = "google_re2-1.1-2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1b9c1ffcfbc3095b6ff601ec2d2bf662988f6ea6763bc1c9d52bec55881f8fde"}, - {file = "google_re2-1.1-2-cp39-cp39-win32.whl", hash = "sha256:32ecf995a252c0548404c1065ba4b36f1e524f1f4a86b6367a1a6c3da3801e30"}, - {file = "google_re2-1.1-2-cp39-cp39-win_amd64.whl", hash = "sha256:e7865410f3b112a3609739283ec3f4f6f25aae827ff59c6bfdf806fd394d753e"}, - {file = "google_re2-1.1-3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3b21f83f0a201009c56f06fcc7294a33555ede97130e8a91b3f4cae01aed1d73"}, - {file = "google_re2-1.1-3-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b38194b91354a38db1f86f25d09cdc6ac85d63aee4c67b43da3048ce637adf45"}, - {file = "google_re2-1.1-3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e7da3da8d6b5a18d6c3b61b11cc5b66b8564eaedce99d2312b15b6487730fc76"}, - {file = "google_re2-1.1-3-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:aeca656fb10d8638f245331aabab59c9e7e051ca974b366dd79e6a9efb12e401"}, - {file = "google_re2-1.1-3-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:2069d6dc94f5fa14a159bf99cad2f11e9c0f8ec3b7f44a4dde9e59afe5d1c786"}, - {file = "google_re2-1.1-3-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:2319a39305a4931cb5251451f2582713418a19bef2af7adf9e2a7a0edd939b99"}, - {file = "google_re2-1.1-3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb98fc131699756c6d86246f670a5e1c1cc1ba85413c425ad344cb30479b246c"}, - {file = "google_re2-1.1-3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6e038986d8ffe4e269f8532f03009f229d1f6018d4ac0dabc8aff876338f6e0"}, - {file = "google_re2-1.1-3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8618343ee658310e0f53bf586fab7409de43ce82bf8d9f7eb119536adc9783fd"}, - {file = "google_re2-1.1-3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d8140ca861cfe00602319cefe2c7b8737b379eb07fb328b51dc44584f47a2718"}, - {file = "google_re2-1.1-3-cp310-cp310-win32.whl", hash = "sha256:41f439c5c54e8a3a0a1fa2dbd1e809d3f643f862df7b16dd790f36a1238a272e"}, - {file = "google_re2-1.1-3-cp310-cp310-win_amd64.whl", hash = "sha256:fe20e97a33176d96d3e4b5b401de35182b9505823abea51425ec011f53ef5e56"}, - {file = "google_re2-1.1-3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c39ff52b1765db039f690ee5b7b23919d8535aae94db7996079fbde0098c4d7"}, - {file = "google_re2-1.1-3-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:5420be674fd164041639ba4c825450f3d4bd635572acdde16b3dcd697f8aa3ef"}, - {file = "google_re2-1.1-3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:ff53881cf1ce040f102a42d39db93c3f835f522337ae9c79839a842f26d97733"}, - {file = "google_re2-1.1-3-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:8d04600b0b53523118df2e413a71417c408f20dee640bf07dfab601c96a18a77"}, - {file = "google_re2-1.1-3-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:c4835d4849faa34a7fa1074098d81c420ed6c0707a3772482b02ce14f2a7c007"}, - {file = "google_re2-1.1-3-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:3309a9b81251d35fee15974d0ae0581a9a375266deeafdc3a3ac0d172a742357"}, - {file = "google_re2-1.1-3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2b51cafee7e0bc72d0a4a454547bd8f257cde412ac9f1a2dc46a203b5e42cf4"}, - {file = "google_re2-1.1-3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:83f5f1cb52f832c2297d271ee8c56cf5e9053448162e5d2223d513f729bad908"}, - {file = "google_re2-1.1-3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55865a1ace92be3f7953b2e2b38b901d8074a367aa491daee43260a53a7fc6f0"}, - {file = "google_re2-1.1-3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cec2167dd142e583e98c783bd0d28b8cf5a9cdbe1f7407ba4163fe3ccb613cb9"}, - {file = "google_re2-1.1-3-cp311-cp311-win32.whl", hash = "sha256:a0bc1fe96849e4eb8b726d0bba493f5b989372243b32fe20729cace02e5a214d"}, - {file = "google_re2-1.1-3-cp311-cp311-win_amd64.whl", hash = "sha256:e6310a156db96fc5957cb007dd2feb18476898654530683897469447df73a7cd"}, - {file = "google_re2-1.1-3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8e63cd10ea006088b320e8c5d308da1f6c87aa95138a71c60dd7ca1c8e91927e"}, - {file = "google_re2-1.1-3-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:12b566830a334178733a85e416b1e0507dbc0ceb322827616fe51ef56c5154f1"}, - {file = "google_re2-1.1-3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:442e18c9d46b225c1496919c16eafe8f8d9bb4091b00b4d3440da03c55bbf4ed"}, - {file = "google_re2-1.1-3-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:c54c00263a9c39b2dacd93e9636319af51e3cf885c080b9680a9631708326460"}, - {file = "google_re2-1.1-3-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:15a3caeeb327bc22e0c9f95eb76890fec8874cacccd2b01ff5c080ab4819bbec"}, - {file = "google_re2-1.1-3-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:59ec0d2cced77f715d41f6eafd901f6b15c11e28ba25fe0effdc1de554d78e75"}, - {file = "google_re2-1.1-3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:185bf0e3441aed3840590f8e42f916e2920d235eb14df2cbc2049526803d3e71"}, - {file = "google_re2-1.1-3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:586d3f2014eea5be14d8de53374d9b79fa99689160e00efa64b5fe93af326087"}, - {file = "google_re2-1.1-3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc2575082de4ffd234d9607f3ae67ca22b15a1a88793240e2045f3b3a36a5795"}, - {file = "google_re2-1.1-3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:59c5ad438eddb3630def394456091284d7bbc5b89351987f94f3792d296d1f96"}, - {file = "google_re2-1.1-3-cp312-cp312-win32.whl", hash = "sha256:5b9878c53f2bf16f75bf71d4ddd57f6611351408d5821040e91c53ebdf82c373"}, - {file = "google_re2-1.1-3-cp312-cp312-win_amd64.whl", hash = "sha256:4fdecfeb213110d0a85bad335a8e7cdb59fea7de81a4fe659233f487171980f9"}, - {file = "google_re2-1.1-3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2dd87bacab32b709c28d0145fe75a956b6a39e28f0726d867375dba5721c76c1"}, - {file = "google_re2-1.1-3-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:55d24c61fe35dddc1bb484593a57c9f60f9e66d7f31f091ef9608ed0b6dde79f"}, - {file = "google_re2-1.1-3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a0cf1180d908622df648c26b0cd09281f92129805ccc56a39227fdbfeab95cb4"}, - {file = "google_re2-1.1-3-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:09586f07f3f88d432265c75976da1c619ab7192cd7ebdf53f4ae0776c19e4b56"}, - {file = "google_re2-1.1-3-cp38-cp38-macosx_13_0_arm64.whl", hash = "sha256:539f1b053402203576e919a06749198da4ae415931ee28948a1898131ae932ce"}, - {file = "google_re2-1.1-3-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:abf0bcb5365b0e27a5a23f3da403dffdbbac2c0e3a3f1535a8b10cc121b5d5fb"}, - {file = "google_re2-1.1-3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:19c83e5bbed7958213eeac3aa71c506525ce54faf03e07d0b96cd0a764890511"}, - {file = "google_re2-1.1-3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3348e77330ff672dc44ec01894fa5d93c409a532b6d688feac55e714e9059920"}, - {file = "google_re2-1.1-3-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:06b63edb57c5ce5a13eabfd71155e346b9477dc8906dec7c580d4f70c16a7e0d"}, - {file = "google_re2-1.1-3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:12fe57ba2914092b83338d61d8def9ebd5a2bd0fd8679eceb5d4c2748105d5c0"}, - {file = "google_re2-1.1-3-cp38-cp38-win32.whl", hash = "sha256:80796e08d24e606e675019fe8de4eb5c94bb765be13c384f2695247d54a6df75"}, - {file = "google_re2-1.1-3-cp38-cp38-win_amd64.whl", hash = "sha256:3c2257dedfe7cc5deb6791e563af9e071a9d414dad89e37ac7ad22f91be171a9"}, - {file = "google_re2-1.1-3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43a0cd77c87c894f28969ac622f94b2e6d1571261dfdd785026848a25cfdc9b9"}, - {file = "google_re2-1.1-3-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:1038990b77fd66f279bd66a0832b67435ea925e15bb59eafc7b60fdec812b616"}, - {file = "google_re2-1.1-3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fb5dda6875d18dd45f0f24ebced6d1f7388867c8fb04a235d1deab7ea479ce38"}, - {file = "google_re2-1.1-3-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:bb1d164965c6d57a351b421d2f77c051403766a8b75aaa602324ee2451fff77f"}, - {file = "google_re2-1.1-3-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:a072ebfa495051d07ffecbf6ce21eb84793568d5c3c678c00ed8ff6b8066ab31"}, - {file = "google_re2-1.1-3-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:4eb66c8398c8a510adc97978d944b3b29c91181237218841ea1a91dc39ec0e54"}, - {file = "google_re2-1.1-3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f7c8b57b1f559553248d1757b7fa5b2e0cc845666738d155dff1987c2618264e"}, - {file = "google_re2-1.1-3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9162f6aa4f25453c682eb176f21b8e2f40205be9f667e98a54b3e1ff10d6ee75"}, - {file = "google_re2-1.1-3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2d65ddf67fd7bf94705626871d463057d3d9a3538d41022f95b9d8f01df36e1"}, - {file = "google_re2-1.1-3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d140c7b9395b4d1e654127aa1c99bcc603ed01000b7bc7e28c52562f1894ec12"}, - {file = "google_re2-1.1-3-cp39-cp39-win32.whl", hash = "sha256:80c5fc200f64b2d903eeb07b8d6cefc620a872a0240c7caaa9aca05b20f5568f"}, - {file = "google_re2-1.1-3-cp39-cp39-win_amd64.whl", hash = "sha256:9eb6dbcee9b5dc4069bbc0634f2eb039ca524a14bed5868fdf6560aaafcbca06"}, - {file = "google_re2-1.1-4-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0db114d7e1aa96dbcea452a40136d7d747d60cbb61394965774688ef59cccd4e"}, - {file = "google_re2-1.1-4-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:82133958e003a1344e5b7a791b9a9dd7560b5c8f96936dbe16f294604524a633"}, - {file = "google_re2-1.1-4-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:9e74fd441d1f3d917d3303e319f61b82cdbd96b9a5ba919377a6eef1504a1e2b"}, - {file = "google_re2-1.1-4-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:734a2e7a4541c57253b5ebee24f3f3366ba3658bcad01da25fb623c78723471a"}, - {file = "google_re2-1.1-4-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:d88d5eecbc908abe16132456fae13690d0508f3ac5777f320ef95cb6cab9a961"}, - {file = "google_re2-1.1-4-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:b91db80b171ecec435a07977a227757dd487356701a32f556fa6fca5d0a40522"}, - {file = "google_re2-1.1-4-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b23129887a64bb9948af14c84705273ed1a40054e99433b4acccab4dcf6a226"}, - {file = "google_re2-1.1-4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5dc1a0cc7cd19261dcaf76763e2499305dbb7e51dc69555167cdb8af98782698"}, - {file = "google_re2-1.1-4-cp310-cp310-win32.whl", hash = "sha256:3b2ab1e2420b5dd9743a2d6bc61b64e5f708563702a75b6db86637837eaeaf2f"}, - {file = "google_re2-1.1-4-cp310-cp310-win_amd64.whl", hash = "sha256:92efca1a7ef83b6df012d432a1cbc71d10ff42200640c0f9a5ff5b343a48e633"}, - {file = "google_re2-1.1-4-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:854818fd4ce79787aca5ba459d6e5abe4ca9be2c684a5b06a7f1757452ca3708"}, - {file = "google_re2-1.1-4-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:4ceef51174b6f653b6659a8fdaa9c38960c5228b44b25be2a3bcd8566827554f"}, - {file = "google_re2-1.1-4-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:ee49087c3db7e6f5238105ab5299c09e9b77516fe8cfb0a37e5f1e813d76ecb8"}, - {file = "google_re2-1.1-4-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:dc2312854bdc01410acc5d935f1906a49cb1f28980341c20a68797ad89d8e178"}, - {file = "google_re2-1.1-4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0dc0d2e42296fa84a3cb3e1bd667c6969389cd5cdf0786e6b1f911ae2d75375b"}, - {file = "google_re2-1.1-4-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6bf04ced98453b035f84320f348f67578024f44d2997498def149054eb860ae8"}, - {file = "google_re2-1.1-4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1d6b6ef11dc4ab322fa66c2f3561925f2b5372a879c3ed764d20e939e2fd3e5f"}, - {file = "google_re2-1.1-4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0dcde6646fa9a97fd3692b3f6ae7daf7f3277d7500b6c253badeefa11db8956a"}, - {file = "google_re2-1.1-4-cp311-cp311-win32.whl", hash = "sha256:5f4f0229deb057348893574d5b0a96d055abebac6debf29d95b0c0e26524c9f6"}, - {file = "google_re2-1.1-4-cp311-cp311-win_amd64.whl", hash = "sha256:4713ddbe48a18875270b36a462b0eada5e84d6826f8df7edd328d8706b6f9d07"}, - {file = "google_re2-1.1-4-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:40a698300b8faddbb325662973f839489c89b960087060bd389c376828978a04"}, - {file = "google_re2-1.1-4-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:103d2d7ac92ba23911a151fd1fc7035cbf6dc92a7f6aea92270ebceb5cd5acd3"}, - {file = "google_re2-1.1-4-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:51fb7182bccab05e8258a2b6a63dda1a6b4a9e8dfb9b03ec50e50c49c2827dd4"}, - {file = "google_re2-1.1-4-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:65383022abd63d7b620221eba7935132b53244b8b463d8fdce498c93cf58b7b7"}, - {file = "google_re2-1.1-4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:396281fc68a9337157b3ffcd9392c6b7fcb8aab43e5bdab496262a81d56a4ecc"}, - {file = "google_re2-1.1-4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:8198adcfcff1c680e052044124621730fc48d08005f90a75487f5651f1ebfce2"}, - {file = "google_re2-1.1-4-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:81f7bff07c448aec4db9ca453d2126ece8710dbd9278b8bb09642045d3402a96"}, - {file = "google_re2-1.1-4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7dacf730fd7d6ec71b11d6404b0b26e230814bfc8e9bb0d3f13bec9b5531f8d"}, - {file = "google_re2-1.1-4-cp312-cp312-win32.whl", hash = "sha256:8c764f62f4b1d89d1ef264853b6dd9fee14a89e9b86a81bc2157fe3531425eb4"}, - {file = "google_re2-1.1-4-cp312-cp312-win_amd64.whl", hash = "sha256:0be2666df4bc5381a5d693585f9bbfefb0bfd3c07530d7e403f181f5de47254a"}, - {file = "google_re2-1.1-4-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:5cb1b63a0bfd8dd65d39d2f3b2e5ae0a06ce4b2ce5818a1d1fc78a786a252673"}, - {file = "google_re2-1.1-4-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:e41751ce6b67a95230edd0772226dc94c2952a2909674cd69df9804ed0125307"}, - {file = "google_re2-1.1-4-cp38-cp38-macosx_13_0_arm64.whl", hash = "sha256:b998cfa2d50bf4c063e777c999a7e8645ec7e5d7baf43ad71b1e2e10bb0300c3"}, - {file = "google_re2-1.1-4-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:226ca3b0c2e970f3fc82001ac89e845ecc7a4bb7c68583e7a76cda70b61251a7"}, - {file = "google_re2-1.1-4-cp38-cp38-macosx_14_0_arm64.whl", hash = "sha256:9adec1f734ebad7c72e56c85f205a281d8fe9bf6583bc21020157d3f2812ce89"}, - {file = "google_re2-1.1-4-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:9c34f3c64ba566af967d29e11299560e6fdfacd8ca695120a7062b6ed993b179"}, - {file = "google_re2-1.1-4-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b85385fe293838e0d0b6e19e6c48ba8c6f739ea92ce2e23b718afe7b343363"}, - {file = "google_re2-1.1-4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4694daa8a8987cfb568847aa872f9990e930c91a68c892ead876411d4b9012c3"}, - {file = "google_re2-1.1-4-cp38-cp38-win32.whl", hash = "sha256:5e671e9be1668187e2995aac378de574fa40df70bb6f04657af4d30a79274ce0"}, - {file = "google_re2-1.1-4-cp38-cp38-win_amd64.whl", hash = "sha256:f66c164d6049a8299f6dfcfa52d1580576b4b9724d6fcdad2f36f8f5da9304b6"}, - {file = "google_re2-1.1-4-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:25cb17ae0993a48c70596f3a3ef5d659638106401cc8193f51c0d7961b3b3eb7"}, - {file = "google_re2-1.1-4-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:5f101f86d14ca94ca4dcf63cceaa73d351f2be2481fcaa29d9e68eeab0dc2a88"}, - {file = "google_re2-1.1-4-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:4e82591e85bf262a6d74cff152867e05fc97867c68ba81d6836ff8b0e7e62365"}, - {file = "google_re2-1.1-4-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:1f61c09b93ffd34b1e2557e5a9565039f935407a5786dbad46f64f1a484166e6"}, - {file = "google_re2-1.1-4-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:12b390ad8c7e74bab068732f774e75e0680dade6469b249a721f3432f90edfc3"}, - {file = "google_re2-1.1-4-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:1284343eb31c2e82ed2d8159f33ba6842238a56782c881b07845a6d85613b055"}, - {file = "google_re2-1.1-4-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c7b38e0daf2c06e4d3163f4c732ab3ad2521aecfed6605b69e4482c612da303"}, - {file = "google_re2-1.1-4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f4d4f0823e8b2f6952a145295b1ff25245ce9bb136aff6fe86452e507d4c1dd"}, - {file = "google_re2-1.1-4-cp39-cp39-win32.whl", hash = "sha256:1afae56b2a07bb48cfcfefaa15ed85bae26a68f5dc7f9e128e6e6ea36914e847"}, - {file = "google_re2-1.1-4-cp39-cp39-win_amd64.whl", hash = "sha256:aa7d6d05911ab9c8adbf3c225a7a120ab50fd2784ac48f2f0d140c0b7afc2b55"}, - {file = "google_re2-1.1-5-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:222fc2ee0e40522de0b21ad3bc90ab8983be3bf3cec3d349c80d76c8bb1a4beb"}, - {file = "google_re2-1.1-5-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d4763b0b9195b72132a4e7de8e5a9bf1f05542f442a9115aa27cfc2a8004f581"}, - {file = "google_re2-1.1-5-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:209649da10c9d4a93d8a4d100ecbf9cc3b0252169426bec3e8b4ad7e57d600cf"}, - {file = "google_re2-1.1-5-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:68813aa333c1604a2df4a495b2a6ed065d7c8aebf26cc7e7abb5a6835d08353c"}, - {file = "google_re2-1.1-5-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:370a23ec775ad14e9d1e71474d56f381224dcf3e72b15d8ca7b4ad7dd9cd5853"}, - {file = "google_re2-1.1-5-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:14664a66a3ddf6bc9e56f401bf029db2d169982c53eff3f5876399104df0e9a6"}, - {file = "google_re2-1.1-5-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea3722cc4932cbcebd553b69dce1b4a73572823cff4e6a244f1c855da21d511"}, - {file = "google_re2-1.1-5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e14bb264c40fd7c627ef5678e295370cd6ba95ca71d835798b6e37502fc4c690"}, - {file = "google_re2-1.1-5-cp310-cp310-win32.whl", hash = "sha256:39512cd0151ea4b3969c992579c79b423018b464624ae955be685fc07d94556c"}, - {file = "google_re2-1.1-5-cp310-cp310-win_amd64.whl", hash = "sha256:ac66537aa3bc5504320d922b73156909e3c2b6da19739c866502f7827b3f9fdf"}, - {file = "google_re2-1.1-5-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5b5ea68d54890c9edb1b930dcb2658819354e5d3f2201f811798bbc0a142c2b4"}, - {file = "google_re2-1.1-5-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:33443511b6b83c35242370908efe2e8e1e7cae749c766b2b247bf30e8616066c"}, - {file = "google_re2-1.1-5-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:413d77bdd5ba0bfcada428b4c146e87707452ec50a4091ec8e8ba1413d7e0619"}, - {file = "google_re2-1.1-5-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:5171686e43304996a34baa2abcee6f28b169806d0e583c16d55e5656b092a414"}, - {file = "google_re2-1.1-5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b284db130283771558e31a02d8eb8fb756156ab98ce80035ae2e9e3a5f307c4"}, - {file = "google_re2-1.1-5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:296e6aed0b169648dc4b870ff47bd34c702a32600adb9926154569ef51033f47"}, - {file = "google_re2-1.1-5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:38d50e68ead374160b1e656bbb5d101f0b95fb4cc57f4a5c12100155001480c5"}, - {file = "google_re2-1.1-5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a0416a35921e5041758948bcb882456916f22845f66a93bc25070ef7262b72a"}, - {file = "google_re2-1.1-5-cp311-cp311-win32.whl", hash = "sha256:a1d59568bbb5de5dd56dd6cdc79907db26cce63eb4429260300c65f43469e3e7"}, - {file = "google_re2-1.1-5-cp311-cp311-win_amd64.whl", hash = "sha256:72f5a2f179648b8358737b2b493549370debd7d389884a54d331619b285514e3"}, - {file = "google_re2-1.1-5-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:cbc72c45937b1dc5acac3560eb1720007dccca7c9879138ff874c7f6baf96005"}, - {file = "google_re2-1.1-5-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:5fadd1417fbef7235fa9453dba4eb102e6e7d94b1e4c99d5fa3dd4e288d0d2ae"}, - {file = "google_re2-1.1-5-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:040f85c63cc02696485b59b187a5ef044abe2f99b92b4fb399de40b7d2904ccc"}, - {file = "google_re2-1.1-5-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:64e3b975ee6d9bbb2420494e41f929c1a0de4bcc16d86619ab7a87f6ea80d6bd"}, - {file = "google_re2-1.1-5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8ee370413e00f4d828eaed0e83b8af84d7a72e8ee4f4bd5d3078bc741dfc430a"}, - {file = "google_re2-1.1-5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:5b89383001079323f693ba592d7aad789d7a02e75adb5d3368d92b300f5963fd"}, - {file = "google_re2-1.1-5-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:63cb4fdfbbda16ae31b41a6388ea621510db82feb8217a74bf36552ecfcd50ad"}, - {file = "google_re2-1.1-5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ebedd84ae8be10b7a71a16162376fd67a2386fe6361ef88c622dcf7fd679daf"}, - {file = "google_re2-1.1-5-cp312-cp312-win32.whl", hash = "sha256:c8e22d1692bc2c81173330c721aff53e47ffd3c4403ff0cd9d91adfd255dd150"}, - {file = "google_re2-1.1-5-cp312-cp312-win_amd64.whl", hash = "sha256:5197a6af438bb8c4abda0bbe9c4fbd6c27c159855b211098b29d51b73e4cbcf6"}, - {file = "google_re2-1.1-5-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b6727e0b98417e114b92688ad2aa256102ece51f29b743db3d831df53faf1ce3"}, - {file = "google_re2-1.1-5-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:711e2b6417eb579c61a4951029d844f6b95b9b373b213232efd413659889a363"}, - {file = "google_re2-1.1-5-cp38-cp38-macosx_13_0_arm64.whl", hash = "sha256:71ae8b3df22c5c154c8af0f0e99d234a450ef1644393bc2d7f53fc8c0a1e111c"}, - {file = "google_re2-1.1-5-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:94a04e214bc521a3807c217d50cf099bbdd0c0a80d2d996c0741dbb995b5f49f"}, - {file = "google_re2-1.1-5-cp38-cp38-macosx_14_0_arm64.whl", hash = "sha256:a770f75358508a9110c81a1257721f70c15d9bb592a2fb5c25ecbd13566e52a5"}, - {file = "google_re2-1.1-5-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:07c9133357f7e0b17c6694d5dcb82e0371f695d7c25faef2ff8117ef375343ff"}, - {file = "google_re2-1.1-5-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:204ca6b1cf2021548f4a9c29ac015e0a4ab0a7b6582bf2183d838132b60c8fda"}, - {file = "google_re2-1.1-5-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0b95857c2c654f419ca684ec38c9c3325c24e6ba7d11910a5110775a557bb18"}, - {file = "google_re2-1.1-5-cp38-cp38-win32.whl", hash = "sha256:347ac770e091a0364e822220f8d26ab53e6fdcdeaec635052000845c5a3fb869"}, - {file = "google_re2-1.1-5-cp38-cp38-win_amd64.whl", hash = "sha256:ec32bb6de7ffb112a07d210cf9f797b7600645c2d5910703fa07f456dd2150e0"}, - {file = "google_re2-1.1-5-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:eb5adf89060f81c5ff26c28e261e6b4997530a923a6093c9726b8dec02a9a326"}, - {file = "google_re2-1.1-5-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:a22630c9dd9ceb41ca4316bccba2643a8b1d5c198f21c00ed5b50a94313aaf10"}, - {file = "google_re2-1.1-5-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:544dc17fcc2d43ec05f317366375796351dec44058e1164e03c3f7d050284d58"}, - {file = "google_re2-1.1-5-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:19710af5ea88751c7768575b23765ce0dfef7324d2539de576f75cdc319d6654"}, - {file = "google_re2-1.1-5-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:f82995a205e08ad896f4bd5ce4847c834fab877e1772a44e5f262a647d8a1dec"}, - {file = "google_re2-1.1-5-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:63533c4d58da9dc4bc040250f1f52b089911699f0368e0e6e15f996387a984ed"}, - {file = "google_re2-1.1-5-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79e00fcf0cb04ea35a22b9014712d448725ce4ddc9f08cc818322566176ca4b0"}, - {file = "google_re2-1.1-5-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bc41afcefee2da6c4ed883a93d7f527c4b960cd1d26bbb0020a7b8c2d341a60a"}, - {file = "google_re2-1.1-5-cp39-cp39-win32.whl", hash = "sha256:486730b5e1f1c31b0abc6d80abe174ce4f1188fe17d1b50698f2bf79dc6e44be"}, - {file = "google_re2-1.1-5-cp39-cp39-win_amd64.whl", hash = "sha256:4de637ca328f1d23209e80967d1b987d6b352cd01b3a52a84b4d742c69c3da6c"}, - {file = "google_re2-1.1-6-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:621e9c199d1ff0fdb2a068ad450111a84b3bf14f96dfe5a8a7a0deae5f3f4cce"}, - {file = "google_re2-1.1-6-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:220acd31e7dde95373f97c3d1f3b3bd2532b38936af28b1917ee265d25bebbf4"}, - {file = "google_re2-1.1-6-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:db34e1098d164f76251a6ece30e8f0ddfd65bb658619f48613ce71acb3f9cbdb"}, - {file = "google_re2-1.1-6-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:5152bac41d8073977582f06257219541d0fc46ad99b0bbf30e8f60198a43b08c"}, - {file = "google_re2-1.1-6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:6191294799e373ee1735af91f55abd23b786bdfd270768a690d9d55af9ea1b0d"}, - {file = "google_re2-1.1-6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:070cbafbb4fecbb02e98feb28a1eb292fb880f434d531f38cc33ee314b521f1f"}, - {file = "google_re2-1.1-6-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8437d078b405a59a576cbed544490fe041140f64411f2d91012e8ec05ab8bf86"}, - {file = "google_re2-1.1-6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f00f9a9af8896040e37896d9b9fc409ad4979f1ddd85bb188694a7d95ddd1164"}, - {file = "google_re2-1.1-6-cp310-cp310-win32.whl", hash = "sha256:df26345f229a898b4fd3cafd5f82259869388cee6268fc35af16a8e2293dd4e5"}, - {file = "google_re2-1.1-6-cp310-cp310-win_amd64.whl", hash = "sha256:3665d08262c57c9b28a5bdeb88632ad792c4e5f417e5645901695ab2624f5059"}, - {file = "google_re2-1.1-6-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:b26b869d8aa1d8fe67c42836bf3416bb72f444528ee2431cfb59c0d3e02c6ce3"}, - {file = "google_re2-1.1-6-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:41fd4486c57dea4f222a6bb7f1ff79accf76676a73bdb8da0fcbd5ba73f8da71"}, - {file = "google_re2-1.1-6-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:0ee378e2e74e25960070c338c28192377c4dd41e7f4608f2688064bd2badc41e"}, - {file = "google_re2-1.1-6-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:a00cdbf662693367b36d075b29feb649fd7ee1b617cf84f85f2deebeda25fc64"}, - {file = "google_re2-1.1-6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4c09455014217a41499432b8c8f792f25f3df0ea2982203c3a8c8ca0e7895e69"}, - {file = "google_re2-1.1-6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6501717909185327935c7945e23bb5aa8fc7b6f237b45fe3647fa36148662158"}, - {file = "google_re2-1.1-6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3510b04790355f199e7861c29234081900e1e1cbf2d1484da48aa0ba6d7356ab"}, - {file = "google_re2-1.1-6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8c0e64c187ca406764f9e9ad6e750d62e69ed8f75bf2e865d0bfbc03b642361c"}, - {file = "google_re2-1.1-6-cp311-cp311-win32.whl", hash = "sha256:2a199132350542b0de0f31acbb3ca87c3a90895d1d6e5235f7792bb0af02e523"}, - {file = "google_re2-1.1-6-cp311-cp311-win_amd64.whl", hash = "sha256:83bdac8ceaece8a6db082ea3a8ba6a99a2a1ee7e9f01a9d6d50f79c6f251a01d"}, - {file = "google_re2-1.1-6-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:81985ff894cd45ab5a73025922ac28c0707759db8171dd2f2cc7a0e856b6b5ad"}, - {file = "google_re2-1.1-6-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:5635af26065e6b45456ccbea08674ae2ab62494008d9202df628df3b267bc095"}, - {file = "google_re2-1.1-6-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:813b6f04de79f4a8fdfe05e2cb33e0ccb40fe75d30ba441d519168f9d958bd54"}, - {file = "google_re2-1.1-6-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:5ec2f5332ad4fd232c3f2d6748c2c7845ccb66156a87df73abcc07f895d62ead"}, - {file = "google_re2-1.1-6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5a687b3b32a6cbb731647393b7c4e3fde244aa557f647df124ff83fb9b93e170"}, - {file = "google_re2-1.1-6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:39a62f9b3db5d3021a09a47f5b91708b64a0580193e5352751eb0c689e4ad3d7"}, - {file = "google_re2-1.1-6-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ca0f0b45d4a1709cbf5d21f355e5809ac238f1ee594625a1e5ffa9ff7a09eb2b"}, - {file = "google_re2-1.1-6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a64b3796a7a616c7861247bd061c9a836b5caf0d5963e5ea8022125601cf7b09"}, - {file = "google_re2-1.1-6-cp312-cp312-win32.whl", hash = "sha256:32783b9cb88469ba4cd9472d459fe4865280a6b1acdad4480a7b5081144c4eb7"}, - {file = "google_re2-1.1-6-cp312-cp312-win_amd64.whl", hash = "sha256:259ff3fd2d39035b9cbcbf375995f83fa5d9e6a0c5b94406ff1cc168ed41d6c6"}, - {file = "google_re2-1.1-6-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:e4711bcffe190acd29104d8ecfea0c0e42b754837de3fb8aad96e6cc3c613cdc"}, - {file = "google_re2-1.1-6-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:4d081cce43f39c2e813fe5990e1e378cbdb579d3f66ded5bade96130269ffd75"}, - {file = "google_re2-1.1-6-cp38-cp38-macosx_13_0_arm64.whl", hash = "sha256:4f123b54d48450d2d6b14d8fad38e930fb65b5b84f1b022c10f2913bd956f5b5"}, - {file = "google_re2-1.1-6-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:e1928b304a2b591a28eb3175f9db7f17c40c12cf2d4ec2a85fdf1cc9c073ff91"}, - {file = "google_re2-1.1-6-cp38-cp38-macosx_14_0_arm64.whl", hash = "sha256:3a69f76146166aec1173003c1f547931bdf288c6b135fda0020468492ac4149f"}, - {file = "google_re2-1.1-6-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:fc08c388f4ebbbca345e84a0c56362180d33d11cbe9ccfae663e4db88e13751e"}, - {file = "google_re2-1.1-6-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b057adf38ce4e616486922f2f47fc7d19c827ba0a7f69d540a3664eba2269325"}, - {file = "google_re2-1.1-6-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4138c0b933ab099e96f5d8defce4486f7dfd480ecaf7f221f2409f28022ccbc5"}, - {file = "google_re2-1.1-6-cp38-cp38-win32.whl", hash = "sha256:9693e45b37b504634b1abbf1ee979471ac6a70a0035954592af616306ab05dd6"}, - {file = "google_re2-1.1-6-cp38-cp38-win_amd64.whl", hash = "sha256:5674d437baba0ea287a5a7f8f81f24265d6ae8f8c09384e2ef7b6f84b40a7826"}, - {file = "google_re2-1.1-6-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:7783137cb2e04f458a530c6d0ee9ef114815c1d48b9102f023998c371a3b060e"}, - {file = "google_re2-1.1-6-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:a49b7153935e7a303675f4deb5f5d02ab1305adefc436071348706d147c889e0"}, - {file = "google_re2-1.1-6-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:a96a8bb309182090704593c60bdb369a2756b38fe358bbf0d40ddeb99c71769f"}, - {file = "google_re2-1.1-6-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:dff3d4be9f27ef8ec3705eed54f19ef4ab096f5876c15fe011628c69ba3b561c"}, - {file = "google_re2-1.1-6-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:40f818b0b39e26811fa677978112a8108269977fdab2ba0453ac4363c35d9e66"}, - {file = "google_re2-1.1-6-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:8a7e53538cdb40ef4296017acfbb05cab0c19998be7552db1cfb85ba40b171b9"}, - {file = "google_re2-1.1-6-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ee18e7569fb714e5bb8c42809bf8160738637a5e71ed5a4797757a1fb4dc4de"}, - {file = "google_re2-1.1-6-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1cda4f6d1a7d5b43ea92bc395f23853fba0caf8b1e1efa6e8c48685f912fcb89"}, - {file = "google_re2-1.1-6-cp39-cp39-win32.whl", hash = "sha256:6a9cdbdc36a2bf24f897be6a6c85125876dc26fea9eb4247234aec0decbdccfd"}, - {file = "google_re2-1.1-6-cp39-cp39-win_amd64.whl", hash = "sha256:73f646cecfad7cc5b4330b4192c25f2e29730a3b8408e089ffd2078094208196"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:46e7ed614ffaafccae017542d68e9bbf664c8c1e5ca37046adee640bbee4846e"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:3c8d2c0a03e9fd24f78b624cf7e40ac32aaf4837fda7339e2c22ca42e3dca512"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:7fee39772aa2e1fe91b7694acc48888ac6fa0ca51f8805464272a2089b362c96"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:b2bcf1a43853cee5a088f40c75fe48a6e3ec7addae1d3f3d47ce679e2bb8936b"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:69f9b156de6f93ea00844f6cd4f2ed5124f9f01692da7ae0fe9a9516df6c63c2"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:f70db559ad768ad68a4d9897cb19fd13f7761e60208f475eb8a69b8aa4b6df20"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7bc4fa65ecec3d63ea6048ecaf8784560bbfb31191c02ffaa87771e4a2f813e1"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7480309b133c39f2afb19ff28bc30d27b364cbc56b5d46918d1b4f1fb2e13183"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-win32.whl", hash = "sha256:1950f499b277789267afee1755394cd959898d0b192b7052bb3186000aff27de"}, + {file = "google_re2-1.1.20240702-1-cp310-cp310-win_amd64.whl", hash = "sha256:2269ff8c2e1de0ee77736bd9f65b5c9f7cd43544eff825dc7b4ab2bf1f1901e4"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:9802a5a5ec585048300d5a8ec522b15057b8f758fe9f8b0ec65ac2927a36a1aa"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:757cbefbe9f998c274c94afd8bf2a4789b983287f33d4f975389c1027ed686c6"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:7e1d36bd20ce04c1198fe482b6f3ce7dd699e1276946a9a2cf31b2e53026a370"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:bb6b2e456cd0002700ad58c3474fc9e342853ff2ef9f95a1f6606c819ffaf3d9"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:71a71d7f9e616d3067e913a1432111593ee41aab2e0ed21ecbcf039451b9d899"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:16bd5389baeb98936fb05926e6a38826c473206c13f1f789f7643a29dcccccc3"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4b920c1b0356f0359b35a0e6d0b5ff12fba9067d3c455a9811952fbc9a213268"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42c2c39b7378e928d197e4fdf4a23c9338f29cad6d4c5c5c06a2ad7c8c2a3ebc"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-win32.whl", hash = "sha256:d7fd6b6be4f86d4b6503689b492970920f4b50a8ac02427bc975c73bcedda374"}, + {file = "google_re2-1.1.20240702-1-cp311-cp311-win_amd64.whl", hash = "sha256:22217d7c8f57bb6c5e74e171a510b12cdde4eddc2528f89aa0f50e3fc10fe17e"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:00dcb09b15f92b490ae52f328cca229de2a157c8748f10df94dfea7637d32617"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:2ffc6fbe70ccf9fb66d0ab16ccad0f661031ceb0eec3d73d170cd782a93d62d5"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:652e517b6db6cbf7403bab370940718208b15e811fefe7635d4e78a8037f096b"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:449ae8286d644d24af8a6eb81eeba6995388581739920b80d9e4b063eefe0322"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:40568559b0a10240c10377fb5cdd46c9115da8a627c567db68c4dc29103a2ce9"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:8139df33d61aac335726b6f32108e763ba2932569c63d2b3ebf6e36a40449223"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e4a2b88516b4140891a014c6e5b774f57db90c8bd0ccf0554e9f9b99ee1e942"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d95b1e06298299b28e23288a6bfd3c6f13e0f7a01c1f2e86e74073928676cf88"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-win32.whl", hash = "sha256:fb025d4bcd1a3032546da048a6dcb39359967f4df6b3514e76e983256235f694"}, + {file = "google_re2-1.1.20240702-1-cp312-cp312-win_amd64.whl", hash = "sha256:a7e3129d31e12d51397d603adf45bd696135a5d9d61bc33643bc5d2e4366070b"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:bc2f853ace690fb475f68b82b61e3b0ffe2a8603f052853eb21587ac7dcca537"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:974ac711ade3171004e9552d9e069cbe1a8de02c5e45a56101f8396f69a3e3c2"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-macosx_13_0_arm64.whl", hash = "sha256:ad3dc0084cad59a298ffa52c9def2f1b5332d396d76f3828237ac7141b6e7e7d"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:4e13241b8df4096d840f98993f39c62cff0cdab9d06c86b156d2944cfb3f0814"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-macosx_14_0_arm64.whl", hash = "sha256:6887fe9c291ad42003ad84e11c0a6fac0169adbda9cbc898b8657610512e4ce5"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:82824fa71f51a269cd9bad653d53e6ba5bee9095da059455ee1c6cc7e4ba014b"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cde1453681c2ab1648b9e7aed3861ccedce52c85b24873edd1ec1e92b4b3d7d4"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7388c5aadcc5489291d2804ecc384c2e3bb64832e1b46afd44d7bca6c948b615"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-win32.whl", hash = "sha256:cb20853af1104b5180eb2daea66a481723553aa66bf5a5c4c58420c7369364cb"}, + {file = "google_re2-1.1.20240702-1-cp38-cp38-win_amd64.whl", hash = "sha256:a7f0d950ba9508ac1b2d89837f4a4c74092ae3af015a9797b80570ee87b7d7d5"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:56c2a97d3d38345939fb3ff02d154f5c6ec929e0765723cfd390720f581d2581"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:dfe657979ab96da72f55b03ecdede5467a7193266ce7a0b85013819f052d231f"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:c6e218b831dfc89f5004c1bb7ae9182ec5ddc4d46e6035f636ba96344d5b7478"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:304ed3f740541742e7ef5c162b36619efdac7345f1429ab6d70aefaae9a5658d"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:05f5683e1bcfac8adcc0dbfe3ecb0866cec6eea2c7d419271dfd72930b368ce4"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:39c642041428efaa48f35adf4475a014ce272f87a453c6dff68f2b05793d516f"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d3d1e58f374510101273cda1b6c2b45c178eb94f4c1bd17f7f750cea8d1c85a"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:386d2a8c4b10daaeda03adc7f65c457f67ee8cb18b4f9b4178a44ed62ab291df"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-win32.whl", hash = "sha256:f853c3c68bed0d127e6ef8b29ee85461d9d0a4fa407e3f97e41ecd6803d24d88"}, + {file = "google_re2-1.1.20240702-1-cp39-cp39-win_amd64.whl", hash = "sha256:5e35c8db1bf58ddf1ac28782d6dca5894a0331fc0d33b2a2ce6eb59234d74312"}, + {file = "google_re2-1.1.20240702.tar.gz", hash = "sha256:8788db69f6c93cb229df62c74b2d9aa8e64bf754e9495700f85812afa32efd2b"}, ] [[package]] name = "googleapis-common-protos" -version = "1.60.0" +version = "1.66.0" description = "Common protobufs used in Google APIs" optional = false python-versions = ">=3.7" files = [ - {file = "googleapis-common-protos-1.60.0.tar.gz", hash = "sha256:e73ebb404098db405ba95d1e1ae0aa91c3e15a71da031a2eeb6b2e23e7bc3708"}, - {file = "googleapis_common_protos-1.60.0-py2.py3-none-any.whl", hash = "sha256:69f9bbcc6acde92cab2db95ce30a70bd2b81d20b12eff3f1aabaffcbe8a93918"}, + {file = "googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed"}, + {file = "googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c"}, ] [package.dependencies] -protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" +protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0" [package.extras] grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] @@ -2422,13 +2216,13 @@ dev = ["black", "pytest"] [[package]] name = "identify" -version = "2.5.26" +version = "2.6.3" description = "File identification library for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "identify-2.5.26-py2.py3-none-any.whl", hash = "sha256:c22a8ead0d4ca11f1edd6c9418c3220669b3b7533ada0a0ffa6cc0ef85cf9b54"}, - {file = "identify-2.5.26.tar.gz", hash = "sha256:7243800bce2f58404ed41b7c002e53d4d22bcf3ae1b7900c2d7aefd95394bf7f"}, + {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"}, + {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"}, ] [package.extras] @@ -2436,15 +2230,18 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.7" +version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + [[package]] name = "inflect" version = "5.6.2" @@ -2510,20 +2307,17 @@ files = [ [[package]] name = "isort" -version = "5.12.0" +version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] -colors = ["colorama (>=0.4.3)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] +colors = ["colorama (>=0.4.6)"] [[package]] name = "itypes" @@ -2626,92 +2420,92 @@ pyasn1 = ">=0.4.6" [[package]] name = "markupsafe" -version = "2.1.3" +version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] [[package]] name = "marshmallow" -version = "3.20.1" +version = "3.23.1" description = "A lightweight library for converting complex datatypes to and from native Python datatypes." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "marshmallow-3.20.1-py3-none-any.whl", hash = "sha256:684939db93e80ad3561392f47be0230743131560a41c5110684c16e21ade0a5c"}, - {file = "marshmallow-3.20.1.tar.gz", hash = "sha256:5d2371bbe42000f2b3fb5eaa065224df7d8f8597bc19a1bbfa5bfe7fba8da889"}, + {file = "marshmallow-3.23.1-py3-none-any.whl", hash = "sha256:fece2eb2c941180ea1b7fcbd4a83c51bfdd50093fdd3ad2585ee5e1df2508491"}, + {file = "marshmallow-3.23.1.tar.gz", hash = "sha256:3a8dfda6edd8dcdbf216c0ede1d1e78d230a6dc9c5a088f58c4083b974a0d468"}, ] [package.dependencies] packaging = ">=17.0" [package.extras] -dev = ["flake8 (==6.0.0)", "flake8-bugbear (==23.7.10)", "mypy (==1.4.1)", "pre-commit (>=2.4,<4.0)", "pytest", "pytz", "simplejson", "tox"] -docs = ["alabaster (==0.7.13)", "autodocsumm (==0.2.11)", "sphinx (==7.0.1)", "sphinx-issues (==3.0.1)", "sphinx-version-warning (==1.1.2)"] -lint = ["flake8 (==6.0.0)", "flake8-bugbear (==23.7.10)", "mypy (==1.4.1)", "pre-commit (>=2.4,<4.0)"] -tests = ["pytest", "pytz", "simplejson"] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["alabaster (==1.0.0)", "autodocsumm (==0.2.14)", "sphinx (==8.1.3)", "sphinx-issues (==5.0.0)", "sphinx-version-warning (==1.1.2)"] +tests = ["pytest", "simplejson"] [[package]] name = "mccabe" @@ -2737,13 +2531,13 @@ files = [ [[package]] name = "moto" -version = "4.1.14" +version = "4.1.15" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "moto-4.1.14-py2.py3-none-any.whl", hash = "sha256:7d3bd748a34641715ba469c761f72fb8ec18f349987c98f5a0f9be85a07a9911"}, - {file = "moto-4.1.14.tar.gz", hash = "sha256:545afeb4df94dfa730e2d7e87366dc26b4a33c2891f462cbb049f040c80ed1ec"}, + {file = "moto-4.1.15-py2.py3-none-any.whl", hash = "sha256:3fbcf91090692c30117d275fb34b48a075a6f65d4712ba6c4d004ffab976db46"}, + {file = "moto-4.1.15.tar.gz", hash = "sha256:272236d312457b324c645741ee589924fd61a96b84680dc2e607f8663c563551"}, ] [package.dependencies] @@ -2775,6 +2569,7 @@ efs = ["sshpubkeys (>=3.1.0)"] eks = ["sshpubkeys (>=3.1.0)"] glue = ["pyparsing (>=3.0.7)"] iotdata = ["jsondiff (>=1.1.2)"] +resourcegroupstaggingapi = ["PyYAML (>=5.1)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.2.8)", "py-partiql-parser (==0.3.6)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "sshpubkeys (>=3.1.0)"] route53resolver = ["sshpubkeys (>=3.1.0)"] s3 = ["PyYAML (>=5.1)", "py-partiql-parser (==0.3.6)"] s3crc32c = ["PyYAML (>=5.1)", "crc32c", "py-partiql-parser (==0.3.6)"] @@ -2784,40 +2579,37 @@ xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"] [[package]] name = "msal" -version = "1.28.0" +version = "1.31.1" description = "The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect." optional = false python-versions = ">=3.7" files = [ - {file = "msal-1.28.0-py3-none-any.whl", hash = "sha256:3064f80221a21cd535ad8c3fafbb3a3582cd9c7e9af0bb789ae14f726a0ca99b"}, - {file = "msal-1.28.0.tar.gz", hash = "sha256:80bbabe34567cb734efd2ec1869b2d98195c927455369d8077b3c542088c5c9d"}, + {file = "msal-1.31.1-py3-none-any.whl", hash = "sha256:29d9882de247e96db01386496d59f29035e5e841bcac892e6d7bf4390bf6bd17"}, + {file = "msal-1.31.1.tar.gz", hash = "sha256:11b5e6a3f802ffd3a72107203e20c4eac6ef53401961b880af2835b723d80578"}, ] [package.dependencies] -cryptography = ">=0.6,<45" +cryptography = ">=2.5,<46" PyJWT = {version = ">=1.0.0,<3", extras = ["crypto"]} requests = ">=2.0.0,<3" [package.extras] -broker = ["pymsalruntime (>=0.13.2,<0.15)"] +broker = ["pymsalruntime (>=0.14,<0.18)", "pymsalruntime (>=0.17,<0.18)"] [[package]] name = "msal-extensions" -version = "1.0.0" +version = "1.2.0" description = "Microsoft Authentication Library extensions (MSAL EX) provides a persistence API that can save your data on disk, encrypted on Windows, macOS and Linux. Concurrent data access will be coordinated by a file lock mechanism." optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "msal-extensions-1.0.0.tar.gz", hash = "sha256:c676aba56b0cce3783de1b5c5ecfe828db998167875126ca4b47dc6436451354"}, - {file = "msal_extensions-1.0.0-py2.py3-none-any.whl", hash = "sha256:91e3db9620b822d0ed2b4d1850056a0f133cba04455e62f11612e40f5502f2ee"}, + {file = "msal_extensions-1.2.0-py3-none-any.whl", hash = "sha256:cf5ba83a2113fa6dc011a254a72f1c223c88d7dfad74cc30617c4679a417704d"}, + {file = "msal_extensions-1.2.0.tar.gz", hash = "sha256:6f41b320bfd2933d631a215c91ca0dd3e67d84bd1a2f50ce917d5874ec646bef"}, ] [package.dependencies] -msal = ">=0.4.1,<2.0.0" -portalocker = [ - {version = ">=1.0,<3", markers = "python_version >= \"3.5\" and platform_system != \"Windows\""}, - {version = ">=1.6,<3", markers = "python_version >= \"3.5\" and platform_system == \"Windows\""}, -] +msal = ">=1.29,<2" +portalocker = ">=1.4,<3" [[package]] name = "mypy" @@ -2873,13 +2665,13 @@ reports = ["lxml"] [[package]] name = "mypy-boto3-dynamodb" -version = "1.33.0" -description = "Type annotations for boto3.DynamoDB 1.33.0 service generated with mypy-boto3-builder 7.20.3" +version = "1.35.74" +description = "Type annotations for boto3 DynamoDB 1.35.74 service generated with mypy-boto3-builder 8.5.0" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mypy-boto3-dynamodb-1.33.0.tar.gz", hash = "sha256:2cfe1089c89de61b1ec0e69a72ba3e6865a013ea0a37d318ab564983785d42f9"}, - {file = "mypy_boto3_dynamodb-1.33.0-py3-none-any.whl", hash = "sha256:619ea2cc311ced0ecb44b6e8d3bf3dd851fb7c53a34128b4ff6d6e6a11fdd41f"}, + {file = "mypy_boto3_dynamodb-1.35.74-py3-none-any.whl", hash = "sha256:b693b459abb1910cbb28f3a478ced8c6e6515f1bf136b45aca1a76b6146b5adb"}, + {file = "mypy_boto3_dynamodb-1.35.74.tar.gz", hash = "sha256:a815d044b8f5f4ba308ea3114916565fbd932fcaf218f8d0288b2840415f9c46"}, ] [package.dependencies] @@ -2898,18 +2690,15 @@ files = [ [[package]] name = "nodeenv" -version = "1.8.0" +version = "1.9.1" description = "Node.js virtual environment builder" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, - {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, ] -[package.dependencies] -setuptools = "*" - [[package]] name = "oauth2client" version = "4.1.3" @@ -2946,18 +2735,19 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "opencensus" -version = "0.11.2" +version = "0.11.4" description = "A stats collection and distributed tracing framework" optional = false python-versions = "*" files = [ - {file = "opencensus-0.11.2-py2.py3-none-any.whl", hash = "sha256:7a1a34b87c8db3d9984e97ff05739058342f24de1d700766d59044eee8fb3b3f"}, - {file = "opencensus-0.11.2.tar.gz", hash = "sha256:6154042a236b9ecdd55a23dfbb2743bb3deacd0687e3e0391ec2e0c74950d66f"}, + {file = "opencensus-0.11.4-py2.py3-none-any.whl", hash = "sha256:a18487ce68bc19900336e0ff4655c5a116daf10c1b3685ece8d971bddad6a864"}, + {file = "opencensus-0.11.4.tar.gz", hash = "sha256:cbef87d8b8773064ab60e5c2a1ced58bbaa38a6d052c41aec224958ce544eff2"}, ] [package.dependencies] google-api-core = {version = ">=1.0.0,<3.0.0", markers = "python_version >= \"3.6\""} opencensus-context = ">=0.1.3" +six = ">=1.16,<2.0" [[package]] name = "opencensus-context" @@ -2972,19 +2762,19 @@ files = [ [[package]] name = "opencensus-ext-azure" -version = "1.1.9" +version = "1.1.13" description = "OpenCensus Azure Monitor Exporter" optional = false python-versions = "*" files = [ - {file = "opencensus-ext-azure-1.1.9.tar.gz", hash = "sha256:507608b77e9d8eaab6ffd5ff11b7ceb87f54e4a6a940c4b814331b4d1b034151"}, - {file = "opencensus_ext_azure-1.1.9-py2.py3-none-any.whl", hash = "sha256:166c858e70fb7b39d01ff7d9f745588c521070ff2cfe177f77b63ee87f5076ac"}, + {file = "opencensus-ext-azure-1.1.13.tar.gz", hash = "sha256:aec30472177005379ba56a702a097d618c5f57558e1bb6676ec75f948130692a"}, + {file = "opencensus_ext_azure-1.1.13-py2.py3-none-any.whl", hash = "sha256:06001fac6f8588ba00726a3a7c6c7f2fc88bc8ad12a65afdca657923085393dd"}, ] [package.dependencies] azure-core = ">=1.12.0,<2.0.0" azure-identity = ">=1.5.0,<2.0.0" -opencensus = ">=0.11.2,<1.0.0" +opencensus = ">=0.11.4,<1.0.0" psutil = ">=5.6.3" requests = ">=2.19.0" @@ -3016,13 +2806,13 @@ files = [ [[package]] name = "pathspec" -version = "0.11.2" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] @@ -3058,28 +2848,29 @@ files = [ [[package]] name = "platformdirs" -version = "3.10.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] [[package]] name = "pluggy" -version = "1.2.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, - {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -3088,13 +2879,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "portalocker" -version = "2.7.0" +version = "2.10.1" description = "Wraps the portalocker recipe for easy usage" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "portalocker-2.7.0-py2.py3-none-any.whl", hash = "sha256:a07c5b4f3985c3cf4798369631fb7011adb498e2a46d8440efc75a8f29a0f983"}, - {file = "portalocker-2.7.0.tar.gz", hash = "sha256:032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51"}, + {file = "portalocker-2.10.1-py3-none-any.whl", hash = "sha256:53a5984ebc86a025552264b459b46a2086e269b21823cb572f8f28ee759e45bf"}, + {file = "portalocker-2.10.1.tar.gz", hash = "sha256:ef1bf844e878ab08aee7e40184156e1151f228f103aa5c6bd0724cc330960f8f"}, ] [package.dependencies] @@ -3103,17 +2894,17 @@ pywin32 = {version = ">=226", markers = "platform_system == \"Windows\""} [package.extras] docs = ["sphinx (>=1.7.1)"] redis = ["redis"] -tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "pytest-timeout (>=2.1.0)", "redis", "sphinx (>=6.0.0)"] +tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "pytest-timeout (>=2.1.0)", "redis", "sphinx (>=6.0.0)", "types-redis"] [[package]] name = "pre-commit" -version = "3.0.4" +version = "4.0.1" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pre_commit-3.0.4-py2.py3-none-any.whl", hash = "sha256:9e3255edb0c9e7fe9b4f328cb3dc86069f8fdc38026f1bf521018a05eaf4d67b"}, - {file = "pre_commit-3.0.4.tar.gz", hash = "sha256:bc4687478d55578c4ac37272fe96df66f73d9b5cf81be6f28627d4e712e752d5"}, + {file = "pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878"}, + {file = "pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2"}, ] [package.dependencies] @@ -3123,180 +2914,194 @@ nodeenv = ">=0.11.1" pyyaml = ">=5.1" virtualenv = ">=20.10.0" +[[package]] +name = "proto-plus" +version = "1.25.0" +description = "Beautiful, Pythonic protocol buffers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "proto_plus-1.25.0-py3-none-any.whl", hash = "sha256:c91fc4a65074ade8e458e95ef8bac34d4008daa7cce4a12d6707066fca648961"}, + {file = "proto_plus-1.25.0.tar.gz", hash = "sha256:fbb17f57f7bd05a68b7707e745e26528b0b3c34e378db91eef93912c54982d91"}, +] + +[package.dependencies] +protobuf = ">=3.19.0,<6.0.0dev" + +[package.extras] +testing = ["google-api-core (>=1.31.5)"] + [[package]] name = "protobuf" -version = "4.23.4" +version = "5.29.1" description = "" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "protobuf-4.23.4-cp310-abi3-win32.whl", hash = "sha256:5fea3c64d41ea5ecf5697b83e41d09b9589e6f20b677ab3c48e5f242d9b7897b"}, - {file = "protobuf-4.23.4-cp310-abi3-win_amd64.whl", hash = "sha256:7b19b6266d92ca6a2a87effa88ecc4af73ebc5cfde194dc737cf8ef23a9a3b12"}, - {file = "protobuf-4.23.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8547bf44fe8cec3c69e3042f5c4fb3e36eb2a7a013bb0a44c018fc1e427aafbd"}, - {file = "protobuf-4.23.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:fee88269a090ada09ca63551bf2f573eb2424035bcf2cb1b121895b01a46594a"}, - {file = "protobuf-4.23.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:effeac51ab79332d44fba74660d40ae79985901ac21bca408f8dc335a81aa597"}, - {file = "protobuf-4.23.4-cp37-cp37m-win32.whl", hash = "sha256:c3e0939433c40796ca4cfc0fac08af50b00eb66a40bbbc5dee711998fb0bbc1e"}, - {file = "protobuf-4.23.4-cp37-cp37m-win_amd64.whl", hash = "sha256:9053df6df8e5a76c84339ee4a9f5a2661ceee4a0dab019e8663c50ba324208b0"}, - {file = "protobuf-4.23.4-cp38-cp38-win32.whl", hash = "sha256:e1c915778d8ced71e26fcf43c0866d7499891bca14c4368448a82edc61fdbc70"}, - {file = "protobuf-4.23.4-cp38-cp38-win_amd64.whl", hash = "sha256:351cc90f7d10839c480aeb9b870a211e322bf05f6ab3f55fcb2f51331f80a7d2"}, - {file = "protobuf-4.23.4-cp39-cp39-win32.whl", hash = "sha256:6dd9b9940e3f17077e820b75851126615ee38643c2c5332aa7a359988820c720"}, - {file = "protobuf-4.23.4-cp39-cp39-win_amd64.whl", hash = "sha256:0a5759f5696895de8cc913f084e27fd4125e8fb0914bb729a17816a33819f474"}, - {file = "protobuf-4.23.4-py3-none-any.whl", hash = "sha256:e9d0be5bf34b275b9f87ba7407796556abeeba635455d036c7351f7c183ef8ff"}, - {file = "protobuf-4.23.4.tar.gz", hash = "sha256:ccd9430c0719dce806b93f89c91de7977304729e55377f872a92465d548329a9"}, + {file = "protobuf-5.29.1-cp310-abi3-win32.whl", hash = "sha256:22c1f539024241ee545cbcb00ee160ad1877975690b16656ff87dde107b5f110"}, + {file = "protobuf-5.29.1-cp310-abi3-win_amd64.whl", hash = "sha256:1fc55267f086dd4050d18ef839d7bd69300d0d08c2a53ca7df3920cc271a3c34"}, + {file = "protobuf-5.29.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:d473655e29c0c4bbf8b69e9a8fb54645bc289dead6d753b952e7aa660254ae18"}, + {file = "protobuf-5.29.1-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:b5ba1d0e4c8a40ae0496d0e2ecfdbb82e1776928a205106d14ad6985a09ec155"}, + {file = "protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:8ee1461b3af56145aca2800e6a3e2f928108c749ba8feccc6f5dd0062c410c0d"}, + {file = "protobuf-5.29.1-cp38-cp38-win32.whl", hash = "sha256:50879eb0eb1246e3a5eabbbe566b44b10348939b7cc1b267567e8c3d07213853"}, + {file = "protobuf-5.29.1-cp38-cp38-win_amd64.whl", hash = "sha256:027fbcc48cea65a6b17028510fdd054147057fa78f4772eb547b9274e5219331"}, + {file = "protobuf-5.29.1-cp39-cp39-win32.whl", hash = "sha256:5a41deccfa5e745cef5c65a560c76ec0ed8e70908a67cc8f4da5fce588b50d57"}, + {file = "protobuf-5.29.1-cp39-cp39-win_amd64.whl", hash = "sha256:012ce28d862ff417fd629285aca5d9772807f15ceb1a0dbd15b88f58c776c98c"}, + {file = "protobuf-5.29.1-py3-none-any.whl", hash = "sha256:32600ddb9c2a53dedc25b8581ea0f1fd8ea04956373c0c07577ce58d312522e0"}, + {file = "protobuf-5.29.1.tar.gz", hash = "sha256:683be02ca21a6ffe80db6dd02c0b5b2892322c59ca57fd6c872d652cb80549cb"}, ] [[package]] name = "psutil" -version = "5.9.5" +version = "6.1.0" description = "Cross-platform lib for process and system monitoring in Python." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "psutil-5.9.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:be8929ce4313f9f8146caad4272f6abb8bf99fc6cf59344a3167ecd74f4f203f"}, - {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ab8ed1a1d77c95453db1ae00a3f9c50227ebd955437bcf2a574ba8adbf6a74d5"}, - {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4aef137f3345082a3d3232187aeb4ac4ef959ba3d7c10c33dd73763fbc063da4"}, - {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ea8518d152174e1249c4f2a1c89e3e6065941df2fa13a1ab45327716a23c2b48"}, - {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:acf2aef9391710afded549ff602b5887d7a2349831ae4c26be7c807c0a39fac4"}, - {file = "psutil-5.9.5-cp27-none-win32.whl", hash = "sha256:5b9b8cb93f507e8dbaf22af6a2fd0ccbe8244bf30b1baad6b3954e935157ae3f"}, - {file = "psutil-5.9.5-cp27-none-win_amd64.whl", hash = "sha256:8c5f7c5a052d1d567db4ddd231a9d27a74e8e4a9c3f44b1032762bd7b9fdcd42"}, - {file = "psutil-5.9.5-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3c6f686f4225553615612f6d9bc21f1c0e305f75d7d8454f9b46e901778e7217"}, - {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a7dd9997128a0d928ed4fb2c2d57e5102bb6089027939f3b722f3a210f9a8da"}, - {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89518112647f1276b03ca97b65cc7f64ca587b1eb0278383017c2a0dcc26cbe4"}, - {file = "psutil-5.9.5-cp36-abi3-win32.whl", hash = "sha256:104a5cc0e31baa2bcf67900be36acde157756b9c44017b86b2c049f11957887d"}, - {file = "psutil-5.9.5-cp36-abi3-win_amd64.whl", hash = "sha256:b258c0c1c9d145a1d5ceffab1134441c4c5113b2417fafff7315a917a026c3c9"}, - {file = "psutil-5.9.5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c607bb3b57dc779d55e1554846352b4e358c10fff3abf3514a7a6601beebdb30"}, - {file = "psutil-5.9.5.tar.gz", hash = "sha256:5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c"}, + {file = "psutil-6.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"}, + {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"}, + {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:000d1d1ebd634b4efb383f4034437384e44a6d455260aaee2eca1e9c1b55f047"}, + {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5cd2bcdc75b452ba2e10f0e8ecc0b57b827dd5d7aaffbc6821b2a9a242823a76"}, + {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:045f00a43c737f960d273a83973b2511430d61f283a44c96bf13a6e829ba8fdc"}, + {file = "psutil-6.1.0-cp27-none-win32.whl", hash = "sha256:9118f27452b70bb1d9ab3198c1f626c2499384935aaf55388211ad982611407e"}, + {file = "psutil-6.1.0-cp27-none-win_amd64.whl", hash = "sha256:a8506f6119cff7015678e2bce904a4da21025cc70ad283a53b099e7620061d85"}, + {file = "psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688"}, + {file = "psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a"}, + {file = "psutil-6.1.0-cp36-cp36m-win32.whl", hash = "sha256:6d3fbbc8d23fcdcb500d2c9f94e07b1342df8ed71b948a2649b5cb060a7c94ca"}, + {file = "psutil-6.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1209036fbd0421afde505a4879dee3b2fd7b1e14fee81c0069807adcbbcca747"}, + {file = "psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e"}, + {file = "psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be"}, + {file = "psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a"}, ] [package.extras] -test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] +dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] [[package]] name = "psycopg2-binary" -version = "2.9.9" +version = "2.9.10" description = "psycopg2 - Python-PostgreSQL Database Adapter" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "psycopg2-binary-2.9.9.tar.gz", hash = "sha256:7f01846810177d829c7692f1f5ada8096762d9172af1b1a28d4ab5b77c923c1c"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c2470da5418b76232f02a2fcd2229537bb2d5a7096674ce61859c3229f2eb202"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c6af2a6d4b7ee9615cbb162b0738f6e1fd1f5c3eda7e5da17861eacf4c717ea7"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75723c3c0fbbf34350b46a3199eb50638ab22a0228f93fb472ef4d9becc2382b"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83791a65b51ad6ee6cf0845634859d69a038ea9b03d7b26e703f94c7e93dbcf9"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0ef4854e82c09e84cc63084a9e4ccd6d9b154f1dbdd283efb92ecd0b5e2b8c84"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed1184ab8f113e8d660ce49a56390ca181f2981066acc27cf637d5c1e10ce46e"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d2997c458c690ec2bc6b0b7ecbafd02b029b7b4283078d3b32a852a7ce3ddd98"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:b58b4710c7f4161b5e9dcbe73bb7c62d65670a87df7bcce9e1faaad43e715245"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0c009475ee389757e6e34611d75f6e4f05f0cf5ebb76c6037508318e1a1e0d7e"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8dbf6d1bc73f1d04ec1734bae3b4fb0ee3cb2a493d35ede9badbeb901fb40f6f"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-win32.whl", hash = "sha256:3f78fd71c4f43a13d342be74ebbc0666fe1f555b8837eb113cb7416856c79682"}, - {file = "psycopg2_binary-2.9.9-cp310-cp310-win_amd64.whl", hash = "sha256:876801744b0dee379e4e3c38b76fc89f88834bb15bf92ee07d94acd06ec890a0"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ee825e70b1a209475622f7f7b776785bd68f34af6e7a46e2e42f27b659b5bc26"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1ea665f8ce695bcc37a90ee52de7a7980be5161375d42a0b6c6abedbf0d81f0f"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:143072318f793f53819048fdfe30c321890af0c3ec7cb1dfc9cc87aa88241de2"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c332c8d69fb64979ebf76613c66b985414927a40f8defa16cf1bc028b7b0a7b0"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7fc5a5acafb7d6ccca13bfa8c90f8c51f13d8fb87d95656d3950f0158d3ce53"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977646e05232579d2e7b9c59e21dbe5261f403a88417f6a6512e70d3f8a046be"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b6356793b84728d9d50ead16ab43c187673831e9d4019013f1402c41b1db9b27"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bc7bb56d04601d443f24094e9e31ae6deec9ccb23581f75343feebaf30423359"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:77853062a2c45be16fd6b8d6de2a99278ee1d985a7bd8b103e97e41c034006d2"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:78151aa3ec21dccd5cdef6c74c3e73386dcdfaf19bced944169697d7ac7482fc"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-win32.whl", hash = "sha256:dc4926288b2a3e9fd7b50dc6a1909a13bbdadfc67d93f3374d984e56f885579d"}, - {file = "psycopg2_binary-2.9.9-cp311-cp311-win_amd64.whl", hash = "sha256:b76bedd166805480ab069612119ea636f5ab8f8771e640ae103e05a4aae3e417"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8532fd6e6e2dc57bcb3bc90b079c60de896d2128c5d9d6f24a63875a95a088cf"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0605eaed3eb239e87df0d5e3c6489daae3f7388d455d0c0b4df899519c6a38d"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f8544b092a29a6ddd72f3556a9fcf249ec412e10ad28be6a0c0d948924f2212"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d423c8d8a3c82d08fe8af900ad5b613ce3632a1249fd6a223941d0735fce493"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e5afae772c00980525f6d6ecf7cbca55676296b580c0e6abb407f15f3706996"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e6f98446430fdf41bd36d4faa6cb409f5140c1c2cf58ce0bbdaf16af7d3f119"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c77e3d1862452565875eb31bdb45ac62502feabbd53429fdc39a1cc341d681ba"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:cb16c65dcb648d0a43a2521f2f0a2300f40639f6f8c1ecbc662141e4e3e1ee07"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:911dda9c487075abd54e644ccdf5e5c16773470a6a5d3826fda76699410066fb"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:57fede879f08d23c85140a360c6a77709113efd1c993923c59fde17aa27599fe"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-win32.whl", hash = "sha256:64cf30263844fa208851ebb13b0732ce674d8ec6a0c86a4e160495d299ba3c93"}, - {file = "psycopg2_binary-2.9.9-cp312-cp312-win_amd64.whl", hash = "sha256:81ff62668af011f9a48787564ab7eded4e9fb17a4a6a74af5ffa6a457400d2ab"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2293b001e319ab0d869d660a704942c9e2cce19745262a8aba2115ef41a0a42a"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ef7df18daf2c4c07e2695e8cfd5ee7f748a1d54d802330985a78d2a5a6dca9"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a602ea5aff39bb9fac6308e9c9d82b9a35c2bf288e184a816002c9fae930b77"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8359bf4791968c5a78c56103702000105501adb557f3cf772b2c207284273984"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:275ff571376626195ab95a746e6a04c7df8ea34638b99fc11160de91f2fef503"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f9b5571d33660d5009a8b3c25dc1db560206e2d2f89d3df1cb32d72c0d117d52"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:420f9bbf47a02616e8554e825208cb947969451978dceb77f95ad09c37791dae"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4154ad09dac630a0f13f37b583eae260c6aa885d67dfbccb5b02c33f31a6d420"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a148c5d507bb9b4f2030a2025c545fccb0e1ef317393eaba42e7eabd28eb6041"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-win32.whl", hash = "sha256:68fc1f1ba168724771e38bee37d940d2865cb0f562380a1fb1ffb428b75cb692"}, - {file = "psycopg2_binary-2.9.9-cp37-cp37m-win_amd64.whl", hash = "sha256:281309265596e388ef483250db3640e5f414168c5a67e9c665cafce9492eda2f"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:60989127da422b74a04345096c10d416c2b41bd7bf2a380eb541059e4e999980"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:246b123cc54bb5361588acc54218c8c9fb73068bf227a4a531d8ed56fa3ca7d6"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34eccd14566f8fe14b2b95bb13b11572f7c7d5c36da61caf414d23b91fcc5d94"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18d0ef97766055fec15b5de2c06dd8e7654705ce3e5e5eed3b6651a1d2a9a152"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d3f82c171b4ccd83bbaf35aa05e44e690113bd4f3b7b6cc54d2219b132f3ae55"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead20f7913a9c1e894aebe47cccf9dc834e1618b7aa96155d2091a626e59c972"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ca49a8119c6cbd77375ae303b0cfd8c11f011abbbd64601167ecca18a87e7cdd"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:323ba25b92454adb36fa425dc5cf6f8f19f78948cbad2e7bc6cdf7b0d7982e59"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:1236ed0952fbd919c100bc839eaa4a39ebc397ed1c08a97fc45fee2a595aa1b3"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:729177eaf0aefca0994ce4cffe96ad3c75e377c7b6f4efa59ebf003b6d398716"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-win32.whl", hash = "sha256:804d99b24ad523a1fe18cc707bf741670332f7c7412e9d49cb5eab67e886b9b5"}, - {file = "psycopg2_binary-2.9.9-cp38-cp38-win_amd64.whl", hash = "sha256:a6cdcc3ede532f4a4b96000b6362099591ab4a3e913d70bcbac2b56c872446f7"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:72dffbd8b4194858d0941062a9766f8297e8868e1dd07a7b36212aaa90f49472"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:30dcc86377618a4c8f3b72418df92e77be4254d8f89f14b8e8f57d6d43603c0f"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31a34c508c003a4347d389a9e6fcc2307cc2150eb516462a7a17512130de109e"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15208be1c50b99203fe88d15695f22a5bed95ab3f84354c494bcb1d08557df67"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1873aade94b74715be2246321c8650cabf5a0d098a95bab81145ffffa4c13876"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a58c98a7e9c021f357348867f537017057c2ed7f77337fd914d0bedb35dace7"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4686818798f9194d03c9129a4d9a702d9e113a89cb03bffe08c6cf799e053291"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ebdc36bea43063116f0486869652cb2ed7032dbc59fbcb4445c4862b5c1ecf7f"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:ca08decd2697fdea0aea364b370b1249d47336aec935f87b8bbfd7da5b2ee9c1"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ac05fb791acf5e1a3e39402641827780fe44d27e72567a000412c648a85ba860"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-win32.whl", hash = "sha256:9dba73be7305b399924709b91682299794887cbbd88e38226ed9f6712eabee90"}, - {file = "psycopg2_binary-2.9.9-cp39-cp39-win_amd64.whl", hash = "sha256:f7ae5d65ccfbebdfa761585228eb4d0df3a8b15cfb53bd953e713e09fbb12957"}, + {file = "psycopg2-binary-2.9.10.tar.gz", hash = "sha256:4b3df0e6990aa98acda57d983942eff13d824135fe2250e6522edaa782a06de2"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:0ea8e3d0ae83564f2fc554955d327fa081d065c8ca5cc6d2abb643e2c9c1200f"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:3e9c76f0ac6f92ecfc79516a8034a544926430f7b080ec5a0537bca389ee0906"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ad26b467a405c798aaa1458ba09d7e2b6e5f96b1ce0ac15d82fd9f95dc38a92"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:270934a475a0e4b6925b5f804e3809dd5f90f8613621d062848dd82f9cd62007"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:48b338f08d93e7be4ab2b5f1dbe69dc5e9ef07170fe1f86514422076d9c010d0"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f4152f8f76d2023aac16285576a9ecd2b11a9895373a1f10fd9db54b3ff06b4"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32581b3020c72d7a421009ee1c6bf4a131ef5f0a968fab2e2de0c9d2bb4577f1"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:2ce3e21dc3437b1d960521eca599d57408a695a0d3c26797ea0f72e834c7ffe5"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e984839e75e0b60cfe75e351db53d6db750b00de45644c5d1f7ee5d1f34a1ce5"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c4745a90b78e51d9ba06e2088a2fe0c693ae19cc8cb051ccda44e8df8a6eb53"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-win32.whl", hash = "sha256:e5720a5d25e3b99cd0dc5c8a440570469ff82659bb09431c1439b92caf184d3b"}, + {file = "psycopg2_binary-2.9.10-cp310-cp310-win_amd64.whl", hash = "sha256:3c18f74eb4386bf35e92ab2354a12c17e5eb4d9798e4c0ad3a00783eae7cd9f1"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:04392983d0bb89a8717772a193cfaac58871321e3ec69514e1c4e0d4957b5aff"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:1a6784f0ce3fec4edc64e985865c17778514325074adf5ad8f80636cd029ef7c"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5f86c56eeb91dc3135b3fd8a95dc7ae14c538a2f3ad77a19645cf55bab1799c"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b3d2491d4d78b6b14f76881905c7a8a8abcf974aad4a8a0b065273a0ed7a2cb"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2286791ececda3a723d1910441c793be44625d86d1a4e79942751197f4d30341"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:512d29bb12608891e349af6a0cccedce51677725a921c07dba6342beaf576f9a"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5a507320c58903967ef7384355a4da7ff3f28132d679aeb23572753cbf2ec10b"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6d4fa1079cab9018f4d0bd2db307beaa612b0d13ba73b5c6304b9fe2fb441ff7"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:851485a42dbb0bdc1edcdabdb8557c09c9655dfa2ca0460ff210522e073e319e"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:35958ec9e46432d9076286dda67942ed6d968b9c3a6a2fd62b48939d1d78bf68"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-win32.whl", hash = "sha256:ecced182e935529727401b24d76634a357c71c9275b356efafd8a2a91ec07392"}, + {file = "psycopg2_binary-2.9.10-cp311-cp311-win_amd64.whl", hash = "sha256:ee0e8c683a7ff25d23b55b11161c2663d4b099770f6085ff0a20d4505778d6b4"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:880845dfe1f85d9d5f7c412efea7a08946a46894537e4e5d091732eb1d34d9a0"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9440fa522a79356aaa482aa4ba500b65f28e5d0e63b801abf6aa152a29bd842a"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3923c1d9870c49a2d44f795df0c889a22380d36ef92440ff618ec315757e539"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b2c956c028ea5de47ff3a8d6b3cc3330ab45cf0b7c3da35a2d6ff8420896526"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f758ed67cab30b9a8d2833609513ce4d3bd027641673d4ebc9c067e4d208eec1"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cd9b4f2cfab88ed4a9106192de509464b75a906462fb846b936eabe45c2063e"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dc08420625b5a20b53551c50deae6e231e6371194fa0651dbe0fb206452ae1f"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d7cd730dfa7c36dbe8724426bf5612798734bff2d3c3857f36f2733f5bfc7c00"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:155e69561d54d02b3c3209545fb08938e27889ff5a10c19de8d23eb5a41be8a5"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3cc28a6fd5a4a26224007712e79b81dbaee2ffb90ff406256158ec4d7b52b47"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-win32.whl", hash = "sha256:ec8a77f521a17506a24a5f626cb2aee7850f9b69a0afe704586f63a464f3cd64"}, + {file = "psycopg2_binary-2.9.10-cp312-cp312-win_amd64.whl", hash = "sha256:18c5ee682b9c6dd3696dad6e54cc7ff3a1a9020df6a5c0f861ef8bfd338c3ca0"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:26540d4a9a4e2b096f1ff9cce51253d0504dca5a85872c7f7be23be5a53eb18d"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e217ce4d37667df0bc1c397fdcd8de5e81018ef305aed9415c3b093faaeb10fb"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:245159e7ab20a71d989da00f280ca57da7641fa2cdcf71749c193cea540a74f7"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c4ded1a24b20021ebe677b7b08ad10bf09aac197d6943bfe6fec70ac4e4690d"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3abb691ff9e57d4a93355f60d4f4c1dd2d68326c968e7db17ea96df3c023ef73"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8608c078134f0b3cbd9f89b34bd60a943b23fd33cc5f065e8d5f840061bd0673"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:230eeae2d71594103cd5b93fd29d1ace6420d0b86f4778739cb1a5a32f607d1f"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:bb89f0a835bcfc1d42ccd5f41f04870c1b936d8507c6df12b7737febc40f0909"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f0c2d907a1e102526dd2986df638343388b94c33860ff3bbe1384130828714b1"}, + {file = "psycopg2_binary-2.9.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f8157bed2f51db683f31306aa497311b560f2265998122abe1dce6428bd86567"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:eb09aa7f9cecb45027683bb55aebaaf45a0df8bf6de68801a6afdc7947bb09d4"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b73d6d7f0ccdad7bc43e6d34273f70d587ef62f824d7261c4ae9b8b1b6af90e8"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce5ab4bf46a211a8e924d307c1b1fcda82368586a19d0a24f8ae166f5c784864"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:056470c3dc57904bbf63d6f534988bafc4e970ffd50f6271fc4ee7daad9498a5"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aa0e31fa4bb82578f3a6c74a73c273367727de397a7a0f07bd83cbea696baa"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8de718c0e1c4b982a54b41779667242bc630b2197948405b7bd8ce16bcecac92"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5c370b1e4975df846b0277b4deba86419ca77dbc25047f535b0bb03d1a544d44"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:ffe8ed017e4ed70f68b7b371d84b7d4a790368db9203dfc2d222febd3a9c8863"}, + {file = "psycopg2_binary-2.9.10-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:8aecc5e80c63f7459a1a2ab2c64df952051df196294d9f739933a9f6687e86b3"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:7a813c8bdbaaaab1f078014b9b0b13f5de757e2b5d9be6403639b298a04d218b"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d00924255d7fc916ef66e4bf22f354a940c67179ad3fd7067d7a0a9c84d2fbfc"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7559bce4b505762d737172556a4e6ea8a9998ecac1e39b5233465093e8cee697"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8b58f0a96e7a1e341fc894f62c1177a7c83febebb5ff9123b579418fdc8a481"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b269105e59ac96aba877c1707c600ae55711d9dcd3fc4b5012e4af68e30c648"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:79625966e176dc97ddabc142351e0409e28acf4660b88d1cf6adb876d20c490d"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:8aabf1c1a04584c168984ac678a668094d831f152859d06e055288fa515e4d30"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:19721ac03892001ee8fdd11507e6a2e01f4e37014def96379411ca99d78aeb2c"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7f5d859928e635fa3ce3477704acee0f667b3a3d3e4bb109f2b18d4005f38287"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-win32.whl", hash = "sha256:3216ccf953b3f267691c90c6fe742e45d890d8272326b4a8b20850a03d05b7b8"}, + {file = "psycopg2_binary-2.9.10-cp39-cp39-win_amd64.whl", hash = "sha256:30e34c4e97964805f715206c7b789d54a78b70f3ff19fbe590104b71c45600e5"}, ] [[package]] name = "pyasn1" -version = "0.4.8" -description = "ASN.1 types and codecs" +version = "0.5.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" optional = false -python-versions = "*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "pyasn1-0.4.8-py2.py3-none-any.whl", hash = "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d"}, - {file = "pyasn1-0.4.8.tar.gz", hash = "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"}, + {file = "pyasn1-0.5.1-py2.py3-none-any.whl", hash = "sha256:4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58"}, + {file = "pyasn1-0.5.1.tar.gz", hash = "sha256:6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c"}, ] [[package]] name = "pyasn1-modules" -version = "0.3.0" +version = "0.4.1" description = "A collection of ASN.1-based protocols modules" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +python-versions = ">=3.8" files = [ - {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, - {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, + {file = "pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd"}, + {file = "pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c"}, ] [package.dependencies] -pyasn1 = ">=0.4.6,<0.6.0" +pyasn1 = ">=0.4.6,<0.7.0" [[package]] name = "pycodestyle" -version = "2.12.0" +version = "2.12.1" description = "Python style guide checker" optional = false python-versions = ">=3.8" files = [ - {file = "pycodestyle-2.12.0-py2.py3-none-any.whl", hash = "sha256:949a39f6b86c3e1515ba1787c2022131d165a8ad271b11370a8819aa070269e4"}, - {file = "pycodestyle-2.12.0.tar.gz", hash = "sha256:442f950141b4f43df752dd303511ffded3a04c2b6fb7f65980574f0c31e6e79c"}, + {file = "pycodestyle-2.12.1-py2.py3-none-any.whl", hash = "sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3"}, + {file = "pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"}, ] [[package]] name = "pycparser" -version = "2.21" +version = "2.22" description = "C parser in Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] @@ -3322,13 +3127,13 @@ timezone = ["tzdata"] [[package]] name = "pydantic-collections" -version = "0.5.4" +version = "0.6.0" description = "Collections of pydantic models" optional = false python-versions = "*" files = [ - {file = "pydantic-collections-0.5.4.tar.gz", hash = "sha256:5bce65519456b4829f918c2456d58aac3620a866603461a702aafffe08845966"}, - {file = "pydantic_collections-0.5.4-py3-none-any.whl", hash = "sha256:5d107170c89fb17de229f5e8c4b4355af27594444fd0f93086048ccafa69238b"}, + {file = "pydantic_collections-0.6.0-py3-none-any.whl", hash = "sha256:ec559722abf6a0f80e6f00b3d28f0f39c0ed5feb1641166230eb75e9da880162"}, + {file = "pydantic_collections-0.6.0.tar.gz", hash = "sha256:c34d3fd1df5600b315cdecdd8e74eacd4c8c607b7e3f2c9392b2a15850a4ef9e"}, ] [package.dependencies] @@ -3458,27 +3263,27 @@ urllib3 = ">=1.26.0" [[package]] name = "pygments" -version = "2.16.1" +version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, - {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, ] [package.extras] -plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyjwt" -version = "2.8.0" +version = "2.10.1" description = "JSON Web Token implementation in Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "PyJWT-2.8.0-py3-none-any.whl", hash = "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320"}, - {file = "PyJWT-2.8.0.tar.gz", hash = "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de"}, + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, ] [package.dependencies] @@ -3486,8 +3291,8 @@ cryptography = {version = ">=3.4.0", optional = true, markers = "extra == \"cryp [package.extras] crypto = ["cryptography (>=3.4.0)"] -dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] -docs = ["sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] @@ -3573,20 +3378,20 @@ test = ["django-stubs", "pytest (==8.3.2)", "pytest-asyncio (==0.24.0)", "pytest [[package]] name = "pyopenssl" -version = "24.2.1" +version = "24.3.0" description = "Python wrapper module around the OpenSSL library" optional = false python-versions = ">=3.7" files = [ - {file = "pyOpenSSL-24.2.1-py3-none-any.whl", hash = "sha256:967d5719b12b243588573f39b0c677637145c7a1ffedcd495a487e58177fbb8d"}, - {file = "pyopenssl-24.2.1.tar.gz", hash = "sha256:4247f0dbe3748d560dcbb2ff3ea01af0f9a1a001ef5f7c4c647956ed8cbf0e95"}, + {file = "pyOpenSSL-24.3.0-py3-none-any.whl", hash = "sha256:e474f5a473cd7f92221cc04976e48f4d11502804657a08a989fb3be5514c904a"}, + {file = "pyopenssl-24.3.0.tar.gz", hash = "sha256:49f7a019577d834746bc55c5fce6ecbcec0f2b4ec5ce1cf43a9a173b8138bb36"}, ] [package.dependencies] -cryptography = ">=41.0.5,<44" +cryptography = ">=41.0.5,<45" [package.extras] -docs = ["sphinx (!=5.2.0,!=5.2.0.post0,!=7.2.5)", "sphinx-rtd-theme"] +docs = ["sphinx (!=5.2.0,!=5.2.0.post0,!=7.2.5)", "sphinx_rtd_theme"] test = ["pretend", "pytest (>=3.0.1)", "pytest-rerunfailures"] [[package]] @@ -3636,13 +3441,13 @@ files = [ [[package]] name = "pysaml2" -version = "7.4.2" +version = "7.5.0" description = "Python implementation of SAML Version 2 Standard" optional = false python-versions = ">=3.9,<4.0" files = [ - {file = "pysaml2-7.4.2-py3-none-any.whl", hash = "sha256:6616abe0526915cabef6af3a81570bd4c339bedd8db3ab12dcd4fa0612896837"}, - {file = "pysaml2-7.4.2.tar.gz", hash = "sha256:2bc5147b3b2f902a9131bf08240c068becea29994aafb7654a63d7270ac5b63b"}, + {file = "pysaml2-7.5.0-py3-none-any.whl", hash = "sha256:bc6627cc344476a83c757f440a73fda1369f13b6fda1b4e16bca63ffbabb5318"}, + {file = "pysaml2-7.5.0.tar.gz", hash = "sha256:f36871d4e5ee857c6b85532e942550d2cf90ea4ee943d75eb681044bbc4f54f7"}, ] [package.dependencies] @@ -3652,7 +3457,7 @@ pyopenssl = "*" python-dateutil = "*" pytz = "*" requests = ">=2,<3" -xmlschema = ">=1.2.1" +xmlschema = ">=2,<3" [package.extras] s2repoze = ["paste", "repoze.who", "zope.interface"] @@ -3698,13 +3503,13 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale [[package]] name = "pytest-django" -version = "4.8.0" +version = "4.9.0" description = "A Django plugin for pytest." optional = false python-versions = ">=3.8" files = [ - {file = "pytest-django-4.8.0.tar.gz", hash = "sha256:5d054fe011c56f3b10f978f41a8efb2e5adfc7e680ef36fb571ada1f24779d90"}, - {file = "pytest_django-4.8.0-py3-none-any.whl", hash = "sha256:ca1ddd1e0e4c227cf9e3e40a6afc6d106b3e70868fd2ac5798a22501271cd0c7"}, + {file = "pytest_django-4.9.0-py3-none-any.whl", hash = "sha256:1d83692cb39188682dbb419ff0393867e9904094a549a7d38a3154d5731b2b99"}, + {file = "pytest_django-4.9.0.tar.gz", hash = "sha256:8bf7bc358c9ae6f6fc51b6cebb190fe20212196e6807121f11bd6a3b03428314"}, ] [package.dependencies] @@ -3760,6 +3565,21 @@ pytest = ">=5.0" [package.extras] dev = ["pre-commit", "pytest-asyncio", "tox"] +[[package]] +name = "pytest-structlog" +version = "1.1" +description = "Structured logging assertions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest_structlog-1.1-py3-none-any.whl", hash = "sha256:928475948f886bc027f1550dccb892fb46bfb8bb1ddb0c44ab4fa3c5b3f3079a"}, + {file = "pytest_structlog-1.1.tar.gz", hash = "sha256:440123b0a7f93482383995b3fb796ed8c1b9a37edf405683a34774993ef09543"}, +] + +[package.dependencies] +pytest = "*" +structlog = ">=22.2.0" + [[package]] name = "pytest-xdist" version = "3.6.1" @@ -3782,13 +3602,13 @@ testing = ["filelock"] [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -3810,13 +3630,13 @@ cli = ["click (>=5.0)"] [[package]] name = "python-gnupg" -version = "0.5.1" +version = "0.5.3" description = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)" optional = false python-versions = "*" files = [ - {file = "python-gnupg-0.5.1.tar.gz", hash = "sha256:5674bad4e93876c0b0d3197e314d7f942d39018bf31e2b833f6788a6813c3fb8"}, - {file = "python_gnupg-0.5.1-py2.py3-none-any.whl", hash = "sha256:bf9b2d9032ef38139b7d64184176cd0b293eaeae6e4f93f50e304c7051174482"}, + {file = "python-gnupg-0.5.3.tar.gz", hash = "sha256:290d8ddb9cd63df96cfe9284b9b265f19fd6e145e5582dc58fd7271f026d0a47"}, + {file = "python_gnupg-0.5.3-py2.py3-none-any.whl", hash = "sha256:2f8a4c6f63766feca6cc1416408f8b84e1b914fe7b54514e570fc5cbe92e9248"}, ] [[package]] @@ -3830,6 +3650,20 @@ files = [ {file = "python_http_client-3.3.7.tar.gz", hash = "sha256:bf841ee45262747e00dec7ee9971dfb8c7d83083f5713596488d67739170cea0"}, ] +[[package]] +name = "python-ipware" +version = "3.0.0" +description = "A Python package to retrieve user's IP address" +optional = false +python-versions = ">=3.7" +files = [ + {file = "python_ipware-3.0.0-py3-none-any.whl", hash = "sha256:fc936e6e7ec9fcc107f9315df40658f468ac72f739482a707181742882e36b60"}, + {file = "python_ipware-3.0.0.tar.gz", hash = "sha256:9117b1c4dddcb5d5ca49e6a9617de2fc66aec2ef35394563ac4eecabdf58c062"}, +] + +[package.extras] +dev = ["coverage[toml]", "coveralls (>=3.3,<4.0)", "ruff", "twine"] + [[package]] name = "python3-openid" version = "3.2.0" @@ -3850,114 +3684,121 @@ postgresql = ["psycopg2"] [[package]] name = "pytz" -version = "2023.4" +version = "2024.2" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2023.4-py2.py3-none-any.whl", hash = "sha256:f90ef520d95e7c46951105338d918664ebfd6f1d995bd7d153127ce90efafa6a"}, - {file = "pytz-2023.4.tar.gz", hash = "sha256:31d4583c4ed539cd037956140d695e42c033a19e984bfce9964a3f7d59bc2b40"}, + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, ] [[package]] name = "pywin32" -version = "306" +version = "308" description = "Python for Window Extensions" optional = false python-versions = "*" files = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, ] [[package]] name = "pyyaml" -version = "6.0.1" +version = "6.0.2" description = "YAML parser and emitter for Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] name = "redis" -version = "5.0.1" +version = "5.2.1" description = "Python client for Redis database and key-value store" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "redis-5.0.1-py3-none-any.whl", hash = "sha256:ed4802971884ae19d640775ba3b03aa2e7bd5e8fb8dfaed2decce4d0fc48391f"}, - {file = "redis-5.0.1.tar.gz", hash = "sha256:0dab495cd5753069d3bc650a0dde8a8f9edde16fc5691b689a566eda58100d0f"}, + {file = "redis-5.2.1-py3-none-any.whl", hash = "sha256:ee7e1056b9aea0f04c6c2ed59452947f34c4940ee025f5dd83e6a6418b6989e4"}, + {file = "redis-5.2.1.tar.gz", hash = "sha256:16f2e22dff21d5125e8481515e386711a34cbec50f0e44413dd7d9c060a54e0f"}, ] [package.dependencies] -async-timeout = {version = ">=4.0.2", markers = "python_full_version <= \"3.11.2\""} +async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} [package.extras] -hiredis = ["hiredis (>=1.0.0)"] -ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)"] +hiredis = ["hiredis (>=3.0.0)"] +ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==23.2.1)", "requests (>=2.31.0)"] [[package]] name = "requests" @@ -3982,49 +3823,47 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "requests-futures" -version = "1.0.1" +version = "1.0.2" description = "Asynchronous Python HTTP for Humans." optional = false python-versions = "*" files = [ - {file = "requests-futures-1.0.1.tar.gz", hash = "sha256:f55a4ef80070e2858e7d1e73123d2bfaeaf25b93fd34384d8ddf148e2b676373"}, - {file = "requests_futures-1.0.1-py2.py3-none-any.whl", hash = "sha256:4a2f5472e9911a79532137d156aa937cd9cd90fec55677f71b2976d1f7a66d38"}, + {file = "requests_futures-1.0.2-py2.py3-none-any.whl", hash = "sha256:a3534af7c2bf670cd7aa730716e9e7d4386497554f87792be7514063b8912897"}, + {file = "requests_futures-1.0.2.tar.gz", hash = "sha256:6b7eb57940336e800faebc3dab506360edec9478f7b22dc570858ad3aa7458da"}, ] [package.dependencies] requests = ">=1.2.0" [package.extras] -dev = ["black (>=22.3.0)", "build (>=0.7.0)", "isort (>=5.11.4)", "pyflakes (>=2.2.0)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "pytest-network (>=0.0.1)", "readme-renderer[rst] (>=26.0)", "twine (>=3.4.2)"] +dev = ["Werkzeug (>=3.0.6)", "black (>=24.3.0,<25.0.0)", "build (>=0.7.0)", "docutils (<=0.20.1)", "greenlet (<=2.0.2)", "greenlet (>=3.0.0)", "isort (>=5.11.4)", "pyflakes (>=2.2.0)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "pytest-httpbin (>=2.0.0)", "readme-renderer[rst] (>=26.0)", "twine (>=3.4.2)"] [[package]] name = "requests-mock" -version = "1.11.0" +version = "1.12.1" description = "Mock out responses from the requests package" optional = false -python-versions = "*" +python-versions = ">=3.5" files = [ - {file = "requests-mock-1.11.0.tar.gz", hash = "sha256:ef10b572b489a5f28e09b708697208c4a3b2b89ef80a9f01584340ea357ec3c4"}, - {file = "requests_mock-1.11.0-py2.py3-none-any.whl", hash = "sha256:f7fae383f228633f6bececebdab236c478ace2284d6292c6e7e2867b9ab74d15"}, + {file = "requests-mock-1.12.1.tar.gz", hash = "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"}, + {file = "requests_mock-1.12.1-py2.py3-none-any.whl", hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563"}, ] [package.dependencies] -requests = ">=2.3,<3" -six = "*" +requests = ">=2.22,<3" [package.extras] fixture = ["fixtures"] -test = ["fixtures", "mock", "purl", "pytest", "requests-futures", "sphinx", "testtools"] [[package]] name = "requests-oauthlib" -version = "1.3.1" +version = "2.0.0" description = "OAuthlib authentication support for Requests." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.4" files = [ - {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, - {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, + {file = "requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"}, + {file = "requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36"}, ] [package.dependencies] @@ -4228,122 +4067,152 @@ tornado = ["tornado (>=6)"] [[package]] name = "setuptools" -version = "70.0.0" +version = "75.6.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, - {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, + {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"}, + {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] [[package]] name = "shortuuid" -version = "1.0.11" +version = "1.0.13" description = "A generator library for concise, unambiguous and URL-safe UUIDs." optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "shortuuid-1.0.11-py3-none-any.whl", hash = "sha256:27ea8f28b1bd0bf8f15057a3ece57275d2059d2b0bb02854f02189962c13b6aa"}, - {file = "shortuuid-1.0.11.tar.gz", hash = "sha256:fc75f2615914815a8e4cb1501b3a513745cb66ef0fd5fc6fb9f8c3fa3481f789"}, + {file = "shortuuid-1.0.13-py3-none-any.whl", hash = "sha256:a482a497300b49b4953e15108a7913244e1bb0d41f9d332f5e9925dba33a3c5a"}, + {file = "shortuuid-1.0.13.tar.gz", hash = "sha256:3bb9cf07f606260584b1df46399c0b87dd84773e7b25912b7e391e30797c5e72"}, ] [[package]] name = "simplejson" -version = "3.19.1" +version = "3.19.3" description = "Simple, fast, extensible JSON encoder/decoder for Python" optional = false -python-versions = ">=2.5, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "simplejson-3.19.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:412e58997a30c5deb8cab5858b8e2e5b40ca007079f7010ee74565cc13d19665"}, - {file = "simplejson-3.19.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e765b1f47293dedf77946f0427e03ee45def2862edacd8868c6cf9ab97c8afbd"}, - {file = "simplejson-3.19.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:3231100edee292da78948fa0a77dee4e5a94a0a60bcba9ed7a9dc77f4d4bb11e"}, - {file = "simplejson-3.19.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:081ea6305b3b5e84ae7417e7f45956db5ea3872ec497a584ec86c3260cda049e"}, - {file = "simplejson-3.19.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:f253edf694ce836631b350d758d00a8c4011243d58318fbfbe0dd54a6a839ab4"}, - {file = "simplejson-3.19.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:5db86bb82034e055257c8e45228ca3dbce85e38d7bfa84fa7b2838e032a3219c"}, - {file = "simplejson-3.19.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:69a8b10a4f81548bc1e06ded0c4a6c9042c0be0d947c53c1ed89703f7e613950"}, - {file = "simplejson-3.19.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:58ee5e24d6863b22194020eb62673cf8cc69945fcad6b283919490f6e359f7c5"}, - {file = "simplejson-3.19.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:73d0904c2471f317386d4ae5c665b16b5c50ab4f3ee7fd3d3b7651e564ad74b1"}, - {file = "simplejson-3.19.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:66d780047c31ff316ee305c3f7550f352d87257c756413632303fc59fef19eac"}, - {file = "simplejson-3.19.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd4d50a27b065447c9c399f0bf0a993bd0e6308db8bbbfbc3ea03b41c145775a"}, - {file = "simplejson-3.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c16ec6a67a5f66ab004190829eeede01c633936375edcad7cbf06d3241e5865"}, - {file = "simplejson-3.19.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17a963e8dd4d81061cc05b627677c1f6a12e81345111fbdc5708c9f088d752c9"}, - {file = "simplejson-3.19.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7e78d79b10aa92f40f54178ada2b635c960d24fc6141856b926d82f67e56d169"}, - {file = "simplejson-3.19.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad071cd84a636195f35fa71de2186d717db775f94f985232775794d09f8d9061"}, - {file = "simplejson-3.19.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e7c70f19405e5f99168077b785fe15fcb5f9b3c0b70b0b5c2757ce294922c8c"}, - {file = "simplejson-3.19.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:54fca2b26bcd1c403146fd9461d1da76199442297160721b1d63def2a1b17799"}, - {file = "simplejson-3.19.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:48600a6e0032bed17c20319d91775f1797d39953ccfd68c27f83c8d7fc3b32cb"}, - {file = "simplejson-3.19.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:93f5ac30607157a0b2579af59a065bcfaa7fadeb4875bf927a8f8b6739c8d910"}, - {file = "simplejson-3.19.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b79642a599740603ca86cf9df54f57a2013c47e1dd4dd2ae4769af0a6816900"}, - {file = "simplejson-3.19.1-cp310-cp310-win32.whl", hash = "sha256:d9f2c27f18a0b94107d57294aab3d06d6046ea843ed4a45cae8bd45756749f3a"}, - {file = "simplejson-3.19.1-cp310-cp310-win_amd64.whl", hash = "sha256:5673d27806085d2a413b3be5f85fad6fca4b7ffd31cfe510bbe65eea52fff571"}, - {file = "simplejson-3.19.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:79c748aa61fd8098d0472e776743de20fae2686edb80a24f0f6593a77f74fe86"}, - {file = "simplejson-3.19.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:390f4a8ca61d90bcf806c3ad644e05fa5890f5b9a72abdd4ca8430cdc1e386fa"}, - {file = "simplejson-3.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d61482b5d18181e6bb4810b4a6a24c63a490c3a20e9fbd7876639653e2b30a1a"}, - {file = "simplejson-3.19.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2541fdb7467ef9bfad1f55b6c52e8ea52b3ce4a0027d37aff094190a955daa9d"}, - {file = "simplejson-3.19.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46133bc7dd45c9953e6ee4852e3de3d5a9a4a03b068bd238935a5c72f0a1ce34"}, - {file = "simplejson-3.19.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f96def94576f857abf58e031ce881b5a3fc25cbec64b2bc4824824a8a4367af9"}, - {file = "simplejson-3.19.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f14ecca970d825df0d29d5c6736ff27999ee7bdf5510e807f7ad8845f7760ce"}, - {file = "simplejson-3.19.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:66389b6b6ee46a94a493a933a26008a1bae0cfadeca176933e7ff6556c0ce998"}, - {file = "simplejson-3.19.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:22b867205cd258050c2625325fdd9a65f917a5aff22a23387e245ecae4098e78"}, - {file = "simplejson-3.19.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c39fa911e4302eb79c804b221ddec775c3da08833c0a9120041dd322789824de"}, - {file = "simplejson-3.19.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:65dafe413b15e8895ad42e49210b74a955c9ae65564952b0243a18fb35b986cc"}, - {file = "simplejson-3.19.1-cp311-cp311-win32.whl", hash = "sha256:f05d05d99fce5537d8f7a0af6417a9afa9af3a6c4bb1ba7359c53b6257625fcb"}, - {file = "simplejson-3.19.1-cp311-cp311-win_amd64.whl", hash = "sha256:b46aaf0332a8a9c965310058cf3487d705bf672641d2c43a835625b326689cf4"}, - {file = "simplejson-3.19.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b438e5eaa474365f4faaeeef1ec3e8d5b4e7030706e3e3d6b5bee6049732e0e6"}, - {file = "simplejson-3.19.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa9d614a612ad02492f704fbac636f666fa89295a5d22b4facf2d665fc3b5ea9"}, - {file = "simplejson-3.19.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46e89f58e4bed107626edce1cf098da3664a336d01fc78fddcfb1f397f553d44"}, - {file = "simplejson-3.19.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96ade243fb6f3b57e7bd3b71e90c190cd0f93ec5dce6bf38734a73a2e5fa274f"}, - {file = "simplejson-3.19.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed18728b90758d171f0c66c475c24a443ede815cf3f1a91e907b0db0ebc6e508"}, - {file = "simplejson-3.19.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:6a561320485017ddfc21bd2ed5de2d70184f754f1c9b1947c55f8e2b0163a268"}, - {file = "simplejson-3.19.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:2098811cd241429c08b7fc5c9e41fcc3f59f27c2e8d1da2ccdcf6c8e340ab507"}, - {file = "simplejson-3.19.1-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:8f8d179393e6f0cf6c7c950576892ea6acbcea0a320838c61968ac7046f59228"}, - {file = "simplejson-3.19.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:eff87c68058374e45225089e4538c26329a13499bc0104b52b77f8428eed36b2"}, - {file = "simplejson-3.19.1-cp36-cp36m-win32.whl", hash = "sha256:d300773b93eed82f6da138fd1d081dc96fbe53d96000a85e41460fe07c8d8b33"}, - {file = "simplejson-3.19.1-cp36-cp36m-win_amd64.whl", hash = "sha256:37724c634f93e5caaca04458f267836eb9505d897ab3947b52f33b191bf344f3"}, - {file = "simplejson-3.19.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:74bf802debe68627227ddb665c067eb8c73aa68b2476369237adf55c1161b728"}, - {file = "simplejson-3.19.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70128fb92932524c89f373e17221cf9535d7d0c63794955cc3cd5868e19f5d38"}, - {file = "simplejson-3.19.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8090e75653ea7db75bc21fa5f7bcf5f7bdf64ea258cbbac45c7065f6324f1b50"}, - {file = "simplejson-3.19.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a755f7bfc8adcb94887710dc70cc12a69a454120c6adcc6f251c3f7b46ee6aac"}, - {file = "simplejson-3.19.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ccb2c1877bc9b25bc4f4687169caa925ffda605d7569c40e8e95186e9a5e58b"}, - {file = "simplejson-3.19.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:919bc5aa4d8094cf8f1371ea9119e5d952f741dc4162810ab714aec948a23fe5"}, - {file = "simplejson-3.19.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e333c5b62e93949f5ac27e6758ba53ef6ee4f93e36cc977fe2e3df85c02f6dc4"}, - {file = "simplejson-3.19.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3a4480e348000d89cf501b5606415f4d328484bbb431146c2971123d49fd8430"}, - {file = "simplejson-3.19.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:cb502cde018e93e75dc8fc7bb2d93477ce4f3ac10369f48866c61b5e031db1fd"}, - {file = "simplejson-3.19.1-cp37-cp37m-win32.whl", hash = "sha256:f41915a4e1f059dfad614b187bc06021fefb5fc5255bfe63abf8247d2f7a646a"}, - {file = "simplejson-3.19.1-cp37-cp37m-win_amd64.whl", hash = "sha256:3844305bc33d52c4975da07f75b480e17af3558c0d13085eaa6cc2f32882ccf7"}, - {file = "simplejson-3.19.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:1cb19eacb77adc5a9720244d8d0b5507421d117c7ed4f2f9461424a1829e0ceb"}, - {file = "simplejson-3.19.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:926957b278de22797bfc2f004b15297013843b595b3cd7ecd9e37ccb5fad0b72"}, - {file = "simplejson-3.19.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b0e9a5e66969f7a47dc500e3dba8edc3b45d4eb31efb855c8647700a3493dd8a"}, - {file = "simplejson-3.19.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79d46e7e33c3a4ef853a1307b2032cfb7220e1a079d0c65488fbd7118f44935a"}, - {file = "simplejson-3.19.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:344a5093b71c1b370968d0fbd14d55c9413cb6f0355fdefeb4a322d602d21776"}, - {file = "simplejson-3.19.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:23fbb7b46d44ed7cbcda689295862851105c7594ae5875dce2a70eeaa498ff86"}, - {file = "simplejson-3.19.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d3025e7e9ddb48813aec2974e1a7e68e63eac911dd5e0a9568775de107ac79a"}, - {file = "simplejson-3.19.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:87b190e6ceec286219bd6b6f13547ca433f977d4600b4e81739e9ac23b5b9ba9"}, - {file = "simplejson-3.19.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dc935d8322ba9bc7b84f99f40f111809b0473df167bf5b93b89fb719d2c4892b"}, - {file = "simplejson-3.19.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3b652579c21af73879d99c8072c31476788c8c26b5565687fd9db154070d852a"}, - {file = "simplejson-3.19.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6aa7ca03f25b23b01629b1c7f78e1cd826a66bfb8809f8977a3635be2ec48f1a"}, - {file = "simplejson-3.19.1-cp38-cp38-win32.whl", hash = "sha256:08be5a241fdf67a8e05ac7edbd49b07b638ebe4846b560673e196b2a25c94b92"}, - {file = "simplejson-3.19.1-cp38-cp38-win_amd64.whl", hash = "sha256:ca56a6c8c8236d6fe19abb67ef08d76f3c3f46712c49a3b6a5352b6e43e8855f"}, - {file = "simplejson-3.19.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6424d8229ba62e5dbbc377908cfee9b2edf25abd63b855c21f12ac596cd18e41"}, - {file = "simplejson-3.19.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:547ea86ca408a6735335c881a2e6208851027f5bfd678d8f2c92a0f02c7e7330"}, - {file = "simplejson-3.19.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:889328873c35cb0b2b4c83cbb83ec52efee5a05e75002e2c0c46c4e42790e83c"}, - {file = "simplejson-3.19.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44cdb4e544134f305b033ad79ae5c6b9a32e7c58b46d9f55a64e2a883fbbba01"}, - {file = "simplejson-3.19.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc2b3f06430cbd4fac0dae5b2974d2bf14f71b415fb6de017f498950da8159b1"}, - {file = "simplejson-3.19.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d125e754d26c0298715bdc3f8a03a0658ecbe72330be247f4b328d229d8cf67f"}, - {file = "simplejson-3.19.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:476c8033abed7b1fd8db62a7600bf18501ce701c1a71179e4ce04ac92c1c5c3c"}, - {file = "simplejson-3.19.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:199a0bcd792811c252d71e3eabb3d4a132b3e85e43ebd93bfd053d5b59a7e78b"}, - {file = "simplejson-3.19.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a79b439a6a77649bb8e2f2644e6c9cc0adb720fc55bed63546edea86e1d5c6c8"}, - {file = "simplejson-3.19.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:203412745fed916fc04566ecef3f2b6c872b52f1e7fb3a6a84451b800fb508c1"}, - {file = "simplejson-3.19.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ca922c61d87b4c38f37aa706520328ffe22d7ac1553ef1cadc73f053a673553"}, - {file = "simplejson-3.19.1-cp39-cp39-win32.whl", hash = "sha256:3e0902c278243d6f7223ba3e6c5738614c971fd9a887fff8feaa8dcf7249c8d4"}, - {file = "simplejson-3.19.1-cp39-cp39-win_amd64.whl", hash = "sha256:d396b610e77b0c438846607cd56418bfc194973b9886550a98fd6724e8c6cfec"}, - {file = "simplejson-3.19.1-py3-none-any.whl", hash = "sha256:4710806eb75e87919b858af0cba4ffedc01b463edc3982ded7b55143f39e41e1"}, - {file = "simplejson-3.19.1.tar.gz", hash = "sha256:6277f60848a7d8319d27d2be767a7546bc965535b28070e310b3a9af90604a4c"}, +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.5" +files = [ + {file = "simplejson-3.19.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f39caec26007a2d0efab6b8b1d74873ede9351962707afab622cc2285dd26ed0"}, + {file = "simplejson-3.19.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:83c87706265ae3028e8460d08b05f30254c569772e859e5ba61fe8af2c883468"}, + {file = "simplejson-3.19.3-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0b5ddd2c7d1d3f4d23224bc8a04bbf1430ae9a8149c05b90f8fc610f7f857a23"}, + {file = "simplejson-3.19.3-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:ad0e0b1ce9bd3edb5cf64b5b5b76eacbfdac8c5367153aeeec8a8b1407f68342"}, + {file = "simplejson-3.19.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:93be280fc69a952c76e261036312c20b910e7fa9e234f1d89bdfe3fa34f8a023"}, + {file = "simplejson-3.19.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:6d43e24b88c80f997081503f693be832fc90854f278df277dd54f8a4c847ab61"}, + {file = "simplejson-3.19.3-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:2876027ebdd599d730d36464debe84619b0368e9a642ca6e7c601be55aed439e"}, + {file = "simplejson-3.19.3-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:0766ca6222b410e08e0053a0dda3606cafb3973d5d00538307f631bb59743396"}, + {file = "simplejson-3.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:50d8b742d74c449c4dcac570d08ce0f21f6a149d2d9cf7652dbf2ba9a1bc729a"}, + {file = "simplejson-3.19.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd011fc3c1d88b779645495fdb8189fb318a26981eebcce14109460e062f209b"}, + {file = "simplejson-3.19.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:637c4d4b81825c1f4d651e56210bd35b5604034b192b02d2d8f17f7ce8c18f42"}, + {file = "simplejson-3.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f56eb03bc9e432bb81adc8ecff2486d39feb371abb442964ffb44f6db23b332"}, + {file = "simplejson-3.19.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ef59a53be400c1fad2c914b8d74c9d42384fed5174f9321dd021b7017fd40270"}, + {file = "simplejson-3.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72e8abbc86fcac83629a030888b45fed3a404d54161118be52cb491cd6975d3e"}, + {file = "simplejson-3.19.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8efb03ca77bd7725dfacc9254df00d73e6f43013cf39bd37ef1a8ed0ebb5165"}, + {file = "simplejson-3.19.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:add8850db04b98507a8b62d248a326ecc8561e6d24336d1ca5c605bbfaab4cad"}, + {file = "simplejson-3.19.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fc3dc9fb413fc34c396f52f4c87de18d0bd5023804afa8ab5cc224deeb6a9900"}, + {file = "simplejson-3.19.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4dfa420bb9225dd33b6efdabde7c6a671b51150b9b1d9c4e5cd74d3b420b3fe1"}, + {file = "simplejson-3.19.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7b5c472099b39b274dcde27f1113db8d818c9aa3ba8f78cbb8ad04a4c1ac2118"}, + {file = "simplejson-3.19.3-cp310-cp310-win32.whl", hash = "sha256:817abad79241ed4a507b3caf4d3f2be5079f39d35d4c550a061988986bffd2ec"}, + {file = "simplejson-3.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:dd5b9b1783e14803e362a558680d88939e830db2466f3fa22df5c9319f8eea94"}, + {file = "simplejson-3.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e88abff510dcff903a18d11c2a75f9964e768d99c8d147839913886144b2065e"}, + {file = "simplejson-3.19.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:934a50a614fb831614db5dbfba35127ee277624dda4d15895c957d2f5d48610c"}, + {file = "simplejson-3.19.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:212fce86a22188b0c7f53533b0f693ea9605c1a0f02c84c475a30616f55a744d"}, + {file = "simplejson-3.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d9e8f836688a8fabe6a6b41b334aa550a6823f7b4ac3d3712fc0ad8655be9a8"}, + {file = "simplejson-3.19.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23228037dc5d41c36666384062904d74409a62f52283d9858fa12f4c22cffad1"}, + {file = "simplejson-3.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0791f64fed7d4abad639491f8a6b1ba56d3c604eb94b50f8697359b92d983f36"}, + {file = "simplejson-3.19.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4f614581b61a26fbbba232a1391f6cee82bc26f2abbb6a0b44a9bba25c56a1c"}, + {file = "simplejson-3.19.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1df0aaf1cb787fdf34484ed4a1f0c545efd8811f6028623290fef1a53694e597"}, + {file = "simplejson-3.19.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:951095be8d4451a7182403354c22ec2de3e513e0cc40408b689af08d02611588"}, + {file = "simplejson-3.19.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2a954b30810988feeabde843e3263bf187697e0eb5037396276db3612434049b"}, + {file = "simplejson-3.19.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c40df31a75de98db2cdfead6074d4449cd009e79f54c1ebe5e5f1f153c68ad20"}, + {file = "simplejson-3.19.3-cp311-cp311-win32.whl", hash = "sha256:7e2a098c21ad8924076a12b6c178965d88a0ad75d1de67e1afa0a66878f277a5"}, + {file = "simplejson-3.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:c9bedebdc5fdad48af8783022bae307746d54006b783007d1d3c38e10872a2c6"}, + {file = "simplejson-3.19.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:66a0399e21c2112acacfebf3d832ebe2884f823b1c7e6d1363f2944f1db31a99"}, + {file = "simplejson-3.19.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6ef9383c5e05f445be60f1735c1816163c874c0b1ede8bb4390aff2ced34f333"}, + {file = "simplejson-3.19.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:42e5acf80d4d971238d4df97811286a044d720693092b20a56d5e56b7dcc5d09"}, + {file = "simplejson-3.19.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0b0efc7279d768db7c74d3d07f0b5c81280d16ae3fb14e9081dc903e8360771"}, + {file = "simplejson-3.19.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0552eb06e7234da892e1d02365cd2b7b2b1f8233aa5aabdb2981587b7cc92ea0"}, + {file = "simplejson-3.19.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf6a3b9a7d7191471b464fe38f684df10eb491ec9ea454003edb45a011ab187"}, + {file = "simplejson-3.19.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7017329ca8d4dca94ad5e59f496e5fc77630aecfc39df381ffc1d37fb6b25832"}, + {file = "simplejson-3.19.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:67a20641afebf4cfbcff50061f07daad1eace6e7b31d7622b6fa2c40d43900ba"}, + {file = "simplejson-3.19.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:dd6a7dabcc4c32daf601bc45e01b79175dde4b52548becea4f9545b0a4428169"}, + {file = "simplejson-3.19.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:08f9b443a94e72dd02c87098c96886d35790e79e46b24e67accafbf13b73d43b"}, + {file = "simplejson-3.19.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa97278ae6614346b5ca41a45a911f37a3261b57dbe4a00602048652c862c28b"}, + {file = "simplejson-3.19.3-cp312-cp312-win32.whl", hash = "sha256:ef28c3b328d29b5e2756903aed888960bc5df39b4c2eab157ae212f70ed5bf74"}, + {file = "simplejson-3.19.3-cp312-cp312-win_amd64.whl", hash = "sha256:1e662336db50ad665777e6548b5076329a94a0c3d4a0472971c588b3ef27de3a"}, + {file = "simplejson-3.19.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0959e6cb62e3994b5a40e31047ff97ef5c4138875fae31659bead691bed55896"}, + {file = "simplejson-3.19.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a7bfad839c624e139a4863007233a3f194e7c51551081f9789cba52e4da5167"}, + {file = "simplejson-3.19.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afab2f7f2486a866ff04d6d905e9386ca6a231379181a3838abce1f32fbdcc37"}, + {file = "simplejson-3.19.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d00313681015ac498e1736b304446ee6d1c72c5b287cd196996dad84369998f7"}, + {file = "simplejson-3.19.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d936ae682d5b878af9d9eb4d8bb1fdd5e41275c8eb59ceddb0aeed857bb264a2"}, + {file = "simplejson-3.19.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01c6657485393f2e9b8177c77a7634f13ebe70d5e6de150aae1677d91516ce6b"}, + {file = "simplejson-3.19.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a6a750d3c7461b1c47cfc6bba8d9e57a455e7c5f80057d2a82f738040dd1129"}, + {file = "simplejson-3.19.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ea7a4a998c87c5674a27089e022110a1a08a7753f21af3baf09efe9915c23c3c"}, + {file = "simplejson-3.19.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6300680d83a399be2b8f3b0ef7ef90b35d2a29fe6e9c21438097e0938bbc1564"}, + {file = "simplejson-3.19.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ab69f811a660c362651ae395eba8ce84f84c944cea0df5718ea0ba9d1e4e7252"}, + {file = "simplejson-3.19.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:256e09d0f94d9c3d177d9e95fd27a68c875a4baa2046633df387b86b652f5747"}, + {file = "simplejson-3.19.3-cp313-cp313-win32.whl", hash = "sha256:2c78293470313aefa9cfc5e3f75ca0635721fb016fb1121c1c5b0cb8cc74712a"}, + {file = "simplejson-3.19.3-cp313-cp313-win_amd64.whl", hash = "sha256:3bbcdc438dc1683b35f7a8dc100960c721f922f9ede8127f63bed7dfded4c64c"}, + {file = "simplejson-3.19.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:89b35433186e977fa86ff1fd179c1fadff39cfa3afa1648dab0b6ca53153acd9"}, + {file = "simplejson-3.19.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d43c2d7504eda566c50203cdc9dc043aff6f55f1b7dae0dcd79dfefef9159d1c"}, + {file = "simplejson-3.19.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6890ff9cf0bd2e1d487e2a8869ebd620a44684c0a9667fa5ee751d099d5d84c8"}, + {file = "simplejson-3.19.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1069143a8fb3905e1bc0696c62be7e3adf812e9f1976ac9ae15b05112ff57cc9"}, + {file = "simplejson-3.19.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb324bb903330cbb35d87cce367a12631cd5720afa06e5b9c906483970946da6"}, + {file = "simplejson-3.19.3-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:0a32859d45d7b85fb803bb68f6bee14526991a1190269116c33399fa0daf9bbf"}, + {file = "simplejson-3.19.3-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:23833ee7e791ec968b744dfee2a2d39df7152050051096caf4296506d75608d8"}, + {file = "simplejson-3.19.3-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:d73efb03c5b39249c82488a994f0998f9e4399e3d085209d2120503305ba77a8"}, + {file = "simplejson-3.19.3-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7923878b7a0142d39763ec2dbecff3053c1bedd3653585a8474666e420fe83f5"}, + {file = "simplejson-3.19.3-cp36-cp36m-win32.whl", hash = "sha256:7355c7203353c36d46c4e7b6055293b3d2be097bbc5e2874a2b8a7259f0325dd"}, + {file = "simplejson-3.19.3-cp36-cp36m-win_amd64.whl", hash = "sha256:d1b8b4d6379fe55f471914345fe6171d81a18649dacf3248abfc9c349b4442eb"}, + {file = "simplejson-3.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d36608557b4dcd7a62c29ad4cd7c5a1720bbf7dc942eff9dc42d2c542a5f042d"}, + {file = "simplejson-3.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7137e69c6781ecf23afab064be94a277236c9cba31aa48ff1a0ec3995c69171e"}, + {file = "simplejson-3.19.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76f8c28fe2d426182405b18ddf3001fce47835a557dc15c3d8bdea01c03361da"}, + {file = "simplejson-3.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff7bc1bbdaa3e487c9469128bf39408e91f5573901cb852e03af378d3582c52d"}, + {file = "simplejson-3.19.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0782cb9bf827f0c488b6aa0f2819f618308a3caf2973cfd792e45d631bec4db"}, + {file = "simplejson-3.19.3-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:6fea0716c593dabb4392c4996d4e902a83b2428e6da82938cf28a523a11eb277"}, + {file = "simplejson-3.19.3-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:8f41bb5370b34f63171e65fdb00e12be1d83675cecb23e627df26f4c88dfc021"}, + {file = "simplejson-3.19.3-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:37105d1d708365b91165e1a6e505bdecc88637091348cf4b6adcdcb4f5a5fb8b"}, + {file = "simplejson-3.19.3-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:b9198c1f1f8910a3b86b60f4fe2556d9d28d3fefe35bffe6be509a27402e694d"}, + {file = "simplejson-3.19.3-cp37-cp37m-win32.whl", hash = "sha256:bc164f32dd9691e7082ce5df24b4cf8c6c394bbf9bdeeb5d843127cd07ab8ad2"}, + {file = "simplejson-3.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:1bd41f2cb1a2c57656ceff67b12d005cb255c728265e222027ad73193a04005a"}, + {file = "simplejson-3.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0733ecd95ae03ae718ec74aad818f5af5f3155d596f7b242acbc1621e765e5fb"}, + {file = "simplejson-3.19.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a0710d1a5e41c4f829caa1572793dd3130c8d65c2b194c24ff29c4c305c26e0"}, + {file = "simplejson-3.19.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1a53a07320c5ff574d8b1a89c937ce33608832f166f39dff0581ac43dc979abd"}, + {file = "simplejson-3.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1773cabfba66a6337b547e45dafbd471b09487370bcab75bd28f626520410d29"}, + {file = "simplejson-3.19.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7c0104b4b7d2c75ccedbf1d9d5a3bd2daa75e51053935a44ba012e2fd4c43752"}, + {file = "simplejson-3.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c49eeb94b8f09dc8a5843c156a22b8bde6aa1ddc65ca8ddc62dddcc001e6a2d"}, + {file = "simplejson-3.19.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3dc5c1a85ff388e98ea877042daec3d157b6db0d85bac6ba5498034689793e7e"}, + {file = "simplejson-3.19.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:49549e3d81ab4a58424405aa545602674d8c35c20e986b42bb8668e782a94bac"}, + {file = "simplejson-3.19.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:e1a1452ad5723ff129b081e3c8aa4ba56b8734fee4223355ed7b815a7ece69bc"}, + {file = "simplejson-3.19.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:d0d5a63f1768fed7e78cf55712dee81f5a345e34d34224f3507ebf71df2b754d"}, + {file = "simplejson-3.19.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:7e062767ac165df9a46963f5735aa4eee0089ec1e48b3f2ec46182754b96f55e"}, + {file = "simplejson-3.19.3-cp38-cp38-win32.whl", hash = "sha256:56134bbafe458a7b21f6fddbf889d36bec6d903718f4430768e3af822f8e27c2"}, + {file = "simplejson-3.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:bcde83a553a96dc7533736c547bddaa35414a2566ab0ecf7d3964fc4bdb84c11"}, + {file = "simplejson-3.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b5587feda2b65a79da985ae6d116daf6428bf7489992badc29fc96d16cd27b05"}, + {file = "simplejson-3.19.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e0d2b00ecbcd1a3c5ea1abc8bb99a26508f758c1759fd01c3be482a3655a176f"}, + {file = "simplejson-3.19.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:32a3ada8f3ea41db35e6d37b86dade03760f804628ec22e4fe775b703d567426"}, + {file = "simplejson-3.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f455672f4738b0f47183c5896e3606cd65c9ddee3805a4d18e8c96aa3f47c84"}, + {file = "simplejson-3.19.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b737a5fefedb8333fa50b8db3dcc9b1d18fd6c598f89fa7debff8b46bf4e511"}, + {file = "simplejson-3.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb47ee773ce67476a960e2db4a0a906680c54f662521550828c0cc57d0099426"}, + {file = "simplejson-3.19.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eed8cd98a7b24861da9d3d937f5fbfb6657350c547528a117297fe49e3960667"}, + {file = "simplejson-3.19.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:619756f1dd634b5bdf57d9a3914300526c3b348188a765e45b8b08eabef0c94e"}, + {file = "simplejson-3.19.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:dd7230d061e755d60a4d5445bae854afe33444cdb182f3815cff26ac9fb29a15"}, + {file = "simplejson-3.19.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:101a3c8392028cd704a93c7cba8926594e775ca3c91e0bee82144e34190903f1"}, + {file = "simplejson-3.19.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e557712fc79f251673aeb3fad3501d7d4da3a27eff0857af2e1d1afbbcf6685"}, + {file = "simplejson-3.19.3-cp39-cp39-win32.whl", hash = "sha256:0bc5544e3128891bf613b9f71813ee2ec9c11574806f74dd8bb84e5e95bf64a2"}, + {file = "simplejson-3.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:06662392e4913dc8846d6a71a6d5de86db5fba244831abe1dd741d62a4136764"}, + {file = "simplejson-3.19.3-py3-none-any.whl", hash = "sha256:49cc4c7b940d43bd12bf87ec63f28cbc4964fc4e12c031cc8cd01650f43eb94e"}, + {file = "simplejson-3.19.3.tar.gz", hash = "sha256:8e086896c36210ab6050f2f9f095a5f1e03c83fa0e7f296d6cba425411364680"}, ] [[package]] @@ -4374,13 +4243,13 @@ testing = ["Flask (>=1,<2)", "Flask-Sockets (>=0.2,<1)", "Werkzeug (<2)", "black [[package]] name = "social-auth-app-django" -version = "5.4.1" +version = "5.4.2" description = "Python Social Authentication, Django integration." optional = false python-versions = ">=3.8" files = [ - {file = "social-auth-app-django-5.4.1.tar.gz", hash = "sha256:2a43cde559dd34fdc7132417b6c52c780fa99ec2332dee9f405b4763f371c367"}, - {file = "social_auth_app_django-5.4.1-py3-none-any.whl", hash = "sha256:7519f186c63c50f2d364457b236f051338d194bcface55e318a6a705c5213477"}, + {file = "social-auth-app-django-5.4.2.tar.gz", hash = "sha256:c8832c6cf13da6ad76f5613bcda2647d89ae7cfbc5217fadd13477a3406feaa8"}, + {file = "social_auth_app_django-5.4.2-py3-none-any.whl", hash = "sha256:0c041a31707921aef9a930f143183c65d8c7b364381364a50f3f7c6fcc9d62f6"}, ] [package.dependencies] @@ -4389,40 +4258,39 @@ social-auth-core = ">=4.4.1" [[package]] name = "social-auth-core" -version = "4.4.2" +version = "4.5.4" description = "Python social authentication made simple." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "social-auth-core-4.4.2.tar.gz", hash = "sha256:9791d7c7aee2ac8517fe7a2ea2f942a8a5492b3a4ccb44a9b0dacc87d182f2aa"}, - {file = "social_auth_core-4.4.2-py3-none-any.whl", hash = "sha256:ea7a19c46b791b767e95f467881b53c5fd0d1efb40048d9ed3dbc46daa05c954"}, + {file = "social-auth-core-4.5.4.tar.gz", hash = "sha256:d3dbeb0999ffd0e68aa4bd73f2ac698a18133fd11b3fc890e1366f18c8889fac"}, + {file = "social_auth_core-4.5.4-py3-none-any.whl", hash = "sha256:33cf970a623c442376f9d4a86fb187579e4438649daa5b5be993d05e74d7b2db"}, ] [package.dependencies] cryptography = ">=1.4" defusedxml = ">=0.5.0rc1" oauthlib = ">=1.0.3" -PyJWT = ">=2.0.0" +PyJWT = ">=2.7.0" python3-openid = ">=3.0.10" requests = ">=2.9.1" requests-oauthlib = ">=0.6.1" [package.extras] -all = ["cryptography (>=2.1.1)", "python-jose (>=3.0.0)", "python3-saml (>=1.5.0)"] -allpy3 = ["cryptography (>=2.1.1)", "python-jose (>=3.0.0)", "python3-saml (>=1.5.0)"] +all = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] +allpy3 = ["cryptography (>=2.1.1)", "python3-saml (>=1.5.0)"] azuread = ["cryptography (>=2.1.1)"] -openidconnect = ["python-jose (>=3.0.0)"] saml = ["python3-saml (>=1.5.0)"] [[package]] name = "sqlparse" -version = "0.5.0" +version = "0.5.3" description = "A non-validating SQL parser." optional = false python-versions = ">=3.8" files = [ - {file = "sqlparse-0.5.0-py3-none-any.whl", hash = "sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663"}, - {file = "sqlparse-0.5.0.tar.gz", hash = "sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93"}, + {file = "sqlparse-0.5.3-py3-none-any.whl", hash = "sha256:cf2196ed3418f3ba5de6af7e82c694a9fbdbfecccdfc72e281548517081f16ca"}, + {file = "sqlparse-0.5.3.tar.gz", hash = "sha256:09f67787f56a0b16ecdbde1bfc7f5d9c3371ca683cfeaa8e6ff60b4807ec9272"}, ] [package.extras] @@ -4440,6 +4308,23 @@ files = [ {file = "sseclient_py-1.8.0-py2.py3-none-any.whl", hash = "sha256:4ecca6dc0b9f963f8384e9d7fd529bf93dd7d708144c4fb5da0e0a1a926fee83"}, ] +[[package]] +name = "structlog" +version = "24.4.0" +description = "Structured Logging for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "structlog-24.4.0-py3-none-any.whl", hash = "sha256:597f61e80a91cc0749a9fd2a098ed76715a1c8a01f73e336b746504d1aad7610"}, + {file = "structlog-24.4.0.tar.gz", hash = "sha256:b27bfecede327a6d2da5fbc96bd859f114ecc398a6389d664f62085ee7ae6fc4"}, +] + +[package.extras] +dev = ["freezegun (>=0.2.8)", "mypy (>=1.4)", "pretend", "pytest (>=6.0)", "pytest-asyncio (>=0.17)", "rich", "simplejson", "twisted"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-mermaid", "sphinxext-opengraph", "twisted"] +tests = ["freezegun (>=0.2.8)", "pretend", "pytest (>=6.0)", "pytest-asyncio (>=0.17)", "simplejson"] +typing = ["mypy (>=1.4)", "rich", "twisted"] + [[package]] name = "toml" version = "0.10.2" @@ -4453,24 +4338,24 @@ files = [ [[package]] name = "tomlkit" -version = "0.13.0" +version = "0.13.2" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" files = [ - {file = "tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"}, - {file = "tomlkit-0.13.0.tar.gz", hash = "sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72"}, + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, ] [[package]] name = "types-awscrt" -version = "0.23.3" +version = "0.23.5" description = "Type annotations and code completion for awscrt" optional = false python-versions = ">=3.8" files = [ - {file = "types_awscrt-0.23.3-py3-none-any.whl", hash = "sha256:cc0057885cb7ce1e66856123a4c2861b051e9f0716b1767ad72bfe4ca26bbcd4"}, - {file = "types_awscrt-0.23.3.tar.gz", hash = "sha256:043c0ae0fe5d272618294cbeaf1c349a654a9f7c00121be64d27486933ac4a26"}, + {file = "types_awscrt-0.23.5-py3-none-any.whl", hash = "sha256:1c9b0ebadf64bcb396d55fcc50a84ade4eb9e6e9e1b79aa97428d8c2d529bf9f"}, + {file = "types_awscrt-0.23.5.tar.gz", hash = "sha256:1c4eaadd7489444b1cfe3570d327ce19210c047d2c44dfbfc37c38dba9c87cbb"}, ] [[package]] @@ -4486,17 +4371,17 @@ files = [ [[package]] name = "types-requests" -version = "2.31.0.6" +version = "2.32.0.20241016" description = "Typing stubs for requests" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "types-requests-2.31.0.6.tar.gz", hash = "sha256:cd74ce3b53c461f1228a9b783929ac73a666658f223e28ed29753771477b3bd0"}, - {file = "types_requests-2.31.0.6-py3-none-any.whl", hash = "sha256:a2db9cb228a81da8348b49ad6db3f5519452dd20a9c1e1a868c83c5fe88fd1a9"}, + {file = "types-requests-2.32.0.20241016.tar.gz", hash = "sha256:0d9cad2f27515d0e3e3da7134a1b6f28fb97129d86b867f24d9c726452634d95"}, + {file = "types_requests-2.32.0.20241016-py3-none-any.whl", hash = "sha256:4195d62d6d3e043a4eaaf08ff8a62184584d2e8684e9d2aa178c7915a7da3747"}, ] [package.dependencies] -types-urllib3 = "*" +urllib3 = ">=2" [[package]] name = "types-s3transfer" @@ -4511,24 +4396,13 @@ files = [ [[package]] name = "types-toml" -version = "0.10.8.7" +version = "0.10.8.20240310" description = "Typing stubs for toml" optional = false -python-versions = "*" -files = [ - {file = "types-toml-0.10.8.7.tar.gz", hash = "sha256:58b0781c681e671ff0b5c0319309910689f4ab40e8a2431e205d70c94bb6efb1"}, - {file = "types_toml-0.10.8.7-py3-none-any.whl", hash = "sha256:61951da6ad410794c97bec035d59376ce1cbf4453dc9b6f90477e81e4442d631"}, -] - -[[package]] -name = "types-urllib3" -version = "1.26.25.14" -description = "Typing stubs for urllib3" -optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f"}, - {file = "types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e"}, + {file = "types-toml-0.10.8.20240310.tar.gz", hash = "sha256:3d41501302972436a6b8b239c850b26689657e25281b48ff0ec06345b8830331"}, + {file = "types_toml-0.10.8.20240310-py3-none-any.whl", hash = "sha256:627b47775d25fa29977d9c70dc0cbab3f314f32c8d8d0c012f2ef5de7aaec05d"}, ] [[package]] @@ -4544,13 +4418,13 @@ files = [ [[package]] name = "tzdata" -version = "2024.1" +version = "2024.2" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, ] [[package]] @@ -4566,60 +4440,61 @@ files = [ [[package]] name = "urllib3" -version = "1.26.19" +version = "2.0.7" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +python-versions = ">=3.7" files = [ - {file = "urllib3-1.26.19-py2.py3-none-any.whl", hash = "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3"}, - {file = "urllib3-1.26.19.tar.gz", hash = "sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429"}, + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, ] [package.extras] -brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "urlman" -version = "2.0.1" +version = "2.0.2" description = "Django URL pattern helpers" optional = false python-versions = "*" files = [ - {file = "urlman-2.0.1-py2.py3-none-any.whl", hash = "sha256:909177485ddbbeada15a21f80155762faf70fc53be31890ff7288e21803f06c7"}, - {file = "urlman-2.0.1.tar.gz", hash = "sha256:3b9c5ac4e447b1e29fa259dc76953d46d711c84b296a0c66c34870e248eb1205"}, + {file = "urlman-2.0.2-py2.py3-none-any.whl", hash = "sha256:2505bf310be424ffa6f4965a6f643ce32dc6194f61a3c5989f2f56453c614814"}, + {file = "urlman-2.0.2.tar.gz", hash = "sha256:231afe89d0d0db358fe7a2626eb39310e5bf5911f3796318955cbe77e1b39601"}, ] [[package]] name = "virtualenv" -version = "20.24.2" +version = "20.28.0" description = "Virtual Python Environment builder" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "virtualenv-20.24.2-py3-none-any.whl", hash = "sha256:43a3052be36080548bdee0b42919c88072037d50d56c28bd3f853cbe92b953ff"}, - {file = "virtualenv-20.24.2.tar.gz", hash = "sha256:fd8a78f46f6b99a67b7ec5cf73f92357891a7b3a40fd97637c27f854aae3b9e0"}, + {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, + {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, ] [package.dependencies] distlib = ">=0.3.7,<1" filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<4" +platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] name = "werkzeug" -version = "3.0.6" +version = "3.1.3" description = "The comprehensive WSGI web application library." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "werkzeug-3.0.6-py3-none-any.whl", hash = "sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17"}, - {file = "werkzeug-3.0.6.tar.gz", hash = "sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d"}, + {file = "werkzeug-3.1.3-py3-none-any.whl", hash = "sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e"}, + {file = "werkzeug-3.1.3.tar.gz", hash = "sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746"}, ] [package.dependencies] @@ -4630,13 +4505,13 @@ watchdog = ["watchdog (>=2.3)"] [[package]] name = "wheel" -version = "0.41.1" +version = "0.45.1" description = "A built-package format for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "wheel-0.41.1-py3-none-any.whl", hash = "sha256:473219bd4cbedc62cea0cb309089b593e47c15c4a2531015f94e4e3b9a0f6981"}, - {file = "wheel-0.41.1.tar.gz", hash = "sha256:12b911f083e876e10c595779709f8a88a59f45aacc646492a67fe9ef796c1b47"}, + {file = "wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248"}, + {file = "wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729"}, ] [package.extras] @@ -4696,97 +4571,87 @@ resolved_reference = "aba7b848a13ed589c8f46fea5fa7c63a2c047d82" [[package]] name = "wrapt" -version = "1.15.0" +version = "1.17.0" description = "Module for decorators, wrappers and monkey patching." optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -files = [ - {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, - {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, - {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, - {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, - {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, - {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, - {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, - {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, - {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, - {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, - {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, - {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, - {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, - {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, - {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, - {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, - {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, - {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, - {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, +python-versions = ">=3.8" +files = [ + {file = "wrapt-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a0c23b8319848426f305f9cb0c98a6e32ee68a36264f45948ccf8e7d2b941f8"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ca5f060e205f72bec57faae5bd817a1560fcfc4af03f414b08fa29106b7e2d"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e185ec6060e301a7e5f8461c86fb3640a7beb1a0f0208ffde7a65ec4074931df"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb90765dd91aed05b53cd7a87bd7f5c188fcd95960914bae0d32c5e7f899719d"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:879591c2b5ab0a7184258274c42a126b74a2c3d5a329df16d69f9cee07bba6ea"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fce6fee67c318fdfb7f285c29a82d84782ae2579c0e1b385b7f36c6e8074fffb"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0698d3a86f68abc894d537887b9bbf84d29bcfbc759e23f4644be27acf6da301"}, + {file = "wrapt-1.17.0-cp310-cp310-win32.whl", hash = "sha256:69d093792dc34a9c4c8a70e4973a3361c7a7578e9cd86961b2bbf38ca71e4e22"}, + {file = "wrapt-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:f28b29dc158ca5d6ac396c8e0a2ef45c4e97bb7e65522bfc04c989e6fe814575"}, + {file = "wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b"}, + {file = "wrapt-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5d8fd17635b262448ab8f99230fe4dac991af1dabdbb92f7a70a6afac8a7e346"}, + {file = "wrapt-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:92a3d214d5e53cb1db8b015f30d544bc9d3f7179a05feb8f16df713cecc2620a"}, + {file = "wrapt-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:89fc28495896097622c3fc238915c79365dd0ede02f9a82ce436b13bd0ab7569"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:875d240fdbdbe9e11f9831901fb8719da0bd4e6131f83aa9f69b96d18fae7504"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ed16d95fd142e9c72b6c10b06514ad30e846a0d0917ab406186541fe68b451"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b956061b8db634120b58f668592a772e87e2e78bc1f6a906cfcaa0cc7991c1"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:daba396199399ccabafbfc509037ac635a6bc18510ad1add8fd16d4739cdd106"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4d63f4d446e10ad19ed01188d6c1e1bb134cde8c18b0aa2acfd973d41fcc5ada"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a5e7cc39a45fc430af1aefc4d77ee6bad72c5bcdb1322cfde852c15192b8bd4"}, + {file = "wrapt-1.17.0-cp312-cp312-win32.whl", hash = "sha256:0a0a1a1ec28b641f2a3a2c35cbe86c00051c04fffcfcc577ffcdd707df3f8635"}, + {file = "wrapt-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:3c34f6896a01b84bab196f7119770fd8466c8ae3dfa73c59c0bb281e7b588ce7"}, + {file = "wrapt-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:714c12485aa52efbc0fc0ade1e9ab3a70343db82627f90f2ecbc898fdf0bb181"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da427d311782324a376cacb47c1a4adc43f99fd9d996ffc1b3e8529c4074d393"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba1739fb38441a27a676f4de4123d3e858e494fac05868b7a281c0a383c098f4"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e711fc1acc7468463bc084d1b68561e40d1eaa135d8c509a65dd534403d83d7b"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140ea00c87fafc42739bd74a94a5a9003f8e72c27c47cd4f61d8e05e6dec8721"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73a96fd11d2b2e77d623a7f26e004cc31f131a365add1ce1ce9a19e55a1eef90"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0b48554952f0f387984da81ccfa73b62e52817a4386d070c75e4db7d43a28c4a"}, + {file = "wrapt-1.17.0-cp313-cp313-win32.whl", hash = "sha256:498fec8da10e3e62edd1e7368f4b24aa362ac0ad931e678332d1b209aec93045"}, + {file = "wrapt-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd136bb85f4568fffca995bd3c8d52080b1e5b225dbf1c2b17b66b4c5fa02838"}, + {file = "wrapt-1.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17fcf043d0b4724858f25b8826c36e08f9fb2e475410bece0ec44a22d533da9b"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4a557d97f12813dc5e18dad9fa765ae44ddd56a672bb5de4825527c847d6379"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0229b247b0fc7dee0d36176cbb79dbaf2a9eb7ecc50ec3121f40ef443155fb1d"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8425cfce27b8b20c9b89d77fb50e368d8306a90bf2b6eef2cdf5cd5083adf83f"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c900108df470060174108012de06d45f514aa4ec21a191e7ab42988ff42a86c"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4e547b447073fc0dbfcbff15154c1be8823d10dab4ad401bdb1575e3fdedff1b"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:914f66f3b6fc7b915d46c1cc424bc2441841083de01b90f9e81109c9759e43ab"}, + {file = "wrapt-1.17.0-cp313-cp313t-win32.whl", hash = "sha256:a4192b45dff127c7d69b3bdfb4d3e47b64179a0b9900b6351859f3001397dabf"}, + {file = "wrapt-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4f643df3d4419ea3f856c5c3f40fec1d65ea2e89ec812c83f7767c8730f9827a"}, + {file = "wrapt-1.17.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:69c40d4655e078ede067a7095544bcec5a963566e17503e75a3a3e0fe2803b13"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f495b6754358979379f84534f8dd7a43ff8cff2558dcdea4a148a6e713a758f"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:baa7ef4e0886a6f482e00d1d5bcd37c201b383f1d314643dfb0367169f94f04c"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fc931382e56627ec4acb01e09ce66e5c03c384ca52606111cee50d931a342d"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8f8909cdb9f1b237786c09a810e24ee5e15ef17019f7cecb207ce205b9b5fcce"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ad47b095f0bdc5585bced35bd088cbfe4177236c7df9984b3cc46b391cc60627"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:948a9bd0fb2c5120457b07e59c8d7210cbc8703243225dbd78f4dfc13c8d2d1f"}, + {file = "wrapt-1.17.0-cp38-cp38-win32.whl", hash = "sha256:5ae271862b2142f4bc687bdbfcc942e2473a89999a54231aa1c2c676e28f29ea"}, + {file = "wrapt-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:f335579a1b485c834849e9075191c9898e0731af45705c2ebf70e0cd5d58beed"}, + {file = "wrapt-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d751300b94e35b6016d4b1e7d0e7bbc3b5e1751e2405ef908316c2a9024008a1"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7264cbb4a18dc4acfd73b63e4bcfec9c9802614572025bdd44d0721983fc1d9c"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33539c6f5b96cf0b1105a0ff4cf5db9332e773bb521cc804a90e58dc49b10578"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c30970bdee1cad6a8da2044febd824ef6dc4cc0b19e39af3085c763fdec7de33"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc7f729a72b16ee21795a943f85c6244971724819819a41ddbaeb691b2dd85ad"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6ff02a91c4fc9b6a94e1c9c20f62ea06a7e375f42fe57587f004d1078ac86ca9"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dfb7cff84e72e7bf975b06b4989477873dcf160b2fd89959c629535df53d4e0"}, + {file = "wrapt-1.17.0-cp39-cp39-win32.whl", hash = "sha256:2399408ac33ffd5b200480ee858baa58d77dd30e0dd0cab6a8a9547135f30a88"}, + {file = "wrapt-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f763a29ee6a20c529496a20a7bcb16a73de27f5da6a843249c7047daf135977"}, + {file = "wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371"}, + {file = "wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801"}, ] [[package]] name = "xmlschema" -version = "2.4.0" +version = "2.5.1" description = "An XML Schema validator and decoder" optional = false python-versions = ">=3.7" files = [ - {file = "xmlschema-2.4.0-py3-none-any.whl", hash = "sha256:dc87be0caaa61f42649899189aab2fd8e0d567f2cf548433ba7b79278d231a4a"}, - {file = "xmlschema-2.4.0.tar.gz", hash = "sha256:d74cd0c10866ac609e1ef94a5a69b018ad16e39077bc6393408b40c6babee793"}, + {file = "xmlschema-2.5.1-py3-none-any.whl", hash = "sha256:ec2b2a15c8896c1fcd14dcee34ca30032b99456c3c43ce793fdb9dca2fb4b869"}, + {file = "xmlschema-2.5.1.tar.gz", hash = "sha256:4f7497de6c8b6dc2c28ad7b9ed6e21d186f4afe248a5bea4f54eedab4da44083"}, ] [package.dependencies] @@ -4799,16 +4664,16 @@ docs = ["Sphinx", "elementpath (>=4.1.5,<5.0.0)", "jinja2", "sphinx-rtd-theme"] [[package]] name = "xmltodict" -version = "0.13.0" +version = "0.14.2" description = "Makes working with XML feel like you are working with JSON" optional = false -python-versions = ">=3.4" +python-versions = ">=3.6" files = [ - {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, - {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, + {file = "xmltodict-0.14.2-py2.py3-none-any.whl", hash = "sha256:20cc7d723ed729276e808f26fb6b3599f786cbc37e06c65e192ba77c40f20aac"}, + {file = "xmltodict-0.14.2.tar.gz", hash = "sha256:201e7c28bb210e374999d1dde6382923ab0ed1a8a5faeece48ab525b7810a553"}, ] [metadata] lock-version = "2.0" python-versions = ">=3.11, <3.13" -content-hash = "d59492a51bfe2caa477a901e023d4732c580ac32e84e9f4ef08469ca2d57f588" +content-hash = "6d6d23380477a04e1f45e6551454de2a96544fb7e06ec26a889d4e1987de911a" diff --git a/api/pyproject.toml b/api/pyproject.toml index 71fb999ff41f..55ef70b956f8 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -183,6 +183,7 @@ flagsmith-task-processor = { git = "https://github.com/Flagsmith/flagsmith-task- flagsmith-common = { git = "https://github.com/Flagsmith/flagsmith-common", tag = "v1.4.2" } tzdata = "^2024.1" djangorestframework-simplejwt = "^5.3.1" +structlog = "^24.4.0" [tool.poetry.group.auth-controller] optional = true @@ -211,7 +212,7 @@ workflows-logic = { git = "https://github.com/flagsmith/flagsmith-workflows", ta [tool.poetry.group.dev.dependencies] django-test-migrations = "~1.2.0" responses = "~0.22.0" -pre-commit = "~3.0.4" +pre-commit = "^4.0.1" pytest-mock = "~3.10.0" pytest-lazy-fixture = "~0.6.3" moto = "~4.1.3" @@ -229,6 +230,7 @@ requests-mock = "^1.11.0" django-extensions = "^3.2.3" pdbpp = "^0.10.3" mypy-boto3-dynamodb = "^1.33.0" +pytest-structlog = "^1.1" mypy = "^1.11.2" django-stubs = "~5.1.1" djangorestframework-stubs = "~3.14.0" diff --git a/api/scripts/mypy_baseline.txt b/api/scripts/mypy_baseline.txt index 45bb017ac7b8..9d65ea519251 100644 --- a/api/scripts/mypy_baseline.txt +++ b/api/scripts/mypy_baseline.txt @@ -1,3 +1,1538 @@ +users/emails.py:1: error: Skipping analyzing "djoser": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/helpers.py:3: error: Need type annotation for "skip_audit_log" (hint: "skip_audit_log: dict[, ] = ...") [var-annotated] +integrations/opencensus/querylogger.py:1: error: Skipping analyzing "google.rpc": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/opencensus/querylogger.py:2: error: Skipping analyzing "opencensus.trace": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/custom_lifecycle.py:3: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/subscriptions/metadata.py:14: error: Incompatible default for argument "chargebee_email" (default has type "None", argument has type "str") [assignment] +organisations/subscriptions/metadata.py:14: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +organisations/subscriptions/metadata.py:14: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +organisations/subscriptions/metadata.py:71: error: Argument 1 of "__eq__" is incompatible with supertype "object"; supertype defines the argument type as "object" [override] +organisations/subscriptions/metadata.py:71: note: This violates the Liskov substitution principle +organisations/subscriptions/metadata.py:71: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +organisations/subscriptions/metadata.py:71: note: It is recommended for "__eq__" to work with arbitrary objects, for example: +organisations/subscriptions/metadata.py:71: note: def __eq__(self, other: object) -> bool: +organisations/subscriptions/metadata.py:71: note: if not isinstance(other, BaseSubscriptionMetadata): +organisations/subscriptions/metadata.py:71: note: return NotImplemented +organisations/subscriptions/metadata.py:71: note: return +app_analytics/types.py:5: error: Parameter 1 of Literal[...] is invalid [valid-type] +app/utils.py:52: error: Incompatible return value type (got "dict[str, Any]", expected "VersionInfo") [return-value] +temp_hubspot.py:2: error: Name "Organisation" is not defined [name-defined] +temp_hubspot.py:3: error: Name "SettingsWrapper" is not defined [name-defined] +temp_hubspot.py:9: error: Name "FFAdminUser" is not defined [name-defined] +temp_hubspot.py:17: error: Name "OrganisationRole" is not defined [name-defined] +temp_hubspot.py:20: error: Name "HubspotLead" is not defined [name-defined] +integrations/lead_tracking/pipedrive/models.py:18: error: Incompatible types in assignment (expression has type "None", variable has type "Schema") [assignment] +integrations/lead_tracking/pipedrive/models.py:22: error: Incompatible default for argument "schema" (default has type "None", argument has type "Schema") [assignment] +integrations/lead_tracking/pipedrive/models.py:22: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:22: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:43: error: Incompatible default for argument "id" (default has type "None", argument has type "str") [assignment] +integrations/lead_tracking/pipedrive/models.py:43: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:43: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:44: error: Incompatible default for argument "owner_id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/pipedrive/models.py:44: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:44: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:45: error: Incompatible default for argument "label_ids" (default has type "None", argument has type "list[str]") [assignment] +integrations/lead_tracking/pipedrive/models.py:45: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:45: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:46: error: Incompatible default for argument "person_id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/pipedrive/models.py:46: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:46: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:47: error: Incompatible default for argument "organization_id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/pipedrive/models.py:47: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:47: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:48: error: Incompatible default for argument "value" (default has type "None", argument has type "PipedriveValue") [assignment] +integrations/lead_tracking/pipedrive/models.py:48: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:48: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:49: error: Incompatible default for argument "expected_close_date" (default has type "None", argument has type "date") [assignment] +integrations/lead_tracking/pipedrive/models.py:49: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:49: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:50: error: Incompatible default for argument "visible_to" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/pipedrive/models.py:50: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:50: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:51: error: Incompatible default for argument "was_seen" (default has type "None", argument has type "bool") [assignment] +integrations/lead_tracking/pipedrive/models.py:51: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:51: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:72: error: Incompatible default for argument "id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/pipedrive/models.py:72: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:72: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:73: error: Incompatible default for argument "organization_fields" (default has type "None", argument has type "dict[str, Any]") [assignment] +integrations/lead_tracking/pipedrive/models.py:73: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:73: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:99: error: Incompatible default for argument "key" (default has type "None", argument has type "str") [assignment] +integrations/lead_tracking/pipedrive/models.py:99: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:99: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:101: error: Incompatible default for argument "id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/pipedrive/models.py:101: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:101: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/models.py:125: error: Incompatible default for argument "id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/pipedrive/models.py:125: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/models.py:125: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/client.py:29: error: Incompatible default for argument "organization_fields" (default has type "None", argument has type "dict[str, Any]") [assignment] +integrations/lead_tracking/pipedrive/client.py:29: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/client.py:29: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/client.py:48: error: List comprehension has incompatible type List[BasePipedriveModel]; expected List[PipedriveOrganization] [misc] +integrations/lead_tracking/pipedrive/client.py:59: error: List comprehension has incompatible type List[BasePipedriveModel]; expected List[PipedrivePerson] [misc] +integrations/lead_tracking/pipedrive/client.py:72: error: Incompatible return value type (got "BasePipedriveModel", expected "PipedriveOrganizationField") [return-value] +integrations/lead_tracking/pipedrive/client.py:83: error: Incompatible return value type (got "BasePipedriveModel", expected "PipedriveDealField") [return-value] +integrations/lead_tracking/pipedrive/client.py:89: error: Incompatible default for argument "person_id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/pipedrive/client.py:89: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/client.py:89: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/client.py:90: error: Incompatible default for argument "custom_fields" (default has type "None", argument has type "dict[str, Any]") [assignment] +integrations/lead_tracking/pipedrive/client.py:90: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/client.py:90: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/client.py:91: error: Incompatible default for argument "label_ids" (default has type "None", argument has type "list[str]") [assignment] +integrations/lead_tracking/pipedrive/client.py:91: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/client.py:91: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/client.py:105: error: Incompatible return value type (got "BasePipedriveModel", expected "PipedriveLead") [return-value] +integrations/lead_tracking/pipedrive/client.py:120: error: Incompatible return value type (got "BasePipedriveModel", expected "PipedrivePerson") [return-value] +integrations/lead_tracking/pipedrive/client.py:129: error: List comprehension has incompatible type List[BasePipedriveModel]; expected List[PipedriveLeadLabel] [misc] +integrations/lead_tracking/pipedrive/client.py:136: error: Incompatible default for argument "data" (default has type "None", argument has type "dict[Any, Any]") [assignment] +integrations/lead_tracking/pipedrive/client.py:136: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/client.py:136: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/pipedrive/client.py:137: error: Incompatible default for argument "query_params" (default has type "None", argument has type "dict[Any, Any]") [assignment] +integrations/lead_tracking/pipedrive/client.py:137: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/pipedrive/client.py:137: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/launch_darkly/client.py:30: error: A function returning TypeVar should receive at least one argument containing the same TypeVar [type-var] +integrations/launch_darkly/client.py:56: error: Need type annotation for "response_json" [var-annotated] +util/pydantic.py:17: error: No overload variant of "create_model" matches argument types "str", "ConfigDict", "dict[str, tuple[type[Any] | None, FieldInfo]]" [call-overload] +util/pydantic.py:17: note: Possible overload variants: +util/pydantic.py:17: note: def create_model(str, /, *, __config__: ConfigDict | None = ..., __doc__: str | None = ..., __base__: None = ..., __module__: str = ..., __validators__: dict[str, Callable[..., Any]] | None = ..., __cls_kwargs__: dict[str, Any] | None = ..., **field_definitions: Any) -> type[BaseModel] +util/pydantic.py:17: note: def [ModelT: BaseModel] create_model(str, /, *, __config__: ConfigDict | None = ..., __doc__: str | None = ..., __base__: type[ModelT] | tuple[type[ModelT], ...], __module__: str = ..., __validators__: dict[str, Callable[..., Any]] | None = ..., __cls_kwargs__: dict[str, Any] | None = ..., **field_definitions: Any) -> type[ModelT] +features/versioning/dataclasses.py:11: error: Decorators on top of @property are not supported [prop-decorator] +api/openapi.py:4: error: Skipping analyzing "drf_yasg.inspectors": module is installed, but missing library stubs or py.typed marker [import-untyped] +api/openapi.py:5: error: Skipping analyzing "drf_yasg.openapi": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/utils.py:20: error: Incompatible types in assignment (expression has type "dict[str, Any]", target has type "Literal['+', '-', '~']") [assignment] +edge_api/identities/utils.py:25: error: Incompatible types in assignment (expression has type "dict[str, Any]", target has type "Literal['+', '-', '~']") [assignment] +edge_api/identities/utils.py:30: error: Incompatible return value type (got "dict[str, Literal['+', '-', '~']]", expected "FeatureStateChangeDetails") [return-value] +environments/dynamodb/wrappers/base.py:11: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment] +environments/dynamodb/wrappers/base.py:25: error: Missing return statement [return] +environments/dynamodb/wrappers/base.py:37: error: Item "None" of "Table | None" has no attribute "query" [union-attr] +environments/dynamodb/wrappers/base.py:37: error: Argument 1 to "query" of "Table" has incompatible type "**dict[str, dict[Any, Any]]"; expected "str" [arg-type] +environments/dynamodb/wrappers/base.py:37: error: Argument 1 to "query" of "Table" has incompatible type "**dict[str, dict[Any, Any]]"; expected "Literal['ALL_ATTRIBUTES', 'ALL_PROJECTED_ATTRIBUTES', 'COUNT', 'SPECIFIC_ATTRIBUTES']" [arg-type] +environments/dynamodb/wrappers/base.py:37: error: Argument 1 to "query" of "Table" has incompatible type "**dict[str, dict[Any, Any]]"; expected "Sequence[str]" [arg-type] +environments/dynamodb/wrappers/base.py:37: error: Argument 1 to "query" of "Table" has incompatible type "**dict[str, dict[Any, Any]]"; expected "int" [arg-type] +environments/dynamodb/wrappers/base.py:37: error: Argument 1 to "query" of "Table" has incompatible type "**dict[str, dict[Any, Any]]"; expected "bool" [arg-type] +environments/dynamodb/wrappers/base.py:37: error: Argument 1 to "query" of "Table" has incompatible type "**dict[str, dict[Any, Any]]"; expected "Literal['AND', 'OR']" [arg-type] +environments/dynamodb/wrappers/base.py:37: error: Argument 1 to "query" of "Table" has incompatible type "**dict[str, dict[Any, Any]]"; expected "Literal['INDEXES', 'NONE', 'TOTAL']" [arg-type] +environments/dynamodb/wrappers/base.py:37: error: Argument 1 to "query" of "Table" has incompatible type "**dict[str, dict[Any, Any]]"; expected "str | ConditionBase" [arg-type] +integrations/common/wrapper.py:23: error: Unexpected "..." [misc] +features/audit_helpers.py:25: error: Item "None" of "Identity | None" has no attribute "identifier" [union-attr] +features/audit_helpers.py:28: error: Incompatible types in assignment (expression has type "tuple[str | Any, str, str | Any]", variable has type "tuple[str, str | Any]") [assignment] +features/audit_helpers.py:28: error: Item "None" of "datetime | None" has no attribute "strftime" [union-attr] +features/audit_helpers.py:38: error: Item "None" of "FeatureSegment | None" has no attribute "segment" [union-attr] +features/audit_helpers.py:40: error: Incompatible types in assignment (expression has type "tuple[str | Any, str, str | Any]", variable has type "tuple[str, str | Any]") [assignment] +features/audit_helpers.py:40: error: Item "None" of "datetime | None" has no attribute "strftime" [union-attr] +features/audit_helpers.py:54: error: Incompatible types in assignment (expression has type "tuple[str | Any, str]", variable has type "tuple[str]") [assignment] +features/audit_helpers.py:54: error: Item "None" of "datetime | None" has no attribute "strftime" [union-attr] +features/versioning/managers.py:6: error: Skipping analyzing "softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/managers.py:49: error: Incompatible default for argument "environment_id" (default has type "None", argument has type "int") [assignment] +features/versioning/managers.py:49: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/managers.py:49: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/managers.py:49: error: Incompatible default for argument "environment_api_key" (default has type "None", argument has type "str") [assignment] +features/import_export/models.py:22: error: Unexpected keyword argument "swappable" for "ForeignKey" [call-arg] +/home/zach/.cache/pypoetry/virtualenvs/flagsmith-api-rl5v6uhh-py3.12/lib/python3.12/site-packages/django-stubs/db/models/fields/related.pyi:154: note: "ForeignKey" defined here +features/import_export/models.py:56: error: Unexpected keyword argument "swappable" for "ForeignKey" [call-arg] +/home/zach/.cache/pypoetry/virtualenvs/flagsmith-api-rl5v6uhh-py3.12/lib/python3.12/site-packages/django-stubs/db/models/fields/related.pyi:154: note: "ForeignKey" defined here +core/models.py:9: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/models.py:10: error: Skipping analyzing "softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/models.py:25: error: "UUIDNaturalKeyManagerMixin" has no attribute "model" [attr-defined] +core/models.py:26: error: "UUIDNaturalKeyManagerMixin" has no attribute "get" [attr-defined] +core/models.py:50: error: Cannot override class variable (previously declared on base class "AbstractBaseExportableModel") with instance variable [misc] +core/models.py:67: error: Missing return statement [return] +core/models.py:68: error: "_BaseHistoricalModel" has no attribute "history_type" [attr-defined] +core/models.py:71: error: "_BaseHistoricalModel" has no attribute "diff_against" [attr-defined] +core/models.py:71: error: "_BaseHistoricalModel" has no attribute "prev_record" [attr-defined] +core/models.py:72: error: "_BaseHistoricalModel" has no attribute "_change_details_excluded_fields" [attr-defined] +core/models.py:74: error: "_BaseHistoricalModel" has no attribute "history_type" [attr-defined] +core/models.py:77: error: "_BaseHistoricalModel" has no attribute "instance" [attr-defined] +core/models.py:78: error: "_BaseHistoricalModel" has no attribute "_change_details_excluded_fields" [attr-defined] +core/models.py:80: error: "_BaseHistoricalModel" has no attribute "history_type" [attr-defined] +core/models.py:117: error: Incompatible types in assignment (expression has type "None", variable has type "Sequence[str]") [assignment] +core/models.py:118: error: Incompatible types in assignment (expression has type "None", variable has type "Sequence[str]") [assignment] +core/models.py:159: error: "AbstractBaseAuditableModel" has no attribute "id" [attr-defined] +core/models.py:166: error: Incompatible return value type (got "None", expected "RelatedObjectType") [return-value] +core/models.py:196: error: Incompatible default for argument "historical_records_excluded_fields" (default has type "None", argument has type "list[str]") [assignment] +core/models.py:196: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +core/models.py:196: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +core/models.py:197: error: Incompatible default for argument "change_details_excluded_fields" (default has type "None", argument has type "Sequence[str]") [assignment] +core/models.py:197: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +core/models.py:197: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +projects/managers.py:2: error: Skipping analyzing "softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +app/routers.py:101: error: Missing return statement [return] +app/settings/common.py:21: error: Skipping analyzing "dj_database_url": module is installed, but missing library stubs or py.typed marker [import-untyped] +app/settings/common.py:24: error: Skipping analyzing "corsheaders.defaults": module is installed, but missing library stubs or py.typed marker [import-untyped] +app/settings/common.py:28: error: Skipping analyzing "task_processor.task_run_method": module is installed, but missing library stubs or py.typed marker [import-untyped] +app/settings/common.py:46: error: Need type annotation for "ADMINS" (hint: "ADMINS: list[] = ...") [var-annotated] +app/settings/common.py:47: error: Need type annotation for "MANAGERS" (hint: "MANAGERS: list[] = ...") [var-annotated] +app/settings/common.py:81: error: Module has no attribute "setdefaultencoding"; maybe "getdefaultencoding"? [attr-defined] +integrations/flagsmith/flagsmith_service.py:27: error: Incompatible default for argument "environment_key" (default has type "None", argument has type "str") [assignment] +integrations/flagsmith/flagsmith_service.py:27: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/flagsmith/flagsmith_service.py:27: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/flagsmith/flagsmith_service.py:27: error: Incompatible default for argument "api_url" (default has type "None", argument has type "str") [assignment] +features/feature_states/models.py:33: error: Incompatible return value type (got "int | str | None", expected "str | int | bool") [return-value] +features/feature_states/models.py:37: error: Argument 1 to "get" of "dict" has incompatible type "str | None"; expected "str" [arg-type] +environments/dynamodb/types.py:35: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment] +environments/dynamodb/types.py:36: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment] +environments/dynamodb/types.py:37: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment] +environments/dynamodb/types.py:41: error: Item "None" of "Table | None" has no attribute "get_item" [union-attr] +edge_api/identities/events.py:19: error: Item "None" of "Any | None" has no attribute "put_events" [union-attr] +app_analytics/influxdb_wrapper.py:8: error: Skipping analyzing "influxdb_client": module is installed, but missing library stubs or py.typed marker [import-untyped] +app_analytics/influxdb_wrapper.py:9: error: Skipping analyzing "influxdb_client.client.exceptions": module is installed, but missing library stubs or py.typed marker [import-untyped] +app_analytics/influxdb_wrapper.py:10: error: Skipping analyzing "influxdb_client.client.write_api": module is installed, but missing library stubs or py.typed marker [import-untyped] +app_analytics/influxdb_wrapper.py:122: error: Function "builtins.id" is not valid as a type [valid-type] +app_analytics/influxdb_wrapper.py:122: note: Perhaps you need "Callable[...]" or a callback protocol? +app_analytics/influxdb_wrapper.py:194: error: Need type annotation for "labels" (hint: "labels: list[] = ...") [var-annotated] +app_analytics/influxdb_wrapper.py:208: error: Incompatible default for argument "project_id" (default has type "None", argument has type "int") [assignment] +app_analytics/influxdb_wrapper.py:208: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +app_analytics/influxdb_wrapper.py:208: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +app_analytics/influxdb_wrapper.py:209: error: Incompatible default for argument "environment_id" (default has type "None", argument has type "int") [assignment] +app_analytics/influxdb_wrapper.py:209: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +app_analytics/influxdb_wrapper.py:209: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +app_analytics/influxdb_wrapper.py:249: error: Need type annotation for "dataset" [var-annotated] +app_analytics/influxdb_wrapper.py:256: error: Incompatible return value type (got "list[dict[Any, Any]]", expected "list[UsageData]") [return-value] +app_analytics/influxdb_wrapper.py:275: error: Argument "project_id" to "get_multiple_event_list_for_organisation" has incompatible type "int | None"; expected "int" [arg-type] +app_analytics/influxdb_wrapper.py:276: error: Argument "environment_id" to "get_multiple_event_list_for_organisation" has incompatible type "int | None"; expected "int" [arg-type] +app_analytics/influxdb_wrapper.py:280: error: Argument 1 to "load" of "Schema" has incompatible type "list[UsageData]"; expected "Mapping[str, Any] | Iterable[Mapping[str, Any]]" [arg-type] +app_analytics/influxdb_wrapper.py:328: error: Need type annotation for "dataset" [var-annotated] +organisations/subscriptions/xero/metadata.py:6: error: Incompatible types in assignment (expression has type "str", base class "BaseSubscriptionMetadata" defined the type as "None") [assignment] +organisations/chargebee/metadata.py:8: error: Incompatible types in assignment (expression has type "str", base class "BaseSubscriptionMetadata" defined the type as "None") [assignment] +features/multivariate/models.py:10: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/multivariate/models.py:32: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/multivariate/models.py:89: error: Missing return statement [return] +features/multivariate/models.py:103: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/multivariate/models.py:151: error: Item "None" of "Identity | None" has no attribute "identifier" [union-attr] +features/multivariate/models.py:154: error: Item "None" of "FeatureSegment | None" has no attribute "segment" [union-attr] +features/multivariate/models.py:161: error: Incompatible return value type (got "None", expected "int") [return-value] +organisations/chargebee/cache.py:3: error: Skipping analyzing "chargebee": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/chargebee/cache.py:4: error: Skipping analyzing "chargebee.result": module is installed, but missing library stubs or py.typed marker [import-untyped] +webhooks/serializers.py:6: error: Incompatible types in assignment (expression has type "DictField", base class "Serializer" defined the type as "ReturnDict[Any, Any]") [assignment] +integrations/common/serializers.py:25: error: "type[_MT?]" has no attribute "objects" [attr-defined] +integrations/common/serializers.py:32: error: Incompatible types in assignment (expression has type "str", base class "_BaseIntegrationModelSerializer" defined the type as "None") [assignment] +integrations/common/serializers.py:36: error: Incompatible types in assignment (expression has type "str", base class "_BaseIntegrationModelSerializer" defined the type as "None") [assignment] +integrations/common/serializers.py:40: error: Incompatible types in assignment (expression has type "str", base class "_BaseIntegrationModelSerializer" defined the type as "None") [assignment] +features/workflows/core/exceptions.py:10: error: Incompatible types in assignment (expression has type "Literal[400]", base class "FeatureWorkflowError" defined the type as "Literal[500]") [assignment] +features/workflows/core/exceptions.py:14: error: Incompatible types in assignment (expression has type "Literal[400]", base class "FeatureWorkflowError" defined the type as "Literal[500]") [assignment] +features/workflows/core/exceptions.py:18: error: Incompatible types in assignment (expression has type "Literal[400]", base class "FeatureWorkflowError" defined the type as "Literal[500]") [assignment] +custom_auth/mfa/trench/exceptions.py:7: error: Generator has incompatible item type "list[_Detail] | dict[str, _Detail] | str"; expected "str" [misc] +organisations/chargebee/chargebee.py:6: error: Skipping analyzing "chargebee": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/chargebee/chargebee.py:7: error: Skipping analyzing "chargebee.api_error": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/chargebee/chargebee.py:143: error: Missing return statement [return] +custom_auth/mfa/trench/models.py:21: error: Incompatible return value type (got "_T", expected "MFAMethod") [return-value] +custom_auth/mfa/trench/models.py:22: error: "type[_T]" has no attribute "DoesNotExist" [attr-defined] +custom_auth/mfa/trench/models.py:27: error: Incompatible return value type (got "_T", expected "MFAMethod") [return-value] +custom_auth/mfa/trench/models.py:28: error: "type[_T]" has no attribute "DoesNotExist" [attr-defined] +projects/tasks.py:5: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/hubspot/tasks.py:2: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/hubspot/tasks.py:6: error: Incompatible default for argument "organisation_id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/hubspot/tasks.py:6: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/hubspot/tasks.py:6: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +organisations/models.py:12: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/models.py:19: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/models.py:271: error: Argument 1 to "get_by_plan_id" of "SubscriptionPlanFamily" has incompatible type "str | None"; expected "str" [arg-type] +organisations/models.py:327: error: Argument 1 to "cancel_subscription" has incompatible type "str | None"; expected "str" [arg-type] +organisations/models.py:401: error: Incompatible types in assignment (expression has type "ChargebeeObjMetadata | None", variable has type "ChargebeeObjMetadata") [assignment] +organisations/models.py:401: error: Argument 1 to "get_subscription_metadata_from_id" has incompatible type "str | None"; expected "str" [arg-type] +integrations/github/models.py:6: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +api_keys/models.py:3: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +api_keys/models.py:5: error: Skipping analyzing "softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +api_keys/models.py:14: error: Couldn't resolve related manager 'audit_logs' for relation 'audit.models.AuditLog.master_api_key'. [django-manager-missing] +api_keys/models.py:21: error: Cannot override class variable (previously declared on base class "AbstractAPIKey") with instance variable [misc] +api_keys/models.py:29: error: Cannot find implementation or library stub for module named "rbac.models" [import-not-found] +integrations/github/client.py:116: error: Missing return statement [return] +integrations/github/client.py:282: error: Missing return statement [return] +integrations/github/client.py:307: error: Incompatible return value type (got "tuple[dict[str, str], int]", expected "dict[str, Any]") [return-value] +features/versioning/models.py:15: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/models.py:16: error: Skipping analyzing "softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/models.py:30: error: Couldn't resolve related manager 'versionchangeset_set' for relation 'features.versioning.models.VersionChangeSet.environment_feature_version'. [django-manager-missing] +features/versioning/models.py:32: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/versioning/models.py:86: error: Cannot override class variable (previously declared on base class "SoftDeleteExportableModel") with instance variable [misc] +features/versioning/models.py:97: error: Unsupported operand types for >= ("datetime" and "None") [operator] +features/versioning/models.py:97: note: Left operand is of type "datetime | None" +features/versioning/models.py:165: error: Incompatible types in assignment (expression has type "None", variable has type "str | UUID") [assignment] +features/versioning/models.py:173: error: Need type annotation for "created_at" [var-annotated] +features/versioning/models.py:174: error: Need type annotation for "updated_at" [var-annotated] +features/versioning/models.py:175: error: Need type annotation for "published_at" [var-annotated] +features/versioning/models.py:176: error: Need type annotation for "published_by" [var-annotated] +features/versioning/models.py:183: error: Need type annotation for "environment" [var-annotated] +features/versioning/models.py:187: error: Need type annotation for "change_request" [var-annotated] +features/versioning/models.py:194: error: Need type annotation for "environment_feature_version" [var-annotated] +features/versioning/models.py:204: error: Need type annotation for "feature" [var-annotated] +features/versioning/models.py:208: error: Need type annotation for "live_from" [var-annotated] +features/versioning/models.py:210: error: Need type annotation for "feature_states_to_create" [var-annotated] +features/versioning/models.py:215: error: Need type annotation for "feature_states_to_update" [var-annotated] +features/versioning/models.py:220: error: Need type annotation for "segment_ids_to_delete_overrides" [var-annotated] +features/managers.py:8: error: Skipping analyzing "ordered_model.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/managers.py:9: error: Skipping analyzing "softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/managers.py:28: error: Incompatible default for argument "additional_filters" (default has type "None", argument has type "Q") [assignment] +features/managers.py:28: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/managers.py:28: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +util/mappers/sdk.py:51: error: Argument "exclude" to "model_dump" of "BaseModel" has incompatible type "list[str]"; expected "IncEx | None" [arg-type] +util/mappers/engine.py:88: error: Argument "type" to "SegmentRuleModel" has incompatible type "str"; expected "Literal['ALL', 'ANY', 'NONE']" [arg-type] +util/mappers/engine.py:95: error: Argument "operator" to "SegmentConditionModel" has incompatible type "str"; expected "Literal['EQUAL', 'GREATER_THAN', 'LESS_THAN', 'LESS_THAN_INCLUSIVE', 'CONTAINS', 'GREATER_THAN_INCLUSIVE', 'NOT_CONTAINS', 'NOT_EQUAL', 'REGEX', 'PERCENTAGE_SPLIT', 'MODULO', 'IS_SET', 'IS_NOT_SET', 'IN']" [arg-type] +util/mappers/engine.py:149: error: Argument "multivariate_feature_state_values" to "FeatureStateModel" has incompatible type "list[MultivariateFeatureStateValueModel]"; expected "MultivariateFeatureStateValueList" [arg-type] +util/mappers/engine.py:411: error: Argument "identity_features" to "IdentityModel" has incompatible type "list[FeatureStateModel]"; expected "IdentityFeaturesList" [arg-type] +util/mappers/engine.py:419: error: Need type annotation for "prioritised_feature_state_by_feature_id" (hint: "prioritised_feature_state_by_feature_id: dict[, ] = ...") [var-annotated] +util/mappers/engine.py:442: error: Need type annotation for "feature_states_by_segment_id" (hint: "feature_states_by_segment_id: dict[, ] = ...") [var-annotated] +util/mappers/engine.py:453: error: Unsupported operand types for in ("UUID | None" and "Iterable[UUID]") [operator] +util/mappers/dynamodb.py:214: error: Cannot call function of unknown type [operator] +segments/models.py:14: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/models.py:41: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +segments/models.py:83: error: Cannot override class variable (previously declared on base class "SoftDeleteExportableModel") with instance variable [misc] +segments/models.py:158: error: Name "ChangeRequest" is not defined [name-defined] +segments/models.py:182: error: Unsupported operand types for + ("None" and "int") [operator] +segments/models.py:182: note: Left operand is of type "int | None" +segments/models.py:314: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +segments/models.py:370: error: Missing return statement [return] +segments/models.py:374: error: Missing return statement [return] +projects/models.py:11: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/models.py:45: error: Couldn't resolve related manager 'environments' for relation 'environments.models.Environment.project'. [django-manager-missing] +projects/models.py:45: error: Couldn't resolve related manager 'audit_logs' for relation 'audit.models.AuditLog.project'. [django-manager-missing] +projects/models.py:45: error: Couldn't resolve related manager 'launchdarklyimportrequest_set' for relation 'integrations.launch_darkly.models.LaunchDarklyImportRequest.project'. [django-manager-missing] +projects/models.py:111: error: Cannot override class variable (previously declared on base class "SoftDeleteExportableModel") with instance variable [misc] +projects/models.py:227: error: Cannot override class variable (previously declared on base class "PermissionModel") with instance variable [misc] +features/models.py:24: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/models.py:33: error: Skipping analyzing "ordered_model.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/models.py:34: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/models.py:92: error: Couldn't resolve related manager 'versionchangeset_set' for relation 'features.versioning.models.VersionChangeSet.feature'. [django-manager-missing] +features/models.py:95: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/models.py:132: error: Cannot override class variable (previously declared on base class "SoftDeleteExportableModel") with instance variable [misc] +features/models.py:153: error: Argument "organisation_id" to "call_github_task" has incompatible type "int"; expected "str" [arg-type] +features/models.py:217: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/models.py:267: error: Cannot override class variable (previously declared on base class "AbstractBaseExportableModel") with instance variable [misc] +features/models.py:296: error: Incompatible default for argument "environment_feature_version" (default has type "None", argument has type "EnvironmentFeatureVersion") [assignment] +features/models.py:296: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/models.py:296: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/models.py:418: error: Argument 1 to "call_github_task" has incompatible type "int"; expected "str" [arg-type] +features/models.py:430: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/models.py:479: error: Cannot override class variable (previously declared on base class "SoftDeleteExportableModel") with instance variable [misc] +features/models.py:530: error: Unsupported left operand type for < ("None") [operator] +features/models.py:530: note: Both left and right operands are unions +features/models.py:535: error: Item "None" of "Environment | None" has no attribute "use_v2_feature_versioning" [union-attr] +features/models.py:537: error: Unsupported left operand type for > ("None") [operator] +features/models.py:537: note: Both left and right operands are unions +features/models.py:598: error: Item "None" of "Environment | None" has no attribute "use_v2_feature_versioning" [union-attr] +features/models.py:612: error: Incompatible return value type (got "datetime | bool | None", expected "bool") [return-value] +features/models.py:617: error: Incompatible default for argument "live_from" (default has type "None", argument has type "datetime") [assignment] +features/models.py:617: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/models.py:617: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/models.py:619: error: Incompatible default for argument "version" (default has type "None", argument has type "int") [assignment] +features/models.py:619: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/models.py:619: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/models.py:620: error: Incompatible default for argument "environment_feature_version" (default has type "None", argument has type "EnvironmentFeatureVersion") [assignment] +features/models.py:620: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/models.py:620: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/models.py:678: error: Incompatible default for argument "identity_hash_key" (default has type "None", argument has type "str | int") [assignment] +features/models.py:678: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/models.py:678: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/models.py:681: error: Argument 1 to "get_multivariate_feature_state_value" of "FeatureState" has incompatible type "str | int"; expected "str" [arg-type] +features/models.py:691: error: Incompatible default for argument "identity" (default has type "None", argument has type "Identity") [assignment] +features/models.py:691: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/models.py:691: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/models.py:699: error: Argument 1 to "get_feature_state_value_by_hash_key" of "FeatureState" has incompatible type "str | None"; expected "str | int" [arg-type] +features/models.py:746: error: Incompatible return value type (got "Any | None", expected "AbstractBaseFeatureValueModel") [return-value] +features/models.py:817: error: Incompatible return value type (got "str | None", expected "str") [return-value] +features/models.py:898: error: Incompatible return value type (got "Literal[0] | bool | None", expected "bool") [return-value] +features/models.py:898: error: Item "None" of "ChangeRequest | None" has no attribute "committed_at" [union-attr] +features/models.py:918: error: Item "None" of "FeatureState | None" has no attribute "enabled" [union-attr] +features/models.py:924: error: Return value expected [return-value] +features/models.py:931: error: Item "None" of "Environment | None" has no attribute "created_date" [union-attr] +features/models.py:934: error: Return value expected [return-value] +features/models.py:956: error: Item "None" of "Identity | None" has no attribute "identifier" [union-attr] +features/models.py:984: error: Argument "environment" to "get_live_feature_states" of "FeatureStateManager" has incompatible type "Environment | None"; expected "Environment" [arg-type] +features/models.py:1059: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/models.py:1070: error: Cannot override class variable (previously declared on base class "SoftDeleteExportableModel") with instance variable [misc] +features/models.py:1114: error: Return value expected [return-value] +features/models.py:1116: error: Item "None" of "ChangeRequest | None" has no attribute "committed_at" [union-attr] +features/models.py:1117: error: Return value expected [return-value] +features/models.py:1124: error: Item "None" of "Identity | None" has no attribute "identifier" [union-attr] +features/models.py:1127: error: Item "None" of "FeatureSegment | None" has no attribute "segment" [union-attr] +environments/dynamodb/wrappers/identity_wrapper.py:37: error: Return type "str | None" of "get_table_name" incompatible with return type "str" in supertype "BaseDynamoWrapper" [override] +environments/dynamodb/wrappers/identity_wrapper.py:41: error: Item "None" of "Table | None" has no attribute "query" [union-attr] +environments/dynamodb/wrappers/identity_wrapper.py:44: error: Item "None" of "Table | None" has no attribute "put_item" [union-attr] +environments/dynamodb/wrappers/identity_wrapper.py:47: error: Item "None" of "Table | None" has no attribute "batch_writer" [union-attr] +environments/dynamodb/wrappers/identity_wrapper.py:52: error: Argument 1 to "len" has incompatible type "dict[str, DocumentValue] | str | bool | Decimal | None"; expected "Sized" [arg-type] +environments/dynamodb/wrappers/identity_wrapper.py:60: error: Item "None" of "Table | None" has no attribute "get_item" [union-attr] +environments/dynamodb/wrappers/identity_wrapper.py:63: error: Item "None" of "Table | None" has no attribute "delete_item" [union-attr] +environments/dynamodb/wrappers/identity_wrapper.py:66: error: Item "None" of "Table | None" has no attribute "batch_writer" [union-attr] +environments/dynamodb/wrappers/identity_wrapper.py:101: error: Missing key "TableName" for TypedDict "QueryInputRequestTypeDef" [typeddict-item] +environments/dynamodb/wrappers/identity_wrapper.py:103: error: Incompatible types (expression has type "Equals", TypedDict item "KeyConditionExpression" has type "str") [typeddict-item] +environments/dynamodb/wrappers/identity_wrapper.py:109: error: Value of "FilterExpression" has incompatible type "ConditionBase | str"; expected "str" [typeddict-item] +environments/dynamodb/wrappers/identity_wrapper.py:139: error: Argument "capacity_spent" to "CapacityBudgetExceeded" has incompatible type "int"; expected "Decimal" [arg-type] +environments/dynamodb/wrappers/identity_wrapper.py:142: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "str" [arg-type] +environments/dynamodb/wrappers/identity_wrapper.py:142: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "int" [arg-type] +environments/dynamodb/wrappers/identity_wrapper.py:142: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "dict[str, bytes | bytearray | str | int | Decimal | <8 more items> | None] | None" [arg-type] +environments/dynamodb/wrappers/identity_wrapper.py:142: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "ConditionBase | str | None" [arg-type] +environments/dynamodb/wrappers/identity_wrapper.py:142: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "str | None" [arg-type] +environments/dynamodb/wrappers/identity_wrapper.py:142: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "bool" [arg-type] +environments/dynamodb/wrappers/identity_wrapper.py:145: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment] +environments/dynamodb/wrappers/identity_wrapper.py:148: error: Incompatible types in assignment (expression has type "dict[str, bytes | bytearray | str | int | Decimal | <8 more items> | None] | None", variable has type "str") [assignment] +environments/dynamodb/wrappers/identity_wrapper.py:156: error: Incompatible default for argument "start_key" (default has type "None", argument has type "dict[Any, Any]") [assignment] +environments/dynamodb/wrappers/identity_wrapper.py:156: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/dynamodb/wrappers/identity_wrapper.py:156: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/dynamodb/wrappers/identity_wrapper.py:177: error: Incompatible default for argument "identity_pk" (default has type "None", argument has type "str") [assignment] +environments/dynamodb/wrappers/identity_wrapper.py:177: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/dynamodb/wrappers/identity_wrapper.py:177: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/dynamodb/wrappers/identity_wrapper.py:177: error: Incompatible default for argument "identity_model" (default has type "None", argument has type "IdentityModel") [assignment] +environments/dynamodb/wrappers/environment_wrapper.py:41: error: Return type "str | None" of "get_table_name" incompatible with return type "str" in supertype "BaseDynamoWrapper" [override] +environments/dynamodb/wrappers/environment_wrapper.py:45: error: Item "None" of "Table | None" has no attribute "batch_writer" [union-attr] +environments/dynamodb/wrappers/environment_wrapper.py:53: error: Item "None" of "Table | None" has no attribute "get_item" [union-attr] +environments/dynamodb/wrappers/environment_wrapper.py:58: error: Item "None" of "Table | None" has no attribute "delete_item" [union-attr] +environments/dynamodb/wrappers/environment_wrapper.py:62: error: Return type "str | None" of "get_table_name" incompatible with return type "str" in supertype "BaseDynamoWrapper" [override] +environments/dynamodb/wrappers/environment_wrapper.py:73: error: Argument "KeyConditionExpression" to "query_get_all_items" of "BaseDynamoWrapper" has incompatible type "And"; expected "dict[Any, Any]" [arg-type] +environments/dynamodb/wrappers/environment_wrapper.py:95: error: Item "None" of "Table | None" has no attribute "batch_writer" [union-attr] +environments/dynamodb/wrappers/environment_wrapper.py:111: error: Item "None" of "Table | None" has no attribute "batch_writer" [union-attr] +environments/dynamodb/wrappers/environment_wrapper.py:118: error: Incompatible types in assignment (expression has type "str", variable has type "int") [assignment] +environments/dynamodb/wrappers/environment_wrapper.py:120: error: Missing key "TableName" for TypedDict "QueryInputRequestTypeDef" [typeddict-item] +environments/dynamodb/wrappers/environment_wrapper.py:121: error: Incompatible types (expression has type "Equals", TypedDict item "KeyConditionExpression" has type "str") [typeddict-item] +environments/dynamodb/wrappers/environment_wrapper.py:124: error: Item "None" of "Table | None" has no attribute "batch_writer" [union-attr] +environments/dynamodb/wrappers/environment_wrapper.py:125: error: Argument 1 to "query_get_all_items" of "BaseDynamoWrapper" has incompatible type "**QueryInputRequestTypeDef"; expected "dict[Any, Any]" [arg-type] +environments/dynamodb/wrappers/environment_api_key_wrapper.py:22: error: Item "None" of "Table | None" has no attribute "batch_writer" [union-attr] +environments/dynamodb/wrappers/environment_api_key_wrapper.py:31: error: Item "None" of "Table | None" has no attribute "delete_item" [union-attr] +audit/tasks.py:7: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +audit/tasks.py:8: error: Skipping analyzing "task_processor.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +audit/tasks.py:71: error: "type[Model]" has no attribute "objects" [attr-defined] +audit/tasks.py:86: error: Incompatible type for lookup 'id': (got "int | None", expected "str | int") [misc] +audit/tasks.py:128: error: Incompatible default for argument "user_id" (default has type "None", argument has type "int") [assignment] +audit/tasks.py:128: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +audit/tasks.py:128: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +audit/tasks.py:129: error: Incompatible default for argument "master_api_key_id" (default has type "None", argument has type "int") [assignment] +audit/tasks.py:129: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +audit/tasks.py:129: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +audit/tasks.py:130: error: Incompatible default for argument "changed_at" (default has type "None", argument has type "str") [assignment] +audit/tasks.py:130: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +audit/tasks.py:130: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +audit/models.py:8: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +audit/models.py:27: error: Need type annotation for "created_date" [var-annotated] +audit/models.py:29: error: Need type annotation for "project" [var-annotated] +audit/models.py:32: error: Need type annotation for "environment" [var-annotated] +audit/models.py:39: error: Need type annotation for "log" [var-annotated] +audit/models.py:40: error: Need type annotation for "author" [var-annotated] +audit/models.py:47: error: Need type annotation for "master_api_key" [var-annotated] +audit/models.py:54: error: Need type annotation for "related_object_id" [var-annotated] +audit/models.py:55: error: Need type annotation for "related_object_type" [var-annotated] +audit/models.py:56: error: Need type annotation for "related_object_uuid" [var-annotated] +audit/models.py:58: error: Need type annotation for "skip_signals_and_hooks" [var-annotated] +audit/models.py:65: error: Need type annotation for "is_system_event" [var-annotated] +audit/models.py:67: error: Need type annotation for "history_record_id" [var-annotated] +audit/models.py:68: error: Need type annotation for "history_record_class_path" [var-annotated] +audit/models.py:106: error: Return value expected [return-value] +audit/models.py:109: error: "type[Model]" has no attribute "objects" [attr-defined] +segments/tasks.py:1: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/github/tasks.py:5: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/github/tasks.py:28: error: Argument 3 to "generate_body_comment" has incompatible type "int | None"; expected "int" [arg-type] +integrations/github/tasks.py:28: error: Argument 5 to "generate_body_comment" has incompatible type "list[dict[str, Any]] | None"; expected "list[dict[str, Any]]" [arg-type] +integrations/github/tasks.py:39: error: Argument 1 to "split" of "bytes" has incompatible type "str"; expected "Buffer | None" [arg-type] +integrations/github/tasks.py:41: error: Argument 2 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:41: error: Argument 3 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:41: error: Argument 4 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:46: error: Incompatible types in assignment (expression has type "str | bytes", variable has type "bytes") [assignment] +integrations/github/tasks.py:47: error: Argument 1 to "split" of "bytes" has incompatible type "str"; expected "Buffer | None" [arg-type] +integrations/github/tasks.py:49: error: Argument 2 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:49: error: Argument 3 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:49: error: Argument 4 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:56: error: Argument 1 to "split" of "bytes" has incompatible type "str"; expected "Buffer | None" [arg-type] +integrations/github/tasks.py:58: error: Argument 2 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:58: error: Argument 3 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:58: error: Argument 4 to "post_comment_to_github" has incompatible type "bytes"; expected "str" [arg-type] +integrations/github/tasks.py:109: error: Argument "feature_external_resources" to "CallGithubData" has incompatible type "None"; expected "list[dict[str, Any]]" [arg-type] +features/multivariate/serializers.py:27: error: Incompatible types in assignment (expression has type "tuple[str, str, str, str, str, str, str, str]", base class "Meta" defined the type as "tuple[str, str, str, str, str, str, str]") [assignment] +features/multivariate/serializers.py:51: error: Item "Sequence[Any]" of "Any | Sequence[Any]" has no attribute "id" [union-attr] +environments/managers.py:2: error: Skipping analyzing "softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/github/github.py:212: error: Item "None" of "Environment | Any | None" has no attribute "name" [union-attr] +integrations/github/github.py:218: error: Item "None" of "Environment | Any | None" has no attribute "api_key" [union-attr] +environments/models.py:13: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/models.py:22: error: Skipping analyzing "softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/models.py:65: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +environments/models.py:73: error: Need type annotation for "name" [var-annotated] +environments/models.py:74: error: Need type annotation for "created_date" [var-annotated] +environments/models.py:75: error: Need type annotation for "description" [var-annotated] +environments/models.py:76: error: Need type annotation for "project" [var-annotated] +environments/models.py:90: error: Need type annotation for "api_key" [var-annotated] +environments/models.py:94: error: Need type annotation for "minimum_change_request_approvals" [var-annotated] +environments/models.py:96: error: Need type annotation for "webhooks_enabled" [var-annotated] +environments/models.py:97: error: Need type annotation for "webhook_url" [var-annotated] +environments/models.py:99: error: Need type annotation for "allow_client_traits" [var-annotated] +environments/models.py:102: error: Need type annotation for "updated_at" [var-annotated] +environments/models.py:106: error: Need type annotation for "banner_text" [var-annotated] +environments/models.py:107: error: Need type annotation for "banner_colour" [var-annotated] +environments/models.py:112: error: Need type annotation for "hide_disabled_flags" [var-annotated] +environments/models.py:120: error: Need type annotation for "use_identity_composite_key_for_hashing" [var-annotated] +environments/models.py:128: error: Need type annotation for "hide_sensitive_data" [var-annotated] +environments/models.py:133: error: Need type annotation for "use_v2_feature_versioning" [var-annotated] +environments/models.py:134: error: Need type annotation for "use_identity_overrides_in_local_eval" [var-annotated] +environments/models.py:139: error: Need type annotation for "is_creating" [var-annotated] +environments/models.py:172: error: Incompatible default for argument "api_key" (default has type "None", argument has type "str") [assignment] +environments/models.py:172: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/models.py:172: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/models.py:242: error: Incompatible default for argument "environment_id" (default has type "None", argument has type "int") [assignment] +environments/models.py:242: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/models.py:242: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/models.py:242: error: Incompatible default for argument "project_id" (default has type "None", argument has type "int") [assignment] +environments/models.py:279: error: Item "None" of "Project | None" has no attribute "enable_dynamo_db" [union-attr] +environments/models.py:284: error: Item "None" of "Project | None" has no attribute "edge_v2_environments_migrated" [union-attr] +environments/models.py:288: error: Incompatible default for argument "filter_kwargs" (default has type "None", argument has type "dict[Any, Any]") [assignment] +environments/models.py:288: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/models.py:288: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/models.py:443: error: Invalid type comment or annotation [valid-type] +environments/models.py:443: note: Suggestion: use type[...] instead of type(...) +environments/models.py:444: error: Incompatible default for argument "identity_id" (default has type "None", argument has type "int | str") [assignment] +environments/models.py:444: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/models.py:444: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/models.py:445: error: Incompatible default for argument "identity_identifier" (default has type "None", argument has type "str") [assignment] +environments/models.py:445: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/models.py:445: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/models.py:446: error: Incompatible default for argument "feature_segment" (default has type "None", argument has type "FeatureSegment") [assignment] +environments/models.py:446: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/models.py:446: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/models.py:498: error: Need type annotation for "environment" [var-annotated] +environments/models.py:501: error: Need type annotation for "key" [var-annotated] +environments/models.py:502: error: Need type annotation for "created_at" [var-annotated] +environments/models.py:503: error: Need type annotation for "name" [var-annotated] +environments/models.py:504: error: Need type annotation for "expires_at" [var-annotated] +environments/models.py:505: error: Need type annotation for "active" [var-annotated] +webhooks/webhooks.py:16: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +webhooks/webhooks.py:17: error: Skipping analyzing "task_processor.task_run_method": module is installed, but missing library stubs or py.typed marker [import-untyped] +webhooks/webhooks.py:139: error: Cannot determine type of "data" [has-type] +webhooks/webhooks.py:197: error: Incompatible types in assignment (expression has type "Webhook", variable has type "OrganisationWebhook") [assignment] +webhooks/webhooks.py:223: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] +webhooks/webhooks.py:254: error: Cannot determine type of "data" [has-type] +webhooks/webhooks.py:262: error: Incompatible default for argument "status_code" (default has type "None", argument has type "int | str") [assignment] +webhooks/webhooks.py:262: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +webhooks/webhooks.py:262: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +webhooks/webhooks.py:268: error: Item "Webhook" of "OrganisationWebhook | Webhook" has no attribute "organisation" [union-attr] +webhooks/webhooks.py:270: error: Item "OrganisationWebhook" of "OrganisationWebhook | Webhook" has no attribute "environment" [union-attr] +webhooks/webhooks.py:280: error: List item 0 has incompatible type "str | Any | None"; expected "str" [list-item] +webhooks/webhooks.py:290: error: Incompatible default for argument "status_code" (default has type "None", argument has type "int | str") [assignment] +webhooks/webhooks.py:290: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +webhooks/webhooks.py:290: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +webhooks/webhooks.py:299: error: Item "OrganisationWebhook" of "OrganisationWebhook | Webhook" has no attribute "environment" [union-attr] +webhooks/webhooks.py:300: error: Item "OrganisationWebhook" of "OrganisationWebhook | Webhook" has no attribute "environment" [union-attr] +users/abc.py:34: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +users/abc.py:34: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +users/abc.py:34: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +users/abc.py:40: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +users/abc.py:40: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +users/abc.py:40: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +sse/tasks.py:7: error: Skipping analyzing "influxdb_client": module is installed, but missing library stubs or py.typed marker [import-untyped] +sse/tasks.py:8: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +sse/tasks.py:48: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +sse/tasks.py:49: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +sse/sse_service.py:8: error: Skipping analyzing "gnupg": module is installed, but missing library stubs or py.typed marker [import-untyped] +permissions/rbac_wrapper.py:12: error: Cannot find implementation or library stub for module named "rbac.permission_service" [import-not-found] +permissions/rbac_wrapper.py:13: error: Cannot find implementation or library stub for module named "rbac.permissions_calculator" [import-not-found] +permissions/rbac_wrapper.py:64: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +permissions/rbac_wrapper.py:64: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/rbac_wrapper.py:64: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:12: error: Incompatible default for argument "feature_name" (default has type "None", argument has type "str") [assignment] +features/versioning/versioning_service.py:12: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:12: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:23: error: Incompatible default for argument "feature_name" (default has type "None", argument has type "str") [assignment] +features/versioning/versioning_service.py:23: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:23: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:24: error: Incompatible default for argument "additional_filters" (default has type "None", argument has type "Q") [assignment] +features/versioning/versioning_service.py:24: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:24: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:25: error: Incompatible default for argument "additional_select_related_args" (default has type "None", argument has type "Iterable[str]") [assignment] +features/versioning/versioning_service.py:25: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:25: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:28: error: Incompatible default for argument "additional_prefetch_related_args" (default has type "None", argument has type "Iterable[str | Prefetch]") [assignment] +features/versioning/versioning_service.py:28: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:28: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:52: error: Incompatible default for argument "feature_name" (default has type "None", argument has type "str") [assignment] +features/versioning/versioning_service.py:52: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:52: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:53: error: Incompatible default for argument "additional_filters" (default has type "None", argument has type "Q") [assignment] +features/versioning/versioning_service.py:53: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:53: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:54: error: Incompatible default for argument "additional_select_related_args" (default has type "None", argument has type "Iterable[str]") [assignment] +features/versioning/versioning_service.py:54: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:54: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:57: error: Incompatible default for argument "additional_prefetch_related_args" (default has type "None", argument has type "Iterable[str | Prefetch]") [assignment] +features/versioning/versioning_service.py:57: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:57: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:58: error: Incompatible default for argument "key_function" (default has type "None", argument has type "Callable[[FeatureState], tuple[Any, ...]]") [assignment] +features/versioning/versioning_service.py:58: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:58: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:60: error: Function "key_function" could always be true in boolean context [truthy-function] +features/versioning/versioning_service.py:73: error: Need type annotation for "feature_states_dict" (hint: "feature_states_dict: dict[, ] = ...") [var-annotated] +features/versioning/versioning_service.py:80: error: Incompatible return value type (got "dict[tuple[Any, ...], FeatureState]", expected "dict[tuple[Any, ...] | str | int, FeatureState]") [return-value] +features/versioning/versioning_service.py:80: note: Perhaps you need a type annotation for "feature_states_dict"? Suggestion: "dict[tuple[Any, ...] | str | int, FeatureState]" +features/versioning/versioning_service.py:100: error: Incompatible default for argument "feature_name" (default has type "None", argument has type "str") [assignment] +features/versioning/versioning_service.py:100: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:100: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:101: error: Incompatible default for argument "additional_filters" (default has type "None", argument has type "Q") [assignment] +features/versioning/versioning_service.py:101: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:101: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:102: error: Incompatible default for argument "additional_select_related_args" (default has type "None", argument has type "Iterable[str]") [assignment] +features/versioning/versioning_service.py:102: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:102: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/versioning/versioning_service.py:105: error: Incompatible default for argument "additional_prefetch_related_args" (default has type "None", argument has type "Iterable[str | Prefetch]") [assignment] +features/versioning/versioning_service.py:105: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/versioning/versioning_service.py:105: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/feature_external_resources/models.py:7: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/feature_external_resources/models.py:107: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +features/feature_external_resources/models.py:143: error: Argument "organisation_id" to "call_github_task" has incompatible type "int"; expected "str" [arg-type] +environments/identities/models.py:75: error: Argument "traits" to "get_segments" of "Identity" has incompatible type "list[Trait] | None"; expected "list[Trait]" [arg-type] +environments/identities/models.py:156: error: Incompatible default for argument "traits" (default has type "None", argument has type "list[Trait]") [assignment] +environments/identities/models.py:156: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/identities/models.py:156: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/dynamodb/services.py:105: error: Argument "environment_id" to "map_engine_feature_state_to_identity_override" has incompatible type "str"; expected "int" [arg-type] +permissions/permission_service.py:63: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +permissions/permission_service.py:63: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:63: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:81: error: Argument 2 to "get_object_id_from_base_permission_filter" has incompatible type "type[Project]"; expected "Organisation | Project | Environment" [arg-type] +permissions/permission_service.py:97: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +permissions/permission_service.py:97: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:97: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:111: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +permissions/permission_service.py:111: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:111: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:138: error: Argument 2 to "get_object_id_from_base_permission_filter" has incompatible type "type[Environment]"; expected "Organisation | Project | Environment" [arg-type] +permissions/permission_service.py:159: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +permissions/permission_service.py:159: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:159: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:185: error: Argument 2 to "get_base_permission_filter" has incompatible type "type[Organisation]"; expected "Organisation | Project | Environment" [arg-type] +permissions/permission_service.py:207: error: Argument 2 to "get_base_permission_filter" has incompatible type "type[Project] | type[Environment]"; expected "Organisation | Project | Environment" [arg-type] +permissions/permission_service.py:214: error: Incompatible default for argument "for_model" (default has type "None", argument has type "Organisation | Project | Environment") [assignment] +permissions/permission_service.py:214: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:214: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:215: error: Incompatible default for argument "permission_key" (default has type "None", argument has type "str") [assignment] +permissions/permission_service.py:215: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:215: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:231: error: Incompatible default for argument "for_model" (default has type "None", argument has type "Organisation | Project | Environment") [assignment] +permissions/permission_service.py:231: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:231: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:232: error: Incompatible default for argument "permission_key" (default has type "None", argument has type "str") [assignment] +permissions/permission_service.py:232: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:232: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:258: error: Incompatible default for argument "permission_key" (default has type "None", argument has type "str") [assignment] +permissions/permission_service.py:258: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:258: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +permissions/permission_service.py:272: error: Incompatible default for argument "permission_key" (default has type "None", argument has type "str") [assignment] +permissions/permission_service.py:272: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permission_service.py:272: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/tasks.py:3: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/tasks.py:14: error: Module "features.models" has no attribute "HistoricalFeatureState" [attr-defined] +features/tasks.py:51: error: Item "None" of "Environment | None" has no attribute "id" [union-attr] +features/tasks.py:56: error: Item "None" of "Environment | None" has no attribute "project" [union-attr] +features/tasks.py:74: error: Incompatible return value type (got "None", expected "dict[Any, Any]") [return-value] +features/feature_segments/serializers.py:1: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/feature_segments/serializers.py:2: error: Skipping analyzing "common.features.serializers": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/feature_segments/serializers.py:174: error: Need type annotation for "feature_states" (hint: "feature_states: list[] = ...") [var-annotated] +users/models.py: error: Skipping analyzing "admin_sso.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +users/models.py:13: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +users/models.py:95: error: Couldn't resolve related manager 'versionchangeset_set' for relation 'features.versioning.models.VersionChangeSet.published_by'. [django-manager-missing] +users/models.py:95: error: Couldn't resolve related manager 'changerequestapproval_set' for relation 'features.workflows.core.models.ChangeRequestApproval.user'. [django-manager-missing] +users/models.py:95: error: Couldn't resolve related manager 'audit_logs' for relation 'audit.models.AuditLog.author'. [django-manager-missing] +users/models.py:95: error: Couldn't resolve related manager 'launchdarklyimportrequest_set' for relation 'integrations.launch_darkly.models.LaunchDarklyImportRequest.created_by'. [django-manager-missing] +users/models.py:100: error: Cannot override class variable (previously declared on base class "AbstractUser") with instance variable [misc] +users/models.py:100: error: Incompatible types in assignment (expression has type "users.models.UserManager[Self]", base class "AbstractUser" defined the type as "django.contrib.auth.models.UserManager[FFAdminUser]") [assignment] +users/models.py:101: error: CharField is nullable but its generic get type parameter is not optional [misc] +users/models.py:142: error: Signature of "delete" incompatible with supertype "Model" [override] +users/models.py:142: note: Superclass: +users/models.py:142: note: def delete(self, using: Any | None = ..., keep_parents: bool = ...) -> tuple[int, dict[str, int]] +users/models.py:142: note: Subclass: +users/models.py:142: note: def delete(self, delete_orphan_organisations: bool = ...) -> Any +users/models.py:179: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] +users/models.py:244: error: Missing return statement [return] +users/models.py:268: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +users/models.py:268: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +users/models.py:268: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +users/models.py:273: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +users/models.py:273: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +users/models.py:273: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +users/models.py:283: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +users/models.py:283: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +users/models.py:283: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +users/models.py:296: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +users/models.py:296: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +users/models.py:296: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +users/models.py:388: error: Argument "through_fields" to "ManyToManyField" has incompatible type "list[str]"; expected "tuple[str, str] | None" [arg-type] +environments/tasks.py:1: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/tasks.py:2: error: Skipping analyzing "task_processor.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/tasks.py:49: error: Argument 1 to "delete_environment" of "DynamoEnvironmentV2Wrapper" has incompatible type "str"; expected "int" [arg-type] +api_keys/user.py:76: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +api_keys/user.py:76: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +api_keys/user.py:76: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +api_keys/user.py:84: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +api_keys/user.py:84: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +api_keys/user.py:84: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +api_keys/user.py:98: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +api_keys/user.py:98: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +api_keys/user.py:98: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +api_keys/user.py:108: error: Incompatible default for argument "tag_ids" (default has type "None", argument has type "list[int]") [assignment] +api_keys/user.py:108: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +api_keys/user.py:108: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +organisations/task_helpers.py:6: error: Library stubs not installed for "dateutil.relativedelta" [import-untyped] +organisations/invites/models.py:8: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/hubspot/client.py:5: error: Skipping analyzing "hubspot": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/hubspot/client.py:8: error: Skipping analyzing "hubspot.crm.companies": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/hubspot/client.py:13: error: Skipping analyzing "hubspot.crm.contacts": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/hubspot/client.py:162: error: Incompatible default for argument "active_subscription" (default has type "None", argument has type "str") [assignment] +integrations/lead_tracking/hubspot/client.py:162: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/hubspot/client.py:162: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/hubspot/client.py:163: error: Incompatible default for argument "organisation_id" (default has type "None", argument has type "int") [assignment] +integrations/lead_tracking/hubspot/client.py:163: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/hubspot/client.py:163: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/hubspot/client.py:173: error: Incompatible types in assignment (expression has type "int", target has type "str") [assignment] +features/versioning/tasks.py:8: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/tasks.py:10: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/serializers.py:117: error: Need type annotation for "emails" [var-annotated] +organisations/serializers.py:221: error: Need type annotation for "events_list" [var-annotated] +integrations/lead_tracking/hubspot/lead_tracker.py:18: error: Skipping analyzing "re2": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/hubspot/lead_tracker.py:47: error: Incompatible default for argument "organisation" (default has type "None", argument has type "Organisation") [assignment] +integrations/lead_tracking/hubspot/lead_tracker.py:47: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/hubspot/lead_tracker.py:47: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/hubspot/lead_tracker.py:67: error: Incompatible default for argument "organisation" (default has type "None", argument has type "Organisation") [assignment] +integrations/lead_tracking/hubspot/lead_tracker.py:67: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/lead_tracking/hubspot/lead_tracker.py:67: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/lead_tracking/hubspot/lead_tracker.py:95: error: Argument 1 to "_get_or_create_company_by_domain" of "HubspotLeadTracker" has incompatible type "Any | None"; expected "str" [arg-type] +integrations/lead_tracking/hubspot/lead_tracker.py:103: error: Return value expected [return-value] +integrations/lead_tracking/hubspot/lead_tracker.py:109: error: Return value expected [return-value] +users/serializers.py:1: error: Skipping analyzing "djoser.serializers": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/serializers.py:5: error: Skipping analyzing "common.features.multivariate.serializers": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/serializers.py:8: error: Skipping analyzing "common.features.serializers": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/serializers.py:12: error: Skipping analyzing "common.metadata.serializers": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/serializers.py:17: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/serializers.py:252: error: Item "Sequence[Any]" of "Any | Sequence[Any]" has no attribute "id" [union-attr] +features/serializers.py:281: error: Missing return statement [return] +features/serializers.py:316: error: Incompatible types in assignment (expression has type tuple[str, str, ... <19 more items>], base class "Meta" defined the type as tuple[str, str, ... <18 more items>]) [assignment] +features/serializers.py:318: error: Incompatible default for argument "validated_data" (default has type "None", argument has type "dict[Any, Any]") [assignment] +features/serializers.py:318: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +features/serializers.py:318: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/serializers.py:332: error: Incompatible types in assignment (expression has type "tuple[str, str, str, str, str, str, str]", base class "Meta" defined the type as "tuple[str, str, str, str]") [assignment] +features/serializers.py:349: error: Incompatible types in assignment (expression has type "tuple[str, str, str, str, str, str, str]", base class "Meta" defined the type as "tuple[str, str, str, str]") [assignment] +features/serializers.py:565: error: Need type annotation for "events_list" [var-annotated] +features/versioning/serializers.py:28: error: Name "CustomCreateSegmentOverrideFeatureStateSerializer.Meta" is not defined [name-defined] +features/versioning/serializers.py:94: error: Incompatible types in assignment (expression has type tuple[str, str, ... <10 more items>], base class "Meta" defined the type as tuple[str, str, str, str, str, str, str, str, str]) [assignment] +features/versioning/serializers.py:123: error: Need type annotation for "segment_ids_to_delete_overrides" [var-annotated] +features/versioning/serializers.py:138: error: Incompatible types in assignment (expression has type tuple[str, str, ... <11 more items>], base class "Meta" defined the type as tuple[str, str, str, str, str, str, str, str, str]) [assignment] +features/versioning/serializers.py:228: error: Item "None" of "FeatureSegment | None" has no attribute "segment" [union-attr] +organisations/subscriptions/serializers/mixins.py:26: error: Incompatible types in assignment (expression has type "None", variable has type "Iterable[str]") [assignment] +organisations/subscriptions/serializers/mixins.py:27: error: Incompatible types in assignment (expression has type "None", variable has type "Iterable[str]") [assignment] +organisations/subscriptions/serializers/mixins.py:28: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment] +organisations/permissions/models.py:48: error: Cannot override class variable (previously declared on base class "PermissionModel") with instance variable [misc] +integrations/webhook/models.py:2: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/launch_darkly/models.py:22: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +integrations/launch_darkly/models.py:29: error: Need type annotation for "created_by" [var-annotated] +integrations/launch_darkly/models.py:30: error: Need type annotation for "project" [var-annotated] +integrations/launch_darkly/models.py:32: error: Need type annotation for "created_at" [var-annotated] +integrations/launch_darkly/models.py:33: error: Need type annotation for "updated_at" [var-annotated] +integrations/launch_darkly/models.py:34: error: Need type annotation for "completed_at" [var-annotated] +integrations/launch_darkly/models.py:36: error: Need type annotation for "ld_project_key" [var-annotated] +integrations/launch_darkly/models.py:37: error: Need type annotation for "ld_token" [var-annotated] +integrations/launch_darkly/models.py:39: error: Incompatible types in assignment (expression has type "JSONField[Any, Any]", variable has type "LaunchDarklyImportStatus") [assignment] +integrations/common/models.py:5: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/models.py:17: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/models.py:58: error: Couldn't resolve related manager 'change_sets' for relation 'features.versioning.models.VersionChangeSet.change_request'. [django-manager-missing] +features/workflows/core/models.py:58: error: Couldn't resolve related manager 'approvals' for relation 'features.workflows.core.models.ChangeRequestApproval.change_request'. [django-manager-missing] +features/workflows/core/models.py:61: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/workflows/core/models.py:141: error: Argument "environment_id" to "get_next_version_number" of "FeatureState" has incompatible type "int | None"; expected "int" [arg-type] +features/workflows/core/models.py:143: error: Argument "feature_segment_id" to "get_next_version_number" of "FeatureState" has incompatible type "int | None"; expected "int" [arg-type] +features/workflows/core/models.py:144: error: Argument "identity_id" to "get_next_version_number" of "FeatureState" has incompatible type "int | None"; expected "int" [arg-type] +features/workflows/core/models.py:204: error: Item "None" of "Segment | None" has no attribute "deep_clone" [union-attr] +features/workflows/core/models.py:208: error: Item "None" of "Segment | None" has no attribute "name" [union-attr] +features/workflows/core/models.py:209: error: Item "None" of "Segment | None" has no attribute "description" [union-attr] +features/workflows/core/models.py:210: error: Item "None" of "Segment | None" has no attribute "feature" [union-attr] +features/workflows/core/models.py:211: error: Item "None" of "Segment | None" has no attribute "save" [union-attr] +features/workflows/core/models.py:214: error: Item "None" of "Segment | None" has no attribute "rules" [union-attr] +features/workflows/core/models.py:216: error: Argument 1 to "deep_clone" of "SegmentRule" has incompatible type "Segment | None"; expected "Segment" [arg-type] +features/workflows/core/models.py:224: error: Missing return statement [return] +features/workflows/core/models.py:232: error: Missing return statement [return] +features/workflows/core/models.py:311: error: Item "None" of "Environment | None" has no attribute "deleted_at" [union-attr] +features/workflows/core/models.py:342: error: Unsupported dynamic base class "abstract_base_auditable_model_factory" [misc] +features/workflows/core/models.py:348: error: Need type annotation for "user" [var-annotated] +features/workflows/core/models.py:349: error: Need type annotation for "change_request" [var-annotated] +features/workflows/core/models.py:352: error: Need type annotation for "created_at" [var-annotated] +features/workflows/core/models.py:353: error: Need type annotation for "approved_at" [var-annotated] +features/workflows/core/models.py:403: error: Missing return statement [return] +features/workflows/core/models.py:407: error: Missing return statement [return] +environments/permissions/models.py:12: error: Cannot override class variable (previously declared on base class "PermissionModel") with instance variable [misc] +projects/serializers.py:94: error: Item "Sequence[Any]" of "Any | Sequence[Any]" has no attribute "organisation" [union-attr] +projects/serializers.py:100: error: Incompatible types in assignment (expression has type "tuple[str, str, str]", base class "Meta" defined the type as "tuple[str, str]") [assignment] +projects/serializers.py:110: error: Incompatible types in assignment (expression has type tuple[str, str, ... <19 more items>], base class "Meta" defined the type as tuple[str, str, ... <14 more items>]) [assignment] +projects/serializers.py:118: error: Incompatible types in assignment (expression has type "tuple[str, str, str, str, str]", base class "Meta" defined the type as "tuple[str, str]") [assignment] +projects/serializers.py:142: error: Incompatible types in assignment (expression has type "tuple[str, str, str, str]", base class "Meta" defined the type as "tuple[str, str, str]") [assignment] +projects/serializers.py:154: error: Incompatible types in assignment (expression has type "tuple[str, str, str, str]", base class "Meta" defined the type as "tuple[str, str, str]") [assignment] +integrations/webhook/serializers.py:32: error: Argument 1 to "map_identity_to_engine" has incompatible type "Any | None"; expected "Identity" [arg-type] +integrations/webhook/serializers.py:52: error: Missing return statement [return] +integrations/segment/segment.py:4: error: Skipping analyzing "analytics.client": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/segment/segment.py:28: error: Incompatible default for argument "trait_models" (default has type "None", argument has type "list[Trait]") [assignment] +integrations/segment/segment.py:28: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/segment/segment.py:28: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/rudderstack/rudderstack.py:4: error: Skipping analyzing "rudderstack": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/rudderstack/rudderstack.py:28: error: Incompatible default for argument "trait_models" (default has type "None", argument has type "list[Trait]") [assignment] +integrations/rudderstack/rudderstack.py:28: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/rudderstack/rudderstack.py:28: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/mixpanel/mixpanel.py:35: error: If x = b'abc' then "%s" % x produces "b'abc'", not "abc". If this is desired behavior use "%r" % x. Otherwise, decode the bytes [str-bytes-safe] +integrations/mixpanel/mixpanel.py:42: error: Incompatible default for argument "trait_models" (default has type "None", argument has type "list[Trait]") [assignment] +integrations/mixpanel/mixpanel.py:42: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/mixpanel/mixpanel.py:42: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/mixpanel/mixpanel.py:52: error: Incompatible return value type (got "list[dict[str, Collection[str]]]", expected "dict[Any, Any]") [return-value] +integrations/heap/heap.py:31: error: Incompatible default for argument "trait_models" (default has type "None", argument has type "list[Trait]") [assignment] +integrations/heap/heap.py:31: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/heap/heap.py:31: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/amplitude/amplitude.py:34: error: Incompatible default for argument "trait_models" (default has type "None", argument has type "list[Trait]") [assignment] +integrations/amplitude/amplitude.py:34: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/amplitude/amplitude.py:34: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/serializers.py:3: error: Skipping analyzing "common.metadata.serializers": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/serializers.py:84: error: Incompatible types in assignment (expression has type tuple[str, str, ... <15 more items>], base class "Meta" defined the type as tuple[str, str, ... <14 more items>]) [assignment] +environments/serializers.py:86: error: Incompatible default for argument "validated_data" (default has type "None", argument has type "dict[Any, Any]") [assignment] +environments/serializers.py:86: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/serializers.py:86: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/serializers.py:88: error: Item "Sequence[Any]" of "Any | Sequence[Any]" has no attribute "project" [union-attr] +environments/serializers.py:101: error: Cannot determine type of "fields" [has-type] +environments/serializers.py:129: error: Item "Sequence[Any]" of "Any | Sequence[Any] | None" has no attribute "project" [union-attr] +environments/serializers.py:129: error: Item "None" of "Any | Sequence[Any] | None" has no attribute "project" [union-attr] +environments/identities/serializers.py:3: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/identities/serializers.py:58: error: Need type annotation for "trait_value" [var-annotated] +environments/identities/serializers.py:64: error: Need type annotation for "traits" [var-annotated] +environments/identities/traits/serializers.py:81: error: Need type annotation for "keys" [var-annotated] +integrations/webhook/webhook.py:34: error: Incompatible default for argument "trait_models" (default has type "None", argument has type "list[Trait]") [assignment] +integrations/webhook/webhook.py:34: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/webhook/webhook.py:34: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +util/renderers.py:14: error: Cannot override class variable (previously declared on base class "JSONRenderer") with instance variable [misc] +util/migrations.py:46: error: Item "UserOrganisationPermission" of "UserEnvironmentPermission | UserPermissionGroupEnvironmentPermission | UserProjectPermission | UserPermissionGroupProjectPermission | UserOrganisationPermission | UserPermissionGroupOrganisationPermission" has no attribute "admin" [union-attr] +util/migrations.py:46: error: Item "UserPermissionGroupOrganisationPermission" of "UserEnvironmentPermission | UserPermissionGroupEnvironmentPermission | UserProjectPermission | UserPermissionGroupProjectPermission | UserOrganisationPermission | UserPermissionGroupOrganisationPermission" has no attribute "admin" [union-attr] +util/logging.py:8: error: Skipping analyzing "gunicorn.config": module is installed, but missing library stubs or py.typed marker [import-untyped] +util/logging.py:9: error: Skipping analyzing "gunicorn.instrument.statsd": module is installed, but missing library stubs or py.typed marker [import-untyped] +util/logging.py:36: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:36: note: Possible overload variants: +util/logging.py:36: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:36: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:36: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:37: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:37: note: Possible overload variants: +util/logging.py:37: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:37: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:37: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:38: error: Unsupported left operand type for + ("object") [operator] +util/logging.py:38: note: Left operand is of type "Any | object" +util/logging.py:42: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:42: note: Possible overload variants: +util/logging.py:42: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:42: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:42: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:42: error: Argument 1 to "strptime" of "datetime" has incompatible type "Any | object"; expected "str" [arg-type] +util/logging.py:44: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:44: note: Possible overload variants: +util/logging.py:44: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:44: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:44: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:45: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:45: note: Possible overload variants: +util/logging.py:45: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:45: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:45: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:46: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:46: note: Possible overload variants: +util/logging.py:46: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:46: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:46: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:47: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:47: note: Possible overload variants: +util/logging.py:47: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:47: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:47: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:48: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:48: note: Possible overload variants: +util/logging.py:48: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:48: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:48: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:49: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:49: note: Possible overload variants: +util/logging.py:49: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:49: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:49: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/logging.py:50: error: No overload variant of "__getitem__" of "tuple" matches argument type "str" [call-overload] +util/logging.py:50: note: Possible overload variants: +util/logging.py:50: note: def __getitem__(self, SupportsIndex, /) -> object +util/logging.py:50: note: def __getitem__(self, slice, /) -> tuple[object, ...] +util/logging.py:50: error: Value of type "tuple[object, ...] | Mapping[str, object] | None" is not indexable [index] +util/history/custom_simple_history.py:2: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +users/services.py:5: error: Skipping analyzing "djoser.email": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/permissions.py:1: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/admin.py:84: error: Incompatible default for argument "obj" (default has type "None", argument has type "Project") [assignment] +projects/admin.py:84: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +projects/admin.py:84: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +projects/tags/serializers.py:25: error: Item "Sequence[Any]" of "Any | Sequence[Any]" has no attribute "is_system_tag" [union-attr] +projects/tags/permissions.py:1: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +permissions/permissions_calculator.py:81: error: Invalid type comment or annotation [valid-type] +permissions/permissions_calculator.py:103: error: Argument 1 to "reduce" has incompatible type "Callable[[set[Never], set[str]], set[str]]"; expected "Callable[[set[Never], set[str]], set[Never]]" [arg-type] +permissions/permissions_calculator.py:103: error: Incompatible return value type (got "set[str]", expected "set[Never]") [return-value] +permissions/permissions_calculator.py:109: error: "Iterable[str]" has no attribute "union" [attr-defined] +permissions/permissions_calculator.py:135: error: Argument 1 to "get_user_permission_data" has incompatible type "UserProjectPermission | None"; expected "UserProjectPermission | UserEnvironmentPermission | UserOrganisationPermission" [arg-type] +permissions/permissions_calculator.py:147: error: Argument 1 to "get_user_permission_data" has incompatible type "UserOrganisationPermission | None"; expected "UserProjectPermission | UserEnvironmentPermission | UserOrganisationPermission" [arg-type] +permissions/permissions_calculator.py:158: error: Argument 1 to "get_user_permission_data" has incompatible type "UserEnvironmentPermission | None"; expected "UserProjectPermission | UserEnvironmentPermission | UserOrganisationPermission" [arg-type] +permissions/permissions_calculator.py:165: error: Incompatible default for argument "user_permission" (default has type "None", argument has type "UserProjectPermission | UserEnvironmentPermission | UserOrganisationPermission") [assignment] +permissions/permissions_calculator.py:165: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +permissions/permissions_calculator.py:165: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +organisations/chargebee/tasks.py:1: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/pipedrive/lead_tracker.py:17: error: Skipping analyzing "re2": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/lead_tracking/pipedrive/lead_tracker.py:82: error: Unsupported target for indexed assignment ("object") [index] +integrations/lead_tracking/pipedrive/lead_tracker.py:86: error: Unsupported target for indexed assignment ("object") [index] +integrations/lead_tracking/hubspot/services.py:15: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "email" [union-attr] +integrations/lead_tracking/hubspot/services.py:15: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "email" [union-attr] +integrations/lead_tracking/hubspot/services.py:19: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "email" [union-attr] +integrations/lead_tracking/hubspot/services.py:19: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "email" [union-attr] +integrations/lead_tracking/hubspot/services.py:30: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "email" [union-attr] +integrations/lead_tracking/hubspot/services.py:30: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "email" [union-attr] +integrations/launch_darkly/services.py:62: error: Argument 1 to "contextmanager" has incompatible type "Callable[[LaunchDarklyImportRequest], None]"; expected "Callable[[LaunchDarklyImportRequest], Iterator[Never]]" [arg-type] +integrations/launch_darkly/services.py:63: error: The return type of a generator function should be "Generator" or one of its supertypes [misc] +integrations/launch_darkly/services.py:457: error: Incompatible types (expression has type "str", TypedDict item "trait_value" has type "SDKTraitValueData | None") [typeddict-item] +integrations/launch_darkly/services.py:550: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment] +integrations/launch_darkly/services.py:615: error: Argument "variation_idx" to "_set_imported_mv_feature_state_values" has incompatible type "int | None"; expected "str | None" [arg-type] +integrations/launch_darkly/services.py:787: error: Incompatible types in assignment (expression has type "float", variable has type "int") [assignment] +integrations/launch_darkly/services.py:885: error: Unexpected keyword argument "import_request" [call-arg] +integrations/launch_darkly/services.py:885: error: Unexpected keyword argument "ld_flag" [call-arg] +integrations/launch_darkly/services.py:885: error: Unexpected keyword argument "feature" [call-arg] +integrations/launch_darkly/services.py:885: error: Unexpected keyword argument "environments_by_ld_environment_key" [call-arg] +integrations/launch_darkly/services.py:885: error: Unexpected keyword argument "segments_by_ld_key" [call-arg] +integrations/launch_darkly/services.py:992: error: Incompatible types (expression has type "str", TypedDict item "trait_value" has type "SDKTraitValueData | None") [typeddict-item] +integrations/launch_darkly/services.py:1075: error: Item "Request" of "Request | PreparedRequest | None" has no attribute "path_url" [union-attr] +integrations/launch_darkly/services.py:1075: error: Item "None" of "Request | PreparedRequest | None" has no attribute "path_url" [union-attr] +integrations/launch_darkly/services.py:1088: error: Need type annotation for "segment_tags_by_ld_tag" (hint: "segment_tags_by_ld_tag: dict[, ] = ...") [var-annotated] +integrations/launch_darkly/serializers.py:14: error: Incompatible types in assignment (expression has type "ListSerializer[Never]", base class "Field" defined the type as "dict[str, str | _StrPromise]") [assignment] +integrations/launch_darkly/serializers.py:25: error: Need type annotation for "created_by" [var-annotated] +integrations/datadog/datadog.py:20: error: Incompatible default for argument "session" (default has type "None", argument has type "Session") [assignment] +integrations/datadog/datadog.py:20: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/datadog/datadog.py:20: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +features/admin.py:6: error: Skipping analyzing "simple_history.admin": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/import_export/tasks.py:8: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/import_export/tasks.py:177: error: Incompatible types in assignment (expression has type "int | bool | str | None", variable has type "bool | Combinable | None") [assignment] +features/import_export/tasks.py:199: error: Incompatible types in assignment (expression has type "int | bool | str | None", variable has type "bool | Combinable | None") [assignment] +features/import_export/tasks.py:224: error: Item "bool" of "bool | str | int | None" has no attribute "__iter__" (not iterable) [union-attr] +features/import_export/tasks.py:224: error: Item "int" of "bool | str | int | None" has no attribute "__iter__" (not iterable) [union-attr] +features/import_export/tasks.py:224: error: Item "None" of "bool | str | int | None" has no attribute "__iter__" (not iterable) [union-attr] +features/import_export/tasks.py:226: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +features/import_export/tasks.py:227: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +features/import_export/tasks.py:229: error: Argument "default_percentage_allocation" to "_create_multivariate_feature_option" has incompatible type "Any | str"; expected "int | float" [arg-type] +features/import_export/tasks.py:229: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +features/import_export/tasks.py:234: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +features/import_export/tasks.py:240: error: Argument "type" to "_save_feature_state_value_with_type" has incompatible type "bool | str | int | None"; expected "str" [arg-type] +features/feature_segments/permissions.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/permissions/serializers.py:17: error: Incompatible types in assignment (expression has type "tuple[str, str, str, str]", base class "Meta" defined the type as "tuple[str, str, str]") [assignment] +environments/permissions/serializers.py:31: error: Incompatible types in assignment (expression has type "tuple[str, str, str, str]", base class "Meta" defined the type as "tuple[str, str, str]") [assignment] +environments/permissions/permissions.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/permissions/permissions.py:4: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/permissions/permissions.py:85: error: Incompatible default for argument "action_permission_map" (default has type "None", argument has type "dict[str, str]") [assignment] +environments/permissions/permissions.py:85: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/permissions/permissions.py:85: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/permissions/permissions.py:88: error: "Model" has no attribute "environment" [attr-defined] +environments/permissions/permissions.py:89: error: Incompatible default for argument "admin_actions" (default has type "None", argument has type "Iterable[str]") [assignment] +environments/permissions/permissions.py:89: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/permissions/permissions.py:89: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +environments/identities/traits/admin.py:3: error: Skipping analyzing "simple_history.admin": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/tasks.py:5: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/tasks.py:6: error: Skipping analyzing "task_processor.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/tasks.py:25: error: Function "builtins.id" is not valid as a type [valid-type] +edge_api/identities/tasks.py:25: note: Perhaps you need "Callable[...]" or a callback protocol? +edge_api/identities/tasks.py:28: error: Incompatible default for argument "changed_by_user_id" (default has type "None", argument has type "int") [assignment] +edge_api/identities/tasks.py:28: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/tasks.py:28: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/tasks.py:29: error: Incompatible default for argument "changed_by" (default has type "None", argument has type "str") [assignment] +edge_api/identities/tasks.py:29: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/tasks.py:29: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/tasks.py:30: error: Incompatible default for argument "new_enabled_state" (default has type "None", argument has type "bool") [assignment] +edge_api/identities/tasks.py:30: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/tasks.py:30: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/tasks.py:31: error: Incompatible default for argument "new_value" (default has type "None", argument has type "bool | int | str") [assignment] +edge_api/identities/tasks.py:31: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/tasks.py:31: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/tasks.py:32: error: Incompatible default for argument "previous_enabled_state" (default has type "None", argument has type "bool") [assignment] +edge_api/identities/tasks.py:32: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/tasks.py:32: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/tasks.py:33: error: Incompatible default for argument "previous_value" (default has type "None", argument has type "bool | int | str") [assignment] +edge_api/identities/tasks.py:33: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/tasks.py:33: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/tasks.py:54: error: Incompatible types in assignment (expression has type "dict[Any, Any]", target has type "str | None") [assignment] +edge_api/identities/tasks.py:64: error: Incompatible types in assignment (expression has type "dict[Any, Any]", target has type "str | None") [assignment] +edge_api/identities/models.py:39: error: Incompatible return value type (got "int | None", expected "int") [return-value] +edge_api/identities/models.py:93: error: Incompatible types in assignment (expression has type "dict[tuple[Any, ...] | str | int, FeatureState]", variable has type "dict[str, FeatureState | FeatureStateModel]") [assignment] +edge_api/identities/models.py:114: error: Argument "key_function" to "get_environment_flags_dict" has incompatible type "Callable[[FeatureState], str]"; expected "Callable[[FeatureState], tuple[Any, ...]]" [arg-type] +edge_api/identities/models.py:114: error: Incompatible return value type (got "str", expected "tuple[Any, ...]") [return-value] +edge_api/identities/models.py:153: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[Any], TypeGuard[FeatureStateModel | None]]" [arg-type] +edge_api/identities/models.py:153: error: Item "None" of "FeatureStateModel | None" has no attribute "featurestate_uuid" [union-attr] +edge_api/identities/models.py:168: error: Incompatible default for argument "user" (default has type "None", argument has type "FFAdminUser | APIKeyUser") [assignment] +edge_api/identities/models.py:168: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/models.py:168: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/models.py:177: error: Incompatible default for argument "user" (default has type "None", argument has type "FFAdminUser | APIKeyUser") [assignment] +edge_api/identities/models.py:177: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/models.py:177: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/models.py:207: error: Item "APIKeyUser" of "FFAdminUser | APIKeyUser" has no attribute "id" [union-attr] +edge_api/identities/models.py:229: error: Need type annotation for "changes" (hint: "changes: dict[, ] = ...") [var-annotated] +edge_api/identities/models.py:266: error: Incompatible return value type (got "dict[Any, Any]", expected "IdentityChangeset") [return-value] +edge_api/identities/edge_request_forwarder.py:7: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/edge_request_forwarder.py:8: error: Skipping analyzing "task_processor.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/edge_request_forwarder.py:23: error: Incompatible default for argument "query_params" (default has type "None", argument has type "dict[Any, Any]") [assignment] +edge_api/identities/edge_request_forwarder.py:23: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/edge_request_forwarder.py:23: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/edge_request_forwarder.py:24: error: Incompatible default for argument "request_data" (default has type "None", argument has type "dict[Any, Any]") [assignment] +edge_api/identities/edge_request_forwarder.py:24: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +edge_api/identities/edge_request_forwarder.py:24: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/edge_request_forwarder.py:56: error: Incompatible types in assignment (expression has type "str", variable has type "dict[Any, Any]") [assignment] +edge_api/identities/edge_request_forwarder.py:60: error: Argument 3 to "_get_headers" has incompatible type "dict[Any, Any]"; expected "str" [arg-type] +edge_api/identities/edge_request_forwarder.py:73: error: Argument 2 to "forward_trait_request_sync" has incompatible type "str"; expected "dict[Any, Any]" [arg-type] +custom_auth/tasks.py:5: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +custom_auth/serializers.py:4: error: Skipping analyzing "djoser.conf": module is installed, but missing library stubs or py.typed marker [import-untyped] +custom_auth/serializers.py:5: error: Skipping analyzing "djoser.serializers": module is installed, but missing library stubs or py.typed marker [import-untyped] +custom_auth/serializers.py:68: error: "InviteLinkValidationMixin" has no attribute "initial_data" [attr-defined] +custom_auth/serializers.py:107: error: Cannot find implementation or library stub for module named "auth_controller.controller" [import-not-found] +custom_auth/oauth/github.py:22: error: Incompatible default for argument "client_id" (default has type "None", argument has type "str") [assignment] +custom_auth/oauth/github.py:22: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +custom_auth/oauth/github.py:22: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +custom_auth/oauth/github.py:22: error: Incompatible default for argument "client_secret" (default has type "None", argument has type "str") [assignment] +custom_auth/mfa/trench/responses.py:17: error: Incompatible default for argument "status" (default has type "Literal[400]", argument has type "str") [assignment] +custom_auth/mfa/trench/responses.py:21: error: "__init__" of "Response" gets multiple values for keyword argument "data" [misc] +custom_auth/mfa/trench/responses.py:21: error: "__init__" of "Response" gets multiple values for keyword argument "status" [misc] +custom_auth/mfa/trench/responses.py:22: error: Argument "status" to "__init__" of "Response" has incompatible type "str"; expected "int | None" [arg-type] +custom_auth/mfa/trench/command/remove_backup_code.py:15: error: Argument 1 to "join" of "str" has incompatible type "set[str] | None"; expected "Iterable[str]" [arg-type] +custom_auth/mfa/trench/command/remove_backup_code.py:16: error: Item "None" of "str | None" has no attribute "split" [union-attr] +custom_auth/mfa/trench/command/remove_backup_code.py:25: error: Missing return statement [return] +custom_auth/mfa/trench/command/generate_backup_codes.py:13: error: Incompatible default for argument "quantity" (default has type "object", argument has type "int") [assignment] +custom_auth/mfa/trench/command/generate_backup_codes.py:14: error: Incompatible default for argument "length" (default has type "object", argument has type "int") [assignment] +custom_auth/mfa/trench/command/generate_backup_codes.py:15: error: Incompatible default for argument "allowed_chars" (default has type "object", argument has type "str") [assignment] +custom_auth/mfa/trench/command/create_secret.py:7: error: Argument "length" has incompatible type "object"; expected "int" [arg-type] +custom_auth/mfa/backends/application.py:27: error: Value of type "object" is not indexable [index] +custom_auth/jwt_cookie/signals.py:5: error: Skipping analyzing "corsheaders.signals": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/signals.py:7: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/signals.py:8: error: Skipping analyzing "task_processor.task_run_method": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/signals.py:33: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] +core/redis_cluster.py:28: error: Skipping analyzing "django_redis.client.default": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/redis_cluster.py:29: error: Skipping analyzing "django_redis.exceptions": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/redis_cluster.py:30: error: Skipping analyzing "django_redis.pool": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/redis_cluster.py:84: error: Need type annotation for "_clients" (hint: "_clients: dict[, ] = ...") [var-annotated] +core/redis_cluster.py:125: error: Cannot instantiate abstract class "RedisCluster" with abstract attribute "connection_pool" [abstract] +core/middleware/axes.py:1: error: Skipping analyzing "axes.middleware": module is installed, but missing library stubs or py.typed marker [import-untyped] +audit/services.py:23: error: "Model" has no attribute "instance" [attr-defined] +audit/serializers.py:3: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +audit/serializers.py:70: error: Incompatible return value type (got "ReturnDict[Any, Any]", expected "list[dict[str, Any]]") [return-value] +audit/serializers.py:71: error: "Model" has no attribute "get_change_details" [attr-defined] +audit/serializers.py:80: error: Incompatible return value type (got "str | None", expected "str") [return-value] +audit/serializers.py:84: error: "Model" has no attribute "history_type" [attr-defined] +app_analytics/track.py:8: error: Library stubs not installed for "six.moves.urllib.parse" [import-untyped] +app_analytics/track.py:8: note: Hint: "python3 -m pip install types-six" +app_analytics/track.py:9: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +app_analytics/query.py:3: error: Skipping analyzing "apiclient.discovery": module is installed, but missing library stubs or py.typed marker [import-untyped] +app_analytics/query.py:5: error: Skipping analyzing "google.oauth2": module is installed, but missing library stubs or py.typed marker [import-untyped] +app_analytics/models.py:5: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +users/tasks.py:3: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +users/forms.py:19: error: "type[UserChangeForm[Any]]" has no attribute "Meta" [attr-defined] +organisations/chargebee/webhook_handlers.py:132: error: Module has no attribute "utc" [attr-defined] +organisations/chargebee/webhook_handlers.py:171: error: Module has no attribute "utc" [attr-defined] +organisations/chargebee/webhook_handlers.py:180: error: Module has no attribute "utc" [attr-defined] +integrations/slack/slack.py:28: error: Incompatible default for argument "api_token" (default has type "None", argument has type "str") [assignment] +integrations/slack/slack.py:28: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +integrations/slack/slack.py:28: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +integrations/slack/slack.py:28: error: Incompatible default for argument "channel_id" (default has type "None", argument has type "str") [assignment] +integrations/launch_darkly/tasks.py:1: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/grafana/mappers.py:33: error: Cannot determine type of "feature" [has-type] +features/import_export/serializers.py:22: error: Signature of "save" incompatible with supertype "BaseSerializer" [override] +features/import_export/serializers.py:22: note: Superclass: +features/import_export/serializers.py:22: note: def save(self, **kwargs: Any) -> Any +features/import_export/serializers.py:22: note: Subclass: +features/import_export/serializers.py:22: note: def save(self) -> FeatureExport +features/import_export/serializers.py:58: error: Unsupported operand types for < ("int" and "None") [operator] +features/import_export/serializers.py:58: note: Left operand is of type "int | None" +features/import_export/serializers.py:64: error: List item 0 has incompatible type "Callable[[InMemoryUploadedFile], None]"; expected "Callable[[File[Any]], None] | ContextValidator[File[Any]]" [list-item] +features/import_export/serializers.py:64: note: "function" is missing following "ContextValidator" protocol member: +features/import_export/serializers.py:64: note: requires_context +features/import_export/serializers.py:68: error: Signature of "save" incompatible with supertype "BaseSerializer" [override] +features/import_export/serializers.py:68: note: Superclass: +features/import_export/serializers.py:68: note: def save(self, **kwargs: Any) -> Any +features/import_export/serializers.py:68: note: Subclass: +features/import_export/serializers.py:68: note: def save(self, environment_id: int) -> FeatureImport +environments/sdk/views.py:3: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/sdk/views.py:23: error: "HttpRequest" has no attribute "environment" [attr-defined] +environments/sdk/serializers.py:152: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +environments/sdk/serializers.py:192: error: Incompatible default for argument "traits" (default has type "None", argument has type "list[dict[Any, Any]]") [assignment] +environments/sdk/serializers.py:192: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +environments/sdk/serializers.py:192: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +edge_api/identities/permissions.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/permissions.py:30: error: Item "AnonymousUser" of "FFAdminUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +edge_api/identities/export.py:35: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "str" [arg-type] +edge_api/identities/export.py:35: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "int" [arg-type] +edge_api/identities/export.py:35: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "dict[str, bytes | bytearray | str | int | Decimal | <8 more items> | None] | None" [arg-type] +edge_api/identities/export.py:35: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "ConditionBase | str | None" [arg-type] +edge_api/identities/export.py:35: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "str | None" [arg-type] +edge_api/identities/export.py:35: error: Argument 1 to "get_all_items" of "DynamoIdentityWrapper" has incompatible type "**dict[str, object]"; expected "bool" [arg-type] +edge_api/identities/export.py:41: error: Argument 1 to "export_edge_identity" has incompatible type "bytes | bytearray | str | int | Decimal | <8 more items> | None"; expected "str" [arg-type] +edge_api/identities/export.py:41: error: Argument 3 to "export_edge_identity" has incompatible type "bytes | bytearray | str | int | Decimal | <8 more items> | None"; expected "str" [arg-type] +edge_api/identities/export.py:45: error: Item "int" of "bytes | bytearray | str | int | Decimal | <8 more items> | None" has no attribute "__iter__" (not iterable) [union-attr] +edge_api/identities/export.py:45: error: Item "Decimal" of "bytes | bytearray | str | int | Decimal | <8 more items> | None" has no attribute "__iter__" (not iterable) [union-attr] +edge_api/identities/export.py:45: error: Item "bool" of "bytes | bytearray | str | int | Decimal | <8 more items> | None" has no attribute "__iter__" (not iterable) [union-attr] +edge_api/identities/export.py:45: error: Item "None" of "bytes | bytearray | str | int | Decimal | <8 more items> | None" has no attribute "__iter__" (not iterable) [union-attr] +edge_api/identities/export.py:47: error: Argument 1 to "export_edge_trait" has incompatible type "int | str | Any | Decimal | bytes | bytearray"; expected "dict[Any, Any]" [arg-type] +edge_api/identities/export.py:47: error: Argument 2 to "export_edge_trait" has incompatible type "bytes | bytearray | str | int | Decimal | <8 more items> | None"; expected "str" [arg-type] +edge_api/identities/export.py:49: error: Item "int" of "bytes | bytearray | str | int | Decimal | <8 more items> | None" has no attribute "__iter__" (not iterable) [union-attr] +edge_api/identities/export.py:49: error: Item "Decimal" of "bytes | bytearray | str | int | Decimal | <8 more items> | None" has no attribute "__iter__" (not iterable) [union-attr] +edge_api/identities/export.py:49: error: Item "bool" of "bytes | bytearray | str | int | Decimal | <8 more items> | None" has no attribute "__iter__" (not iterable) [union-attr] +edge_api/identities/export.py:49: error: Item "None" of "bytes | bytearray | str | int | Decimal | <8 more items> | None" has no attribute "__iter__" (not iterable) [union-attr] +edge_api/identities/export.py:50: error: Value of type "int | str | Any | Decimal | bytes | bytearray" is not indexable [index] +edge_api/identities/export.py:50: error: No overload variant of "__getitem__" of "bytes" matches argument type "str" [call-overload] +edge_api/identities/export.py:50: note: Possible overload variants: +edge_api/identities/export.py:50: note: def __getitem__(self, SupportsIndex, /) -> int +edge_api/identities/export.py:50: note: def __getitem__(self, slice, /) -> bytes +edge_api/identities/export.py:50: error: No overload variant of "__getitem__" of "bytearray" matches argument type "str" [call-overload] +edge_api/identities/export.py:50: note: def __getitem__(self, slice, /) -> bytearray +edge_api/identities/export.py:50: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +edge_api/identities/export.py:51: error: Value of type "int | str | Any | Decimal | bytes | bytearray" is not indexable [index] +edge_api/identities/export.py:51: error: No overload variant of "__getitem__" of "bytes" matches argument type "str" [call-overload] +edge_api/identities/export.py:51: note: Possible overload variants: +edge_api/identities/export.py:51: note: def __getitem__(self, SupportsIndex, /) -> int +edge_api/identities/export.py:51: note: def __getitem__(self, slice, /) -> bytes +edge_api/identities/export.py:51: error: No overload variant of "__getitem__" of "bytearray" matches argument type "str" [call-overload] +edge_api/identities/export.py:51: note: def __getitem__(self, slice, /) -> bytearray +edge_api/identities/export.py:51: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +edge_api/identities/export.py:56: error: Invalid index type "Any | str" for "dict[int, str]"; expected type "int" [index] +edge_api/identities/export.py:61: error: Argument 1 to "export_edge_feature_state" has incompatible type "bytes | bytearray | str | int | Decimal | <8 more items> | None"; expected "str" [arg-type] +edge_api/identities/export.py:65: error: Value of type "int | str | Any | Decimal | bytes | bytearray" is not indexable [index] +edge_api/identities/export.py:65: error: No overload variant of "__getitem__" of "bytes" matches argument type "str" [call-overload] +edge_api/identities/export.py:65: note: Possible overload variants: +edge_api/identities/export.py:65: note: def __getitem__(self, SupportsIndex, /) -> int +edge_api/identities/export.py:65: note: def __getitem__(self, slice, /) -> bytes +edge_api/identities/export.py:65: error: No overload variant of "__getitem__" of "bytearray" matches argument type "str" [call-overload] +edge_api/identities/export.py:65: note: def __getitem__(self, slice, /) -> bytearray +edge_api/identities/export.py:65: error: Argument 5 to "export_edge_feature_state" has incompatible type "Any | str"; expected "bool" [arg-type] +edge_api/identities/export.py:65: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +edge_api/identities/export.py:68: error: Value of type "int | str | Any | Decimal | bytes | bytearray" is not indexable [index] +edge_api/identities/export.py:68: error: No overload variant of "__getitem__" of "bytes" matches argument type "str" [call-overload] +edge_api/identities/export.py:68: note: Possible overload variants: +edge_api/identities/export.py:68: note: def __getitem__(self, SupportsIndex, /) -> int +edge_api/identities/export.py:68: note: def __getitem__(self, slice, /) -> bytes +edge_api/identities/export.py:68: error: No overload variant of "__getitem__" of "bytearray" matches argument type "str" [call-overload] +edge_api/identities/export.py:68: note: def __getitem__(self, slice, /) -> bytearray +edge_api/identities/export.py:68: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +edge_api/identities/export.py:74: error: Value of type "int | str | Any | Decimal | bytes | bytearray" is not indexable [index] +edge_api/identities/export.py:74: error: No overload variant of "__getitem__" of "bytes" matches argument type "str" [call-overload] +edge_api/identities/export.py:74: note: Possible overload variants: +edge_api/identities/export.py:74: note: def __getitem__(self, SupportsIndex, /) -> int +edge_api/identities/export.py:74: note: def __getitem__(self, slice, /) -> bytes +edge_api/identities/export.py:74: error: No overload variant of "__getitem__" of "bytearray" matches argument type "str" [call-overload] +edge_api/identities/export.py:74: note: def __getitem__(self, slice, /) -> bytearray +edge_api/identities/export.py:74: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +edge_api/identities/export.py:77: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +edge_api/identities/export.py:78: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +edge_api/identities/export.py:87: error: Invalid index type "Any | str" for "dict[int, str]"; expected type "int" [index] +edge_api/identities/export.py:90: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice" [index] +edge_api/identities/export.py:96: error: Argument 2 to "export_mv_featurestate_value" has incompatible type "str"; expected "int" [arg-type] +edge_api/identities/export.py:117: error: Value expression in dictionary comprehension has incompatible type "UUID"; expected type "str" [misc] +custom_auth/oauth/serializers.py:44: error: Cannot find implementation or library stub for module named "auth_controller.controller" [import-not-found] +custom_auth/mfa/trench/utils.py:14: error: Incompatible types in assignment (expression has type "type[FFAdminUser]", variable has type "AbstractUser") [assignment] +custom_auth/mfa/trench/utils.py:29: error: Variable "custom_auth.mfa.trench.utils.User" is not valid as a type [valid-type] +custom_auth/mfa/trench/utils.py:29: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases +custom_auth/mfa/trench/utils.py:32: error: Return type "User? | None" of "check_token" incompatible with return type "bool" in supertype "PasswordResetTokenGenerator" [override] +custom_auth/mfa/trench/utils.py:32: error: Variable "custom_auth.mfa.trench.utils.User" is not valid as a type [valid-type] +custom_auth/mfa/trench/utils.py:32: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases +custom_auth/mfa/trench/utils.py:32: error: Argument 2 of "check_token" is incompatible with supertype "PasswordResetTokenGenerator"; supertype defines the argument type as "str | None" [override] +custom_auth/mfa/trench/utils.py:32: note: This violates the Liskov substitution principle +custom_auth/mfa/trench/utils.py:32: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +custom_auth/mfa/trench/utils.py:50: error: Signature of "_make_token_with_timestamp" incompatible with supertype "PasswordResetTokenGenerator" [override] +custom_auth/mfa/trench/utils.py:50: note: Superclass: +custom_auth/mfa/trench/utils.py:50: note: def _make_token_with_timestamp(self, user: FFAdminUser, timestamp: int, secret: str | bytes = ...) -> str +custom_auth/mfa/trench/utils.py:50: note: Subclass: +custom_auth/mfa/trench/utils.py:50: note: def _make_token_with_timestamp(self, user: User?, timestamp: int, **kwargs: Any) -> str +custom_auth/mfa/trench/utils.py:50: error: Variable "custom_auth.mfa.trench.utils.User" is not valid as a type [valid-type] +custom_auth/mfa/trench/utils.py:50: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases +custom_auth/mfa/trench/utils.py:57: error: User? has no attribute "pk" [attr-defined] +custom_auth/mfa/trench/utils.py:68: error: Value of type "object" is not indexable [index] +core/apps.py:2: error: Skipping analyzing "simple_history.signals": module is installed, but missing library stubs or py.typed marker [import-untyped] +audit/permissions.py:1: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +audit/permissions.py:18: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_organisation_admin" [union-attr] +audit/permissions.py:18: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_organisation_admin" [union-attr] +audit/permissions.py:29: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_project_permission" [union-attr] +audit/permissions.py:29: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_project_permission" [union-attr] +app_analytics/tasks.py:8: error: Skipping analyzing "task_processor.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] +app_analytics/tasks.py:32: error: Incompatible default for argument "source_bucket_size" (default has type "None", argument has type "int") [assignment] +app_analytics/tasks.py:32: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +app_analytics/tasks.py:32: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +app_analytics/tasks.py:71: error: Incompatible type for "enabled_when_evaluated" of "FeatureEvaluationRaw" (got "int | str | bool", expected "bool | Combinable | None") [misc] +app_analytics/tasks.py:117: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] +app_analytics/tasks.py:134: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] +app_analytics/tasks.py:135: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] +app_analytics/tasks.py:142: error: Incompatible default for argument "source_bucket_size" (default has type "None", argument has type "int") [assignment] +app_analytics/tasks.py:142: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +app_analytics/tasks.py:142: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +app_analytics/tasks.py:159: error: Incompatible default for argument "source_bucket_size" (default has type "None", argument has type "int") [assignment] +app_analytics/tasks.py:159: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +app_analytics/tasks.py:159: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +app_analytics/tasks.py:176: error: Incompatible default for argument "source_bucket_size" (default has type "None", argument has type "int") [assignment] +app_analytics/tasks.py:176: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +app_analytics/tasks.py:176: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +app_analytics/tasks.py:184: error: Incompatible return value type (got "QuerySet[APIUsageBucket@AnnotatedWith[TypedDict({'count': Any})], dict[str, Any]]", expected "dict[Any, Any]") [return-value] +app_analytics/tasks.py:189: error: Incompatible return value type (got "QuerySet[APIUsageRaw@AnnotatedWith[TypedDict({'count': Any})], dict[str, Any]]", expected "dict[Any, Any]") [return-value] +app_analytics/tasks.py:196: error: Incompatible default for argument "source_bucket_size" (default has type "None", argument has type "int") [assignment] +app_analytics/tasks.py:196: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +app_analytics/tasks.py:196: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +app_analytics/tasks.py:204: error: Incompatible return value type (got "QuerySet[FeatureEvaluationBucket@AnnotatedWith[TypedDict({'count': Any})], dict[str, Any]]", expected "dict[Any, Any]") [return-value] +app_analytics/tasks.py:211: error: Incompatible return value type (got "QuerySet[FeatureEvaluationRaw@AnnotatedWith[TypedDict({'count': Any})], dict[str, Any]]", expected "dict[Any, Any]") [return-value] +app_analytics/analytics_db_service.py:17: error: Library stubs not installed for "dateutil.relativedelta" [import-untyped] +app_analytics/analytics_db_service.py:17: note: Hint: "python3 -m pip install types-python-dateutil" +app_analytics/analytics_db_service.py:17: note: (or run "mypy --install-types" to install all missing stub packages) +app_analytics/analytics_db_service.py:80: error: Incompatible types in assignment (expression has type "datetime", target has type "Organisation | int | None") [assignment] +app_analytics/analytics_db_service.py:82: error: Argument 1 to "get_usage_data_from_local_db" has incompatible type "**dict[str, Organisation | int | None]"; expected "Organisation" [arg-type] +app_analytics/analytics_db_service.py:82: error: Argument 1 to "get_usage_data_from_local_db" has incompatible type "**dict[str, Organisation | int | None]"; expected "datetime | None" [arg-type] +app_analytics/analytics_db_service.py:93: error: Incompatible types in assignment (expression has type "datetime", target has type "Organisation | int | None") [assignment] +app_analytics/analytics_db_service.py:95: error: Argument 1 to "get_usage_data" has incompatible type "**dict[str, Organisation | int | None]"; expected "int" [arg-type] +app_analytics/analytics_db_service.py:95: error: Argument 1 to "get_usage_data" has incompatible type "**dict[str, Organisation | int | None]"; expected "datetime | None" [arg-type] +app_analytics/analytics_db_service.py:127: error: Incompatible types in assignment (expression has type "QuerySet[APIUsageBucket@AnnotatedWith[TypedDict({'count': Any})], dict[str, Any]]", variable has type "QuerySet[APIUsageBucket, APIUsageBucket]") [assignment] +app_analytics/analytics_db_service.py:146: error: Incompatible return value type (got "dict_values[Any, UsageData]", expected "list[UsageData]") [return-value] +app/pagination.py:5: error: Skipping analyzing "drf_yasg": module is installed, but missing library stubs or py.typed marker [import-untyped] +app/pagination.py:6: error: Skipping analyzing "drf_yasg.inspectors": module is installed, but missing library stubs or py.typed marker [import-untyped] +users/signals.py:31: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +organisations/management/commands/createinitialorganisation.py:43: error: Item "None" of "FFAdminUser | None" has no attribute "add_organisation" [union-attr] +integrations/grafana/grafana.py:26: error: Incompatible return value type (got "GrafanaAnnotation", expected "dict[str, Any]") [return-value] +import_export/export.py:264: error: Invalid type comment or annotation [valid-type] +import_export/export.py:264: note: Suggestion: use type[...] instead of type(...) +import_export/export.py:266: error: Incompatible types in assignment (expression has type "None", variable has type "list[str]") [assignment] +import_export/export.py:282: error: Argument 2 to "serialize" has incompatible type "**dict[str, list[Any]]"; expected "str" [arg-type] +features/import_export/permissions.py:1: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/import_export/permissions.py:13: error: Name "WrappedAPIView" is not defined [name-defined] +features/import_export/permissions.py:24: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_organisation_admin" [union-attr] +features/import_export/permissions.py:24: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_organisation_admin" [union-attr] +features/import_export/permissions.py:29: error: Name "WrappedAPIView" is not defined [name-defined] +features/import_export/permissions.py:35: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_environment_admin" [union-attr] +features/import_export/permissions.py:35: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_environment_admin" [union-attr] +features/import_export/permissions.py:40: error: Name "WrappedAPIView" is not defined [name-defined] +features/import_export/permissions.py:47: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_environment_admin" [union-attr] +features/import_export/permissions.py:47: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_environment_admin" [union-attr] +features/import_export/permissions.py:51: error: Argument 2 of "has_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +features/import_export/permissions.py:51: note: This violates the Liskov substitution principle +features/import_export/permissions.py:51: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/import_export/permissions.py:58: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_project_permission" [union-attr] +features/import_export/permissions.py:58: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_project_permission" [union-attr] +features/import_export/permissions.py:62: error: Argument 2 of "has_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +features/import_export/permissions.py:62: note: This violates the Liskov substitution principle +features/import_export/permissions.py:62: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/import_export/permissions.py:69: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_project_permission" [union-attr] +features/import_export/permissions.py:69: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_project_permission" [union-attr] +edge_api/management/commands/migrate_to_edge_v2.py:13: error: Missing return statement [return] +edge_api/identities/serializers.py:103: error: Return type "MultivariateFeatureOptionModel" of "to_internal_value" incompatible with return type "int" in supertype "Field" [override] +edge_api/identities/serializers.py:125: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +edge_api/identities/serializers.py:126: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +edge_api/identities/serializers.py:192: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +edge_api/identities/serializers.py:286: error: Return type "EdgeIdentitySearchData" of "to_internal_value" incompatible with return type "str" in supertype "Field" [override] +edge_api/identities/serializers.py:300: error: Incompatible types in assignment (expression has type "EdgeIdentitySearchType", target has type "str") [assignment] +edge_api/identities/serializers.py:303: error: Incompatible types in assignment (expression has type "EdgeIdentitySearchType", target has type "str") [assignment] +edge_api/identities/serializers.py:305: error: Argument 1 to "EdgeIdentitySearchData" has incompatible type "**dict[str, str]"; expected "EdgeIdentitySearchType" [arg-type] +custom_auth/oauth/views.py:3: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +custom_auth/mfa/trench/serializers.py:13: error: Incompatible types in assignment (expression has type "type[FFAdminUser]", variable has type "AbstractUser") [assignment] +custom_auth/mfa/trench/serializers.py:19: error: Variable "custom_auth.mfa.trench.serializers.User" is not valid as a type [valid-type] +custom_auth/mfa/trench/serializers.py:19: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases +custom_auth/mfa/trench/serializers.py:27: error: User? has no attribute "id" [attr-defined] +app_analytics/management/commands/sendapiusagetoinflux.py:6: error: Skipping analyzing "influxdb_client": module is installed, but missing library stubs or py.typed marker [import-untyped] +app_analytics/management/commands/sendapiusagetoinflux.py:7: error: Skipping analyzing "influxdb_client.client.write_api": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/views.py:3: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/views.py:4: error: Skipping analyzing "common.segments.serializers": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/views.py:6: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +sales_dashboard/views.py:4: error: Skipping analyzing "re2": module is installed, but missing library stubs or py.typed marker [import-untyped] +sales_dashboard/views.py:303: error: "Never" not callable [misc] +sales_dashboard/views.py:315: error: "Never" not callable [misc] +sales_dashboard/views.py:321: error: "Never" not callable [misc] +sales_dashboard/views.py:327: error: "Never" not callable [misc] +projects/tags/views.py:1: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/permissions/permissions.py:56: error: "Model" has no attribute "organisation" [attr-defined] +organisations/permissions/permissions.py:169: error: "Model" has no attribute "organisation" [attr-defined] +organisations/permissions/permissions.py:193: error: Missing return statement [return] +organisations/permissions/permissions.py:193: error: Argument 2 of "has_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +organisations/permissions/permissions.py:193: note: This violates the Liskov substitution principle +organisations/permissions/permissions.py:193: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +organisations/permissions/permissions.py:204: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_master_api_key_user" [union-attr] +organisations/permissions/permissions.py:204: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_master_api_key_user" [union-attr] +organisations/permissions/permissions.py:207: error: Argument 2 of "has_object_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +organisations/permissions/permissions.py:207: note: This violates the Liskov substitution principle +organisations/permissions/permissions.py:207: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +organisations/permissions/permissions.py:215: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_master_api_key_user" [union-attr] +organisations/permissions/permissions.py:215: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_master_api_key_user" [union-attr] +organisations/permissions/permissions.py:220: error: Argument 2 to "has_permission" of "BasePermission" has incompatible type "View"; expected "APIView" [arg-type] +organisations/permissions/permissions.py:224: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "belongs_to" [union-attr] +organisations/permissions/permissions.py:224: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "belongs_to" [union-attr] +metadata/views.py:5: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/permissions.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/permissions.py:11: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/permissions.py:86: error: Argument 2 of "has_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +features/permissions.py:86: note: This violates the Liskov substitution principle +features/permissions.py:86: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/permissions.py:120: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/permissions.py:120: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/permissions.py:129: error: Argument 2 of "has_object_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +features/permissions.py:129: note: This violates the Liskov substitution principle +features/permissions.py:129: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/permissions.py:139: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/permissions.py:139: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:1: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/permissions.py:18: error: Argument 2 of "has_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +features/versioning/permissions.py:18: note: This violates the Liskov substitution principle +features/versioning/permissions.py:18: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/versioning/permissions.py:34: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:34: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:39: error: Argument 2 of "has_object_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +features/versioning/permissions.py:39: note: This violates the Liskov substitution principle +features/versioning/permissions.py:39: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/versioning/permissions.py:51: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:51: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:64: error: Argument 2 of "has_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +features/versioning/permissions.py:64: note: This violates the Liskov substitution principle +features/versioning/permissions.py:64: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/versioning/permissions.py:69: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:69: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:73: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:73: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:78: error: Argument 2 of "has_object_permission" is incompatible with supertype "BasePermission"; supertype defines the argument type as "APIView" [override] +features/versioning/permissions.py:78: note: This violates the Liskov substitution principle +features/versioning/permissions.py:78: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/versioning/permissions.py:81: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:81: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:85: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/versioning/permissions.py:85: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "has_environment_permission" [union-attr] +features/import_export/views.py:6: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/import_export/views.py:77: error: Argument 1 to "loads" has incompatible type "str | None"; expected "str | bytes | bytearray" [arg-type] +features/import_export/views.py:106: error: Argument 1 to "loads" has incompatible type "str | None"; expected "str | bytes | bytearray" [arg-type] +features/import_export/views.py:125: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_environment_admin" [union-attr] +features/import_export/views.py:125: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_environment_admin" [union-attr] +features/import_export/views.py:144: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_environment_admin" [union-attr] +features/import_export/views.py:144: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_environment_admin" [union-attr] +features/feature_segments/views.py:3: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/feature_segments/views.py:5: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/views.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/views.py:6: error: Skipping analyzing "drf_yasg": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/views.py:7: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/views.py:291: error: Incompatible types in assignment (expression has type "type[Webhook]", base class "NestedEnvironmentViewSet" defined the type as "None") [assignment] +environments/views.py:293: error: Incompatible types in assignment (expression has type "WebhookType", base class "TriggerSampleWebhookMixin" defined the type as "None") [assignment] +environments/views.py:306: error: Incompatible types in assignment (expression has type "type[EnvironmentAPIKey]", base class "NestedEnvironmentViewSet" defined the type as "None") [assignment] +environments/identities/views.py:4: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/identities/views.py:12: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +custom_auth/jwt_cookie/views.py:1: error: Skipping analyzing "djoser.views": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/management/commands/bootstrap.py:18: error: Signature of "create_parser" incompatible with supertype "BaseCommand" [override] +core/management/commands/bootstrap.py:18: note: Superclass: +core/management/commands/bootstrap.py:18: note: def create_parser(self, prog_name: str, subcommand: str, **kwargs: Any) -> CommandParser +core/management/commands/bootstrap.py:18: note: Subclass: +core/management/commands/bootstrap.py:18: note: def create_parser(self, *args: Any, **kwargs: Any) -> ArgumentParser +core/management/commands/bootstrap.py:22: error: Argument 1 to "add_arguments" of "Command" has incompatible type "core.management.commands.bootstrap.Command"; expected "users.management.commands.createinitialadminuser.Command" [arg-type] +core/management/commands/bootstrap.py:23: error: Argument 1 to "add_arguments" of "Command" has incompatible type "core.management.commands.bootstrap.Command"; expected "organisations.management.commands.createinitialorganisation.Command" [arg-type] +core/management/commands/bootstrap.py:24: error: Argument 1 to "add_arguments" of "Command" has incompatible type "core.management.commands.bootstrap.Command"; expected "projects.management.commands.createinitialproject.Command" [arg-type] +core/management/commands/bootstrap.py:27: error: Argument 1 to "handle" of "Command" has incompatible type "core.management.commands.bootstrap.Command"; expected "users.management.commands.createinitialadminuser.Command" [arg-type] +core/management/commands/bootstrap.py:28: error: Argument 1 to "handle" of "Command" has incompatible type "core.management.commands.bootstrap.Command"; expected "organisations.management.commands.createinitialorganisation.Command" [arg-type] +core/management/commands/bootstrap.py:29: error: Argument 1 to "handle" of "Command" has incompatible type "core.management.commands.bootstrap.Command"; expected "projects.management.commands.createinitialproject.Command" [arg-type] +audit/views.py:7: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +audit/views.py:107: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "organisations" [union-attr] +audit/views.py:107: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "organisations" [union-attr] +app_analytics/views.py:11: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +conftest.py:8: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +conftest.py:13: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +conftest.py:19: error: Skipping analyzing "moto": module is installed, but missing library stubs or py.typed marker [import-untyped] +conftest.py:26: error: Skipping analyzing "task_processor.task_run_method": module is installed, but missing library stubs or py.typed marker [import-untyped] +conftest.py:29: error: Skipping analyzing "xdist": module is installed, but missing library stubs or py.typed marker [import-untyped] +conftest.py:114: error: No return value expected [return-value] +conftest.py:114: error: Argument "json_data" to "MockResponse" has incompatible type "dict[str, str]"; expected "str" [arg-type] +conftest.py:416: error: Argument 1 to "add" of "ManyRelatedManager" has incompatible type "*list[str]"; expected "PermissionModel | int" [arg-type] +conftest.py:439: error: Argument 1 to "add" of "ManyRelatedManager" has incompatible type "*list[str]"; expected "PermissionModel | int" [arg-type] +conftest.py:466: error: Argument 1 to "add" of "ManyRelatedManager" has incompatible type "*list[str]"; expected "PermissionModel | int" [arg-type] +conftest.py:691: error: Incompatible return value type (got "tuple[AbstractAPIKey, str]", expected "tuple[MasterAPIKey, str]") [return-value] +conftest.py:701: error: Incompatible return value type (got "tuple[AbstractAPIKey, str]", expected "tuple[MasterAPIKey, str]") [return-value] +conftest.py:723: error: Incompatible return value type (got "int", expected "str") [return-value] +conftest.py:1186: error: The return type of a generator function should be "Generator" or one of its supertypes [misc] +conftest.py:1222: error: Need type annotation for "messages" (hint: "messages: list[] = ...") [var-annotated] +conftest.py:1224: error: Return type "None" of "handle" incompatible with return type "bool" in supertype "Handler" [override] +users/views.py:16: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +users/views.py:124: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "id" [union-attr] +users/views.py:204: error: Argument 1 of "paginate_queryset" is incompatible with supertype "GenericAPIView"; supertype defines the argument type as "QuerySet[Any, Any] | Sequence[Any]" [override] +users/views.py:204: note: This violates the Liskov substitution principle +users/views.py:204: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +users/views.py:207: error: Incompatible return value type (got "Sequence[Any] | None", expected "list[UserPermissionGroup] | None") [return-value] +projects/permissions.py:3: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/permissions.py:74: error: "Model" has no attribute "project" [attr-defined] +projects/permissions.py:106: error: Incompatible default for argument "action_permission_map" (default has type "None", argument has type "dict[str, str]") [assignment] +projects/permissions.py:106: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +projects/permissions.py:106: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +projects/permissions.py:109: error: "Model" has no attribute "project" [attr-defined] +organisations/views.py:12: error: Library stubs not installed for "dateutil.relativedelta" [import-untyped] +organisations/views.py:14: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/views.py:302: error: Incompatible types in assignment (expression has type "WebhookType", base class "TriggerSampleWebhookMixin" defined the type as "None") [assignment] +metadata/urls.py:3: error: Skipping analyzing "rest_framework_nested": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/github/views.py:143: error: Missing return statement [return] +integrations/github/views.py:143: error: Return type "Response | None" of "create" incompatible with return type "Response" in supertype "CreateModelMixin" [override] +integrations/github/views.py:167: error: Return type "Response | None" of "update" incompatible with return type "Response" in supertype "UpdateModelMixin" [override] +features/views.py:8: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/views.py:17: error: Skipping analyzing "drf_yasg": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/views.py:18: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/views.py:184: error: Argument 1 of "paginate_queryset" is incompatible with supertype "GenericAPIView"; supertype defines the argument type as "QuerySet[Any, Any] | Sequence[Any]" [override] +features/views.py:184: note: This violates the Liskov substitution principle +features/views.py:184: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/views.py:186: error: Cannot determine type of "_page" [has-type] +features/views.py:189: error: Incompatible return value type (got "Sequence[Any] | None", expected "list[Feature]") [return-value] +features/versioning/views.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/views.py:4: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/views.py:9: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/views.py:86: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "get_permitted_projects" [union-attr] +features/versioning/views.py:86: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "get_permitted_projects" [union-attr] +features/versioning/views.py:91: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "get_permitted_environments" [union-attr] +features/versioning/views.py:91: error: Item "AnonymousUser" of "AbstractBaseUser | AnonymousUser" has no attribute "get_permitted_environments" [union-attr] +features/versioning/views.py:127: error: Argument 1 of "perform_create" is incompatible with supertype "CreateModelMixin"; supertype defines the argument type as "BaseSerializer[Any]" [override] +features/versioning/views.py:127: note: This violates the Liskov substitution principle +features/versioning/views.py:127: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/versioning/views.py:250: error: Argument 1 of "perform_create" is incompatible with supertype "CreateModelMixin"; supertype defines the argument type as "BaseSerializer[Any]" [override] +features/versioning/views.py:250: note: This violates the Liskov substitution principle +features/versioning/views.py:250: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +features/versioning/views.py:259: error: Argument 1 of "perform_update" is incompatible with supertype "UpdateModelMixin"; supertype defines the argument type as "BaseSerializer[Any]" [override] +features/versioning/views.py:259: note: This violates the Liskov substitution principle +features/versioning/views.py:259: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides +environments/identities/traits/views.py:1: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/identities/traits/views.py:5: error: Skipping analyzing "drf_yasg": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/identities/traits/views.py:6: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/views.py:6: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/views.py:9: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +edge_api/identities/views.py:121: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +edge_api/identities/views.py:237: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +edge_api/identities/views.py:266: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked] +e2etests/e2e_seed_data.py:1: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +e2etests/e2e_seed_data.py:6: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +e2etests/e2e_seed_data.py:139: error: Incompatible type for "name" of "Project" (got "Sequence[str]", expected "str | int | Combinable") [misc] +custom_auth/views.py:6: error: Skipping analyzing "djoser.views": module is installed, but missing library stubs or py.typed marker [import-untyped] +custom_auth/views.py:7: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +custom_auth/views.py:41: error: Need type annotation for "authentication_classes" (hint: "authentication_classes: list[] = ...") [var-annotated] +custom_auth/views.py:52: error: Value of type "object" is not indexable [index] +custom_auth/views.py:72: error: Need type annotation for "authentication_classes" (hint: "authentication_classes: list[] = ...") [var-annotated] +custom_auth/views.py:84: error: "CodeLoginSerializer" has no attribute "user" [attr-defined] +custom_auth/views.py:89: error: Argument "status" to "ErrorResponse" has incompatible type "Literal[401]"; expected "str" [arg-type] +custom_auth/mfa/trench/views/base.py:28: error: Incompatible types in assignment (expression has type "type[FFAdminUser]", variable has type "AbstractUser") [assignment] +custom_auth/mfa/trench/views/base.py:41: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "id" [union-attr] +custom_auth/mfa/trench/views/base.py:60: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "id" [union-attr] +custom_auth/mfa/trench/views/base.py:74: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "id" [union-attr] +custom_auth/jwt_cookie/authentication.py:15: error: Argument 1 to "get_validated_token" of "JWTAuthentication" has incompatible type "str"; expected "bytes" [arg-type] +custom_auth/jwt_cookie/authentication.py:16: error: Incompatible return value type (got "tuple[AbstractBaseUser, Token]", expected "tuple[FFAdminUser, Token] | None") [return-value] +users/migrations/0007_invite.py:27: error: Argument "verbose_name" to "DateTimeField" has incompatible type "bytes"; expected "str | _StrPromise | None" [arg-type] +segments/migrations/0019_add_audit_to_condition.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/migrations/0019_add_audit_to_condition.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/migrations/0016_add_historical_records_to_segment.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +segments/migrations/0016_add_historical_records_to_segment.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/views.py:4: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/views.py:7: error: Skipping analyzing "drf_yasg": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/views.py:8: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/views.py:148: error: Incompatible default for argument "pk" (default has type "None", argument has type "int") [assignment] +projects/views.py:148: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +projects/views.py:148: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +projects/views.py:156: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "id" [union-attr] +projects/views.py:168: error: Incompatible default for argument "pk" (default has type "None", argument has type "int") [assignment] +projects/views.py:168: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +projects/views.py:168: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +projects/views.py:212: error: Incompatible types in assignment (expression has type "type[UserProjectPermission]", base class "BaseProjectPermissionsViewSet" defined the type as "None") [assignment] +projects/views.py:222: error: Incompatible types in assignment (expression has type "type[UserPermissionGroupProjectPermission]", base class "BaseProjectPermissionsViewSet" defined the type as "None") [assignment] +projects/migrations/0025_add_change_request_project_permissions.py:3: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/migrations/0003_auto_20200216_2050.py:3: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +permissions/migrations/0010_add_manage_tags_permission.py:2: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +permissions/migrations/0009_move_view_audit_log_permission.py:3: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +permissions/migrations/0008_add_view_audit_log_permission.py:3: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +permissions/migrations/0001_initial.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +permissions/migrations/0001_initial.py:10: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/migrations/0050_add_historical_subscription.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/migrations/0050_add_historical_subscription.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/slack/migrations/0001_initial.py:5: error: Skipping analyzing "django_lifecycle.mixins": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/slack/migrations/0001_initial.py:5: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/launch_darkly/views.py:1: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/launch_darkly/views.py:5: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/launch_darkly/views.py:67: error: Argument "user" to "create_import_request" has incompatible type "AbstractBaseUser | AnonymousUser"; expected "FFAdminUser" [arg-type] +integrations/launch_darkly/migrations/0001_initial.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/launch_darkly/migrations/0001_initial.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/grafana/migrations/0001_initial.py:5: error: Skipping analyzing "django_lifecycle.mixins": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/grafana/migrations/0001_initial.py:5: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/common/views.py:1: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/common/views.py:2: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +integrations/common/views.py:26: error: "Request" has no attribute "environment" [attr-defined] +integrations/common/views.py:33: error: "None" has no attribute "objects" [attr-defined] +integrations/common/views.py:35: error: "None" has no attribute "objects" [attr-defined] +integrations/common/views.py:63: error: "None" has no attribute "objects" [attr-defined] +integrations/common/views.py:65: error: "None" has no attribute "objects" [attr-defined] +integrations/common/views.py:92: error: "None" has no attribute "objects" [attr-defined] +integrations/common/views.py:94: error: "None" has no attribute "objects" [attr-defined] +features/urls.py:4: error: Skipping analyzing "rest_framework_nested": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/migrations/0007_add_change_request_group_assignment.py:5: error: Skipping analyzing "django_lifecycle.mixins": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/migrations/0007_add_change_request_group_assignment.py:5: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/migrations/0004_add_historical_change_request_approvals.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/migrations/0004_add_historical_change_request_approvals.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/migrations/0003_add_historical_change_request.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/migrations/0003_add_historical_change_request.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/migrations/0001_initial.py:6: error: Skipping analyzing "django_lifecycle.mixins": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/workflows/core/migrations/0001_initial.py:6: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/migrations/0004_add_version_change_set.py:6: error: Skipping analyzing "django_lifecycle.mixins": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/migrations/0004_add_version_change_set.py:6: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/migrations/0001_add_environment_feature_state_version_logic.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/migrations/0001_add_environment_feature_state_version_logic.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/multivariate/views.py:1: error: Skipping analyzing "common.projects.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/multivariate/views.py:2: error: Skipping analyzing "drf_yasg.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/multivariate/migrations/0006_add_audit_log_events_form_multivariate_models.py:7: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/multivariate/migrations/0006_add_audit_log_events_form_multivariate_models.py:7: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/multivariate/migrations/0001_initial.py:6: error: Skipping analyzing "django_lifecycle.mixins": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/multivariate/migrations/0001_initial.py:6: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/migrations/0055_add_feature_segment_audit_log_for_delete.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/migrations/0055_add_feature_segment_audit_log_for_delete.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/migrations/0021_historicalfeaturesegment.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/migrations/0021_historicalfeaturesegment.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/migrations/0011_historicalfeature_squashed_0012_historicalfeaturestate_historicalfeaturestatevalue.py:8: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/migrations/0011_historicalfeature_squashed_0012_historicalfeaturestate_historicalfeaturestatevalue.py:8: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/feature_external_resources/migrations/0001_initial.py:5: error: Skipping analyzing "django_lifecycle.mixins": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/feature_external_resources/migrations/0001_initial.py:5: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/permissions/migrations/0003_add_manage_identities_permission.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/permissions/migrations/0002_add_update_feature_state_permission.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/migrations/0026_add_auditable_base_class_to_environment_model.py:8: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/migrations/0026_add_auditable_base_class_to_environment_model.py:8: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/migrations/0017_add_environment_api_key_model.py:5: error: Skipping analyzing "django_lifecycle.mixins": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/migrations/0017_add_environment_api_key_model.py:5: error: Skipping analyzing "django_lifecycle": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/migrations/0010_auto_20200219_2343.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/migrations/0004_auto_20181026_1438.py:8: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/migrations/0004_auto_20181026_1438.py:8: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/identities/traits/migrations/0001_initial.py:6: error: Skipping analyzing "simple_history.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/identities/traits/migrations/0001_initial.py:6: error: Skipping analyzing "simple_history": module is installed, but missing library stubs or py.typed marker [import-untyped] +core/migration_helpers.py:16: error: Incompatible default for argument "reverse_sql" (default has type "None", argument has type "str | PathLike[Any]") [assignment] +core/migration_helpers.py:16: note: PEP 484 prohibits implicit Optional. Accordingly, mypy has changed its default to no_implicit_optional=True +core/migration_helpers.py:16: note: Use https://github.com/hauntsaninja/no_implicit_optional to automatically upgrade your codebase +core/migration_helpers.py:22: error: Argument "reverse_sql" to "PostgresOnlyRunSQL" has incompatible type "str | PathLike[Any]"; expected "str | list[str | tuple[str, dict[str, Any] | list[Any] | tuple[Any, ...] | tuple[()] | None]] | tuple[str | tuple[str, dict[str, Any] | list[Any] | tuple[Any, ...] | tuple[()] | None], ...] | tuple[()] | None" [arg-type] +core/migration_helpers.py:71: error: "type" has no attribute "permissions" [attr-defined] +core/migration_helpers.py:73: error: "type" has no attribute "objects" [attr-defined] +app/urls.py:46: error: Skipping analyzing "debug_toolbar": module is installed, but missing library stubs or py.typed marker [import-untyped] +api/migrations/0001_initial.py:25: error: Argument "verbose_name" to "DateTimeField" has incompatible type "bytes"; expected "str | _StrPromise | None" [arg-type] +api/migrations/0001_initial.py:34: error: Argument "verbose_name" to "DateTimeField" has incompatible type "bytes"; expected "str | _StrPromise | None" [arg-type] +api/migrations/0001_initial.py:57: error: Argument "verbose_name" to "DateTimeField" has incompatible type "bytes"; expected "str | _StrPromise | None" [arg-type] +api/migrations/0001_initial.py:85: error: Argument "verbose_name" to "DateTimeField" has incompatible type "bytes"; expected "str | _StrPromise | None" [arg-type] +integrations/webhook/views.py:7: error: Incompatible types in assignment (expression has type "type[WebhookConfigurationSerializer]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/webhook/views.py:8: error: Incompatible types in assignment (expression has type "type[WebhookConfiguration]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/slack/views.py:64: error: Incompatible types in assignment (expression has type "type[SlackEnvironmentSerializer]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/slack/views.py:66: error: Incompatible types in assignment (expression has type "type[SlackEnvironment]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/segment/views.py:7: error: Incompatible types in assignment (expression has type "type[SegmentConfigurationSerializer]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/segment/views.py:9: error: Incompatible types in assignment (expression has type "type[SegmentConfiguration]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/rudderstack/views.py:9: error: Incompatible types in assignment (expression has type "type[RudderstackConfigurationSerializer]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/rudderstack/views.py:11: error: Incompatible types in assignment (expression has type "type[RudderstackConfiguration]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/new_relic/views.py:7: error: Incompatible types in assignment (expression has type "type[NewRelicConfigurationSerializer]", base class "ProjectIntegrationBaseViewSet" defined the type as "None") [assignment] +integrations/new_relic/views.py:8: error: Incompatible types in assignment (expression has type "type[NewRelicConfiguration]", base class "ProjectIntegrationBaseViewSet" defined the type as "None") [assignment] +integrations/mixpanel/views.py:7: error: Incompatible types in assignment (expression has type "type[MixpanelConfigurationSerializer]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/mixpanel/views.py:8: error: Incompatible types in assignment (expression has type "type[MixpanelConfiguration]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/heap/views.py:7: error: Incompatible types in assignment (expression has type "type[HeapConfigurationSerializer]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/heap/views.py:8: error: Incompatible types in assignment (expression has type "type[HeapConfiguration]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/grafana/views.py:16: error: Incompatible types in assignment (expression has type "type[GrafanaProjectConfigurationSerializer]", base class "ProjectIntegrationBaseViewSet" defined the type as "None") [assignment] +integrations/grafana/views.py:18: error: Incompatible types in assignment (expression has type "type[GrafanaProjectConfiguration]", base class "ProjectIntegrationBaseViewSet" defined the type as "None") [assignment] +integrations/grafana/views.py:22: error: Incompatible types in assignment (expression has type "type[GrafanaOrganisationConfigurationSerializer]", base class "OrganisationIntegrationBaseViewSet" defined the type as "None") [assignment] +integrations/grafana/views.py:24: error: Incompatible types in assignment (expression has type "type[GrafanaOrganisationConfiguration]", base class "OrganisationIntegrationBaseViewSet" defined the type as "None") [assignment] +integrations/dynatrace/views.py:7: error: Incompatible types in assignment (expression has type "type[DynatraceConfigurationSerializer]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/dynatrace/views.py:9: error: Incompatible types in assignment (expression has type "type[DynatraceConfiguration]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/datadog/views.py:7: error: Incompatible types in assignment (expression has type "type[DataDogConfigurationSerializer]", base class "ProjectIntegrationBaseViewSet" defined the type as "None") [assignment] +integrations/datadog/views.py:8: error: Incompatible types in assignment (expression has type "type[DataDogConfiguration]", base class "ProjectIntegrationBaseViewSet" defined the type as "None") [assignment] +integrations/amplitude/views.py:7: error: Incompatible types in assignment (expression has type "type[AmplitudeConfigurationSerializer]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +integrations/amplitude/views.py:9: error: Incompatible types in assignment (expression has type "type[AmplitudeConfiguration]", base class "EnvironmentIntegrationCommonViewSet" defined the type as "None") [assignment] +environments/permissions/migrations/0008_add_manage_segment_overrides_permission.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/permissions/migrations/0005_add_view_identity_permissions.py:3: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +environments/permissions/migrations/0004_add_change_request_permissions.py:4: error: Skipping analyzing "common.environments.permissions": module is installed, but missing library stubs or py.typed marker [import-untyped] +projects/urls.py:5: error: Skipping analyzing "rest_framework_nested": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/urls.py:7: error: Skipping analyzing "rest_framework_nested": module is installed, but missing library stubs or py.typed marker [import-untyped] +organisations/urls.py:158: error: Cannot find implementation or library stub for module named "rbac.views" [import-not-found] +environments/urls.py:2: error: Skipping analyzing "rest_framework_nested": module is installed, but missing library stubs or py.typed marker [import-untyped] +features/versioning/urls.py:3: error: Skipping analyzing "rest_framework_nested.routers": module is installed, but missing library stubs or py.typed marker [import-untyped] +api/urls/v1.py:4: error: Skipping analyzing "drf_yasg": module is installed, but missing library stubs or py.typed marker [import-untyped] +api/urls/v1.py:5: error: Skipping analyzing "drf_yasg.views": module is installed, but missing library stubs or py.typed marker [import-untyped] +api/urls/v1.py:5: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports +api/urls/v1.py:78: error: Cannot find implementation or library stub for module named "split_testing.views" [import-not-found] +util/mappers/sdk.py:51: error: Argument "exclude" to "model_dump" of "BaseModel" has incompatible type "list[str]"; expected "set[int] | set[str] | dict[int, Any] | dict[str, Any] | None" [arg-type] +util/pydantic.py:17: note: def [Model: BaseModel] create_model(str, /, *, __config__: ConfigDict | None = ..., __doc__: str | None = ..., __base__: type[Model] | tuple[type[Model], ...], __module__: str = ..., __validators__: dict[str, classmethod[Any, Any, Any]] | None = ..., __cls_kwargs__: dict[str, Any] | None = ..., **field_definitions: Any) -> type[Model] +util/pydantic.py:17: note: def create_model(str, /, *, __config__: ConfigDict | None = ..., __doc__: str | None = ..., __base__: None = ..., __module__: str = ..., __validators__: dict[str, classmethod[Any, Any, Any]] | None = ..., __cls_kwargs__: dict[str, Any] | None = ..., **field_definitions: Any) -> type[BaseModel] ../api/edge_api/identities/tasks.py:31: error: Incompatible default for argument "new_value" (default has type "None", argument has type "bool | int | str") [assignment] ../api/edge_api/identities/export.py:74: note: def __getitem__(self, SupportsIndex, /) -> int ../api/core/apps.py:2: error: Skipping analyzing "simple_history.signals": module is installed, but missing library stubs or py.typed marker [import-untyped] diff --git a/api/tests/unit/edge_api/test_unit_edge_api_commands.py b/api/tests/unit/edge_api/test_unit_edge_api_commands.py index 7caac1724ef5..347eee434dcb 100644 --- a/api/tests/unit/edge_api/test_unit_edge_api_commands.py +++ b/api/tests/unit/edge_api/test_unit_edge_api_commands.py @@ -1,11 +1,21 @@ +import typing +import uuid + from django.core.management import call_command -from pytest_mock import MockerFixture +from edge_api.management.commands.ensure_identity_traits_blanks import ( + identity_wrapper, +) from projects.models import EdgeV2MigrationStatus, Project +if typing.TYPE_CHECKING: + from mypy_boto3_dynamodb.service_resource import Table + from pytest_mock import MockerFixture + from pytest_structlog import StructuredLogCapture + def test_migrate_to_edge_v2__new_projects__dont_migrate( - mocker: MockerFixture, project: Project + mocker: "MockerFixture", project: Project ) -> None: # Given # unmigrated projects are present @@ -44,7 +54,7 @@ def test_migrate_to_edge_v2__new_projects__dont_migrate( def test_migrate_to_edge_v2__core_projects__dont_migrate( - mocker: MockerFixture, project: Project + mocker: "MockerFixture", project: Project ) -> None: # Given # unmigrated Core projects are present @@ -76,3 +86,135 @@ def test_migrate_to_edge_v2__core_projects__dont_migrate( # Then # unmigrated Core projects were not migrated migrate_project_environments_to_v2_mock.assert_not_called() + + +def test_ensure_identity_traits_blanks__calls_expected( + flagsmith_identities_table: "Table", + mocker: "MockerFixture", +) -> None: + # Given + environment_api_key = "test" + identity_without_traits = { + "composite_key": f"{environment_api_key}_identity_without_traits", + "environment_api_key": environment_api_key, + "identifier": "identity_without_traits", + "identity_uuid": "8208c268-e286-4bff-848a-e4b97032fca9", + } + identity_with_correct_traits = { + "composite_key": f"{environment_api_key}_identity_with_correct_traits", + "identifier": "identity_with_correct_traits", + "environment_api_key": environment_api_key, + "identity_uuid": "1a47c1e2-4a9d-4f45-840e-a4cf1a23329e", + "identity_traits": [{"trait_key": "key", "trait_value": "value"}], + } + identity_with_skipped_blank_trait_value = { + "composite_key": f"{environment_api_key}_identity_with_skipped_blank_trait_value", + "identifier": "identity_with_skipped_blank_trait_value", + "environment_api_key": environment_api_key, + "identity_uuid": "33e11400-3a34-4b09-9541-3c99e9bf713a", + "identity_traits": [ + {"trait_key": "key", "trait_value": "value"}, + {"trait_key": "blank"}, + ], + } + fixed_identity_with_skipped_blank_trait_value = { + **identity_with_skipped_blank_trait_value, + "identity_traits": [ + {"trait_key": "key", "trait_value": "value"}, + {"trait_key": "blank", "trait_value": ""}, + ], + } + + flagsmith_identities_table.put_item(Item=identity_without_traits) + flagsmith_identities_table.put_item(Item=identity_with_correct_traits) + flagsmith_identities_table.put_item(Item=identity_with_skipped_blank_trait_value) + + identity_wrapper_put_item_mock = mocker.patch( + "edge_api.management.commands.ensure_identity_traits_blanks.identity_wrapper.put_item", + side_effect=identity_wrapper.put_item, + ) + + # When + call_command("ensure_identity_traits_blanks") + + # Then + assert flagsmith_identities_table.scan()["Items"] == [ + identity_without_traits, + identity_with_correct_traits, + fixed_identity_with_skipped_blank_trait_value, + ] + identity_wrapper_put_item_mock.assert_called_once_with( + fixed_identity_with_skipped_blank_trait_value, + ) + + +def test_ensure_identity_traits_blanks__logs_expected( + flagsmith_identities_table: "Table", + log: "StructuredLogCapture", + mocker: "MockerFixture", +) -> None: + # Given + environment_api_key = "test" + expected_log_count_every = 10 + mocker.patch( + "edge_api.management.commands.ensure_identity_traits_blanks.LOG_COUNT_EVERY", + new=expected_log_count_every, + ) + identity_with_skipped_blank_trait_value = { + "composite_key": f"{environment_api_key}_identity_with_skipped_blank_trait_value", + "identifier": "identity_with_skipped_blank_trait_value", + "environment_api_key": environment_api_key, + "identity_uuid": "33e11400-3a34-4b09-9541-3c99e9bf713a", + "identity_traits": [ + {"trait_key": "key", "trait_value": "value"}, + {"trait_key": "blank"}, + ], + } + + for i in range(expected_log_count_every): + flagsmith_identities_table.put_item( + Item={ + "composite_key": f"{environment_api_key}_identity_without_traits_{i}", + "identifier": f"identity_without_traits_{i}", + "environment_api_key": environment_api_key, + "identity_uuid": str(uuid.uuid4()), + } + ) + flagsmith_identities_table.put_item(Item=identity_with_skipped_blank_trait_value) + + # When + call_command("ensure_identity_traits_blanks") + + # Then + assert log.events == [ + { + "event": "started", + "level": "info", + "total_count": 11, + }, + { + "event": "in-progress", + "fixed_count": 0, + "level": "info", + "scanned_count": 10, + "scanned_percentage": 90.9090909090909, + "total_count": 11, + }, + { + "event": "identity-fixed", + "fixed_count": 1, + "identity_uuid": "33e11400-3a34-4b09-9541-3c99e9bf713a", + "level": "info", + "scanned_count": 11, + "scanned_percentage": 100.0, + "total_count": 11, + }, + { + "event": "finished", + "fixed_count": 1, + "level": "info", + "scanned_count": 11, + "scanned_percentage": 100.0, + "total_count": 11, + }, + ] diff --git a/api/tests/unit/features/workflows/core/test_unit_workflows_models.py b/api/tests/unit/features/workflows/core/test_unit_workflows_models.py index 37edd3e7059a..18c8d185b229 100644 --- a/api/tests/unit/features/workflows/core/test_unit_workflows_models.py +++ b/api/tests/unit/features/workflows/core/test_unit_workflows_models.py @@ -1001,7 +1001,5 @@ def test_url_via_project(project_change_request: ChangeRequest) -> None: # Then project_id = project_change_request.project_id expected_url = get_current_site_url() - expected_url += ( - f"/projects/{project_id}/change-requests/{project_change_request.id}" - ) + expected_url += f"/project/{project_id}/change-requests/{project_change_request.id}" assert url == expected_url diff --git a/api/tests/unit/organisations/subscriptions/test_unit_subscriptions_dataclasses.py b/api/tests/unit/organisations/subscriptions/test_unit_subscriptions_dataclasses.py index d8a4a1e5b629..d4a650878e8f 100644 --- a/api/tests/unit/organisations/subscriptions/test_unit_subscriptions_dataclasses.py +++ b/api/tests/unit/organisations/subscriptions/test_unit_subscriptions_dataclasses.py @@ -47,6 +47,11 @@ def test_base_subscription_metadata_add_raises_error_if_not_matching_payment_sou SourceASubscriptionMetadata(seats=1, api_calls=50000, projects=1), SourceASubscriptionMetadata(seats=2, api_calls=100000, projects=None), ), + ( + SourceASubscriptionMetadata(seats=1, api_calls=50000), + SourceASubscriptionMetadata(seats=1), + SourceASubscriptionMetadata(seats=2, api_calls=50000), + ), ), ) def test_base_subscription_metadata_add(add_to, add, expected_result): diff --git a/api/tests/unit/organisations/test_unit_organisations_views.py b/api/tests/unit/organisations/test_unit_organisations_views.py index 2f0fd2cdd123..ea78fc01a40a 100644 --- a/api/tests/unit/organisations/test_unit_organisations_views.py +++ b/api/tests/unit/organisations/test_unit_organisations_views.py @@ -135,6 +135,40 @@ def test_non_superuser_can_create_new_organisation_by_default( assert HubspotTracker.objects.filter(user=staff_user).exists() +def test_colliding_hubspot_cookies_are_ignored( + staff_client: APIClient, + staff_user: FFAdminUser, + admin_user: FFAdminUser, +) -> None: + # Given + org_name = "Test create org" + webhook_notification_email = "test@email.com" + url = reverse("api-v1:organisations:organisation-list") + colliding_cookie = "test_cookie_tracker" + HubspotTracker.objects.create( + user=admin_user, + hubspot_cookie=colliding_cookie, + ) + data = { + "name": org_name, + "webhook_notification_email": webhook_notification_email, + HUBSPOT_COOKIE_NAME: colliding_cookie, + } + + assert not HubspotTracker.objects.filter(user=staff_user).exists() + + # When + response = staff_client.post(url, data=data) + + # Then + assert response.status_code == status.HTTP_201_CREATED + assert ( + Organisation.objects.get(name=org_name).webhook_notification_email + == webhook_notification_email + ) + assert not HubspotTracker.objects.filter(user=staff_user).exists() + + @override_settings(RESTRICT_ORG_CREATE_TO_SUPERUSERS=True) def test_create_new_orgnisation_returns_403_with_non_superuser( staff_client: APIClient, diff --git a/docker/api/docker-compose.local.yml b/docker/api/docker-compose.local.yml new file mode 100644 index 000000000000..2727007c877c --- /dev/null +++ b/docker/api/docker-compose.local.yml @@ -0,0 +1,19 @@ +# A Compose file with minimal dependencies to be able to run Flagsmith, including its test suite, locally (not in Docker). + +name: flagsmith + +volumes: + pg_11_data: + +services: + db: + image: postgres:15.5-alpine + pull_policy: always + restart: unless-stopped + volumes: + - pg_11_data:/var/lib/postgresql/data + ports: + - 5432:5432 + environment: + POSTGRES_DB: flagsmith + POSTGRES_PASSWORD: password diff --git a/docs/docs/clients/client-side/flutter.md b/docs/docs/clients/client-side/flutter.md index 737acd2041cb..b019eb2bcac7 100644 --- a/docs/docs/clients/client-side/flutter.md +++ b/docs/docs/clients/client-side/flutter.md @@ -5,6 +5,8 @@ description: Manage your Feature Flags and Remote Config in your Flutter applica slug: /clients/flutter --- +import CodeBlock from '@theme/CodeBlock'; import { FlutterVersion } from '@site/src/components/SdkVersions.js'; + This SDK can be used for Flutter applications. The source code for the client is available on [GitHub](https://github.com/flagsmith/flagsmith-flutter-client). @@ -12,12 +14,12 @@ The Flagsmith Flutter SDK supports iOS, Android and Web targets. ## Getting Started -The client library is available from the [https://pub.dev/packages/flagsmith](https://pub.dev/packages/flagsmith): +Install the [client library](https://pub.dev/packages/flagsmith) by adding it to your application's pubspec.yaml file: -```dart -dependencies: - flagsmith: -``` + +{`dependencies: + flagsmith: ^`} + ## Basic Usage diff --git a/docs/plugins/flagsmith-versions/index.js b/docs/plugins/flagsmith-versions/index.js index 96f036a1b0f8..fff6a7261f95 100644 --- a/docs/plugins/flagsmith-versions/index.js +++ b/docs/plugins/flagsmith-versions/index.js @@ -4,6 +4,8 @@ const fetchJSON = async (url, options) => { return response.json(); }; +const userAgent = 'Flagsmith-Docs '; + const fallback = (value) => (promise) => { if (!process.env.CI) return promise.catch((e) => { @@ -53,7 +55,7 @@ const fetchDotnetVersions = async () => { const fetchRustVersions = async () => { // https://crates.io/data-access#api const headers = new Headers({ - 'User-Agent': 'Flagsmith-Docs ', + 'User-Agent': userAgent, }); const data = await fetchJSON('https://crates.io/api/v1/crates/flagsmith', { headers }); return data.versions.map((version) => version.num); @@ -69,11 +71,21 @@ const fetchNpmVersions = async (pkg) => { return Object.keys(data.versions); }; +const fetchFlutterVersions = async () => { + const data = await fetchJSON('https://pub.dev/api/packages/flagsmith', { + headers: { + Accept: 'application/vnd.pub.v2+json', + 'User-Agent': userAgent, + }, + }); + return data.versions.map((v) => v.version); +}; + export default async function fetchFlagsmithVersions(context, options) { return { name: 'flagsmith-versions', async loadContent() { - const [js, nodejs, java, android, swiftpm, cocoapods, dotnet, rust, elixir] = await Promise.all( + const [js, nodejs, java, android, swiftpm, cocoapods, dotnet, rust, elixir, flutter] = await Promise.all( [ fetchNpmVersions('flagsmith'), fetchNpmVersions('flagsmith-nodejs'), @@ -84,6 +96,7 @@ export default async function fetchFlagsmithVersions(context, options) { fetchDotnetVersions(), fetchRustVersions(), fetchElixirVersions(), + fetchFlutterVersions(), ].map(fallback([])), ); return { @@ -96,6 +109,7 @@ export default async function fetchFlagsmithVersions(context, options) { dotnet, rust, elixir, + flutter, }; }, async contentLoaded({ content, actions }) { diff --git a/docs/src/components/SdkVersions.js b/docs/src/components/SdkVersions.js index e0426a1d0695..a91fe902308a 100644 --- a/docs/src/components/SdkVersions.js +++ b/docs/src/components/SdkVersions.js @@ -28,3 +28,4 @@ export const ElixirVersion = ({ spec = '~2' }) => Version({ sdk: 'elixir', spec export const RustVersion = ({ spec = '~2' }) => Version({ sdk: 'rust', spec }); export const JsVersion = ({ spec = '~7' }) => Version({ sdk: 'js', spec }); export const NodejsVersion = ({ spec } = { spec: '~5' }) => Version({ sdk: 'nodejs', spec }); +export const FlutterVersion = ({ spec = '~6' }) => Version({ sdk: 'flutter', spec }); diff --git a/frontend/package-lock.json b/frontend/package-lock.json index af49f542dbd2..420b05252996 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -13726,9 +13726,9 @@ "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", diff --git a/frontend/web/components/AuditLog.tsx b/frontend/web/components/AuditLog.tsx index d66651c7ec70..aa3009c2857c 100644 --- a/frontend/web/components/AuditLog.tsx +++ b/frontend/web/components/AuditLog.tsx @@ -21,6 +21,7 @@ type AuditLogType = { projectId: string pageSize: number onSearchChange?: (search: string) => void + onPageChange?: (page: number) => void searchPanel?: ReactNode onErrorChange?: (err: boolean) => void match: { @@ -33,11 +34,15 @@ type AuditLogType = { const widths = [210, 310, 150] const AuditLog: FC = (props) => { - const [page, setPage] = useState(1) + const [page, setPage] = useState(Utils.fromParam().page ?? 1) const { search, searchInput, setSearchInput } = useSearchThrottle( Utils.fromParam().search, () => { - setPage(1) + if (searchInput !== search) { + return setPage(1) + } + + setPage(Utils.fromParam().page) }, ) const { data: subscriptionMeta } = useGetSubscriptionMetadataQuery({ @@ -58,6 +63,11 @@ const AuditLog: FC = (props) => { //eslint-disable-next-line }, [search]) + useEffect(() => { + props.onPageChange?.(page) + //eslint-disable-next-line + }, [page]) + const hasHadResults = useRef(false) const { diff --git a/frontend/web/components/pages/AuditLogPage.tsx b/frontend/web/components/pages/AuditLogPage.tsx index 6b90de97f5cb..ffe36670f23a 100644 --- a/frontend/web/components/pages/AuditLogPage.tsx +++ b/frontend/web/components/pages/AuditLogPage.tsx @@ -29,6 +29,7 @@ const AuditLogPage: FC = (props) => { props.router.history.replace( `${document.location.pathname}?${Utils.toParam({ env: environment, + page: currentParams.page, search: currentParams.search, })}`, ) @@ -52,10 +53,20 @@ const AuditLogPage: FC = (props) => { props.router.history.replace( `${document.location.pathname}?${Utils.toParam({ env: environment, + page: Utils.fromParam().page, search, })}`, ) }} + onPageChange={(page: number) => { + props.router.history.replace( + `${document.location.pathname}?${Utils.toParam({ + env: environment, + page, + search: Utils.fromParam().search, + })}`, + ) + }} pageSize={10} environmentId={environment} projectId={projectId} diff --git a/frontend/web/components/pages/EnvironmentSettingsPage.js b/frontend/web/components/pages/EnvironmentSettingsPage.js index 4ba9dfa4782a..be6e40352447 100644 --- a/frontend/web/components/pages/EnvironmentSettingsPage.js +++ b/frontend/web/components/pages/EnvironmentSettingsPage.js @@ -67,6 +67,8 @@ const EnvironmentSettingsPage = class extends Component { { organisation_id: AccountStore.getOrganisation().id }, { forceRefetch: true }, ).then((roles) => { + if (!roles?.data?.results?.length) return + getRoleEnvironmentPermissions( getStore(), { @@ -76,7 +78,6 @@ const EnvironmentSettingsPage = class extends Component { }, { forceRefetch: true }, ).then((res) => { - debugger const matchingItems = roles.data.results.filter((item1) => res.data.results.some((item2) => item2.role === item1.id), ) @@ -156,7 +157,7 @@ const EnvironmentSettingsPage = class extends Component { api_key: this.props.match.params.environmentId, }) - const { description, name } = this.state + const { name } = this.state if (ProjectStore.isSaving || !name) { return } @@ -166,7 +167,7 @@ const EnvironmentSettingsPage = class extends Component { allow_client_traits: !!this.state.allow_client_traits, banner_colour: this.state.banner_colour, banner_text: this.state.banner_text, - description: description || env.description, + description: this.state?.env?.description, hide_disabled_flags: this.state.hide_disabled_flags, hide_sensitive_data: !!this.state.hide_sensitive_data, minimum_change_request_approvals: has4EyesPermission @@ -365,17 +366,16 @@ const EnvironmentSettingsPage = class extends Component { (this.input = e)} - value={ - typeof this.state.description === 'string' - ? this.state.description - : env.description - } + value={this.state?.env?.description ?? ''} inputProps={{ className: 'input--wide textarea-lg', }} onChange={(e) => this.setState({ - description: Utils.safeParseEventValue(e), + env: { + ...this.state.env, + description: Utils.safeParseEventValue(e), + }, }) } isValid={name && name.length} diff --git a/frontend/web/components/pages/ProjectSettingsPage.js b/frontend/web/components/pages/ProjectSettingsPage.js index 265b2e1cb209..ea8c8261f612 100644 --- a/frontend/web/components/pages/ProjectSettingsPage.js +++ b/frontend/web/components/pages/ProjectSettingsPage.js @@ -60,6 +60,8 @@ const ProjectSettingsPage = class extends Component { { organisation_id: AccountStore.getOrganisation().id }, { forceRefetch: true }, ).then((roles) => { + if (!roles?.data?.results?.length) return + getRoleProjectPermissions( getStore(), { diff --git a/version.txt b/version.txt index ec93b9d6ea06..7db0b1f4e666 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2.156.1 +2.157.1