Repository: azogue/aiopvpc (language: python)

Issue:
Indicador de ajuste de mercado y cálculo de Indexada
 En esta PR añado el nuevo indicador para obtener el ajuste de mercado que se realiza en PVPC respecto a la indexada.

Adicionalmente, una vez se tienen todos los sensores, se calcula el valor de indexada durante la fase de procesamiento, restando al valor de PVPC el valor de mercado futuros.

Dado que Indexada no es un indicador, le he puesto 0, aunque no estoy seguro de que deba ser así.


Discussion / hints:
Hola @MiguelAngelLV 👋

**El PR tiene muy buena pinta** 👍, hay un par de detallitos a nivel de organización de código y un bug potencial en el cálculo de esa indexada, pero, ya que no has subido versión del paquete en este PR, prefiero hacer yo **otro PR por encima**, y así aprovecho para hacer algo de limpieza de ejemplos antiguos, y alguna cosilla más. 

Además, creo q cambiaron el sistema de publicación en pypi, así q tengo q echarle una miradilla para poder publicar nuevas versiones (lo q hay ahora no iba a funcionar 🥲)

Respecto al otro PR en el custom-component, **¿no te animas a hacer el PR en el HA-Core??** 😜, el custom-component es un rollo, y creo q ya está a la par con el oficial, no?


Es posible que haya algún bug sí, python solo lo he tocado para HA, así que aún no tengo claro las explosiones que puede haber con los Nones y demás.

En cuanto a mandar al oficial... Todavía no tengo claro todos los protocolos pertinentes.
> En cuanto a mandar al oficial... Todavía no tengo claro todos los protocolos pertinentes.

Tienen muy buena doc para montarlo todo y hacer tu 1º PR. Cuanto + pequeño mejor 😅; yo puedo revisártelo 👍

Fix patch:
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 524c94b..f4a8147 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -8,19 +8,21 @@ on:
 jobs:
   test-and-publish-flow:
     runs-on: ubuntu-latest
+    permissions:
+      id-token: write
     steps:
       - name: Check out repository
-        uses: actions/checkout@v2
+        uses: actions/checkout@v4
 
       - name: Set up python
-        uses: actions/setup-python@v2
+        uses: actions/setup-python@v4
         with:
-          python-version: 3.9
+          python-version: 3.11
 
       - name: Run Poetry image
         uses: abatilo/actions-poetry@v2.0.0
         with:
-          poetry-version: 1.3.1
+          poetry-version: 1.7.1
 
       - name: Install library
         run: poetry install --no-interaction
@@ -43,8 +45,9 @@ jobs:
               - 'pyproject.toml'
 
       - if: ${{ (github.ref == 'refs/heads/master') && (steps.changes.outputs.root == 'true')}}
-        name: Build and publish
-        env:
-          PYPI_USER: ${{ secrets.PYPI_USER }}
-          PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
-        run: poetry publish --username $PYPI_USER --password $PYPI_PASSWORD --build
+        name: Build
+        run: poetry build
+
+      - if: ${{ (github.ref == 'refs/heads/master') && (steps.changes.outputs.root == 'true')}}
+        name: Publish release distributions to PyPI
+        uses: pypa/gh-action-pypi-publish@release/v1
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 0fd7c8a..faed614 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,24 +1,13 @@
-minimum_pre_commit_version: "2.10.0"
+minimum_pre_commit_version: "3.0.4"
 repos:
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.2.0
+    rev: v0.3.2
     hooks:
       - id: ruff
         args:
           - --fix
-  - repo: https://github.com/pycqa/isort
-    rev: 5.13.2
-    hooks:
-      - id: isort
-        name: isort (python)
-        args:
-          - --dont-order-by-type
-  - repo: https://github.com/psf/black
-    rev: "24.1.1"
-    hooks:
-      - id: black
-        name: Format code (black)
-  - repo: https://github.com/pre-commit/pre-commit-hooks
+      - id: ruff-format
+  - repo: "https://github.com/pre-commit/pre-commit-hooks"
     rev: "v4.5.0"
     hooks:
       - id: end-of-file-fixer
@@ -31,7 +20,7 @@ repos:
     hooks:
       - id: prettier
   - repo: "https://github.com/pre-commit/mirrors-mypy"
-    rev: "v1.8.0"
+    rev: "v1.9.0"
     hooks:
       - id: "mypy"
         name: "Check type hints (mypy)"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d9e7cb9..adc0a85 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Changelog
 
+## [v4.3.0](https://github.com/azogue/aiopvpc/tree/v4.3.0) - ✨ Add new _composed_ sensor for Indexed tariff (2024-03-10)
+
+[Full Changelog](https://github.com/azogue/aiopvpc/compare/v4.2.2...v4.3.0)
+
+- ✨ Add new price sensors: **Market adjustment** (from ESIOS API indicator 2108), and **Indexed tariff** (as _composed_ price sensor calculated as `PVPC - ADJUSTMENT`), from first-time contributor @MiguelAngelLV in #69 🍻, and some adjustments in #70
+- 🎨 pre-commit updates and change to `ruff` + `ruff-format` instead of `black` and `isort`
+- 🚀 Bump minor version and update deps and CHANGELOG.md
+
 ## [v4.2.2](https://github.com/azogue/aiopvpc/tree/v4.2.2) - ♻️ Remove python upper limit (2023-07-30)
 
 [Full Changelog](https://github.com/azogue/aiopvpc/compare/v4.2.1...v4.2.2)
diff --git a/aiopvpc/const.py b/aiopvpc/const.py
index 7a29d52..0a5b27f 100644
--- a/aiopvpc/const.py
+++ b/aiopvpc/const.py
@@ -54,7 +54,6 @@
 ESIOS_MAG = "1900"  # regargo GAS
 ESIOS_OMIE = "10211"  # precio mayorista
 ESIOS_MARKET_ADJUSTMENT = "2108"  # ajuste mercado Indexada VS PVPC
-ESIOS_INDEXED = "0"  # precio indexado restando PVPC y el ajuste
 
 # unique ids for each series
 KEY_PVPC = "PVPC"
@@ -62,7 +61,8 @@
 KEY_MAG = "MAG"  # regargo GAS
 KEY_OMIE = "OMIE"  # precio mayorista
 KEY_ADJUSTMENT = "ADJUSTMENT"  # ajuste mercado
-KEY_INDEXED = "INDEXED"  # precio indexada
+# composed sensors
+KEY_INDEXED = "INDEXED"  # precio indexada (:= PVPC - ADJUSTMENT)
 
 ALL_SENSORS = (KEY_PVPC, KEY_INJECTION, KEY_MAG, KEY_OMIE, KEY_ADJUSTMENT)
 SENSOR_KEY_TO_DATAID = {
@@ -71,7 +71,6 @@
     KEY_MAG: ESIOS_MAG,
     KEY_OMIE: ESIOS_OMIE,
     KEY_ADJUSTMENT: ESIOS_MARKET_ADJUSTMENT,
-    KEY_INDEXED: ESIOS_MARKET_ADJUSTMENT,
 }
 SENSOR_KEY_TO_NAME = {
     KEY_PVPC: "PVPC T. 2.0TD",
@@ -81,6 +80,15 @@
     KEY_ADJUSTMENT: "Ajuste de mercado a plazo",
     KEY_INDEXED: "Precio tarifa Indexada",
 }
+# API indicator dependencies for each price sensor
+SENSOR_KEY_TO_API_SERIES = {
+    KEY_PVPC: [KEY_PVPC],
+    KEY_INJECTION: [KEY_INJECTION],
+    KEY_MAG: [KEY_MAG],
+    KEY_OMIE: [KEY_OMIE],
+    KEY_ADJUSTMENT: [KEY_ADJUSTMENT],
+    KEY_INDEXED: [KEY_PVPC, KEY_ADJUSTMENT],
+}
 
 
 @dataclass
diff --git a/aiopvpc/prices.py b/aiopvpc/prices.py
index 0debb69..4c1516f 100644
--- a/aiopvpc/prices.py
+++ b/aiopvpc/prices.py
@@ -1,14 +1,18 @@
 """ESIOS API handler for HomeAssistant. Hourly price attributes."""
 
 import zoneinfo
+from contextlib import suppress
 from datetime import datetime
 from typing import Any
 
-from .const import KEY_INJECTION
+from .const import EsiosApiData, KEY_ADJUSTMENT, KEY_INDEXED, KEY_INJECTION, KEY_PVPC
 
 
 def _is_tomorrow_price(ts: datetime, ref: datetime) -> bool:
-    return any(map(lambda x: x[0] > x[1], zip(ts.isocalendar(), ref.isocalendar())))
+    return any(
+        ts_comp > ts_tz_ref
+        for ts_comp, ts_tz_ref in zip(ts.isocalendar(), ref.isocalendar())
+    )
 
 
 def _split_today_tomorrow_prices(
@@ -65,21 +69,18 @@ def _make_price_stats_attributes(
         attributes["hours_to_better_price"] = int(delta_better.total_seconds()) // 3600
         attributes["num_better_prices_ahead"] = len(better_prices_ahead)
 
-    try:
+    with suppress(ValueError):
         attributes["price_position"] = (
             list(prices_sorted.values()).index(current_price) + 1
         )
-    except ValueError:
-        pass
 
     max_price = max(current_prices.values())
     min_price = min(current_prices.values())
-    try:
+    with suppress(ZeroDivisionError):
         attributes["price_ratio"] = round(
             (current_price - min_price) / (max_price - min_price), 2
         )
-    except ZeroDivisionError:  # pragma: no cover
-        pass
+
     attributes["max_price"] = max_price
     first_price_at = next(iter(prices_sorted)).astimezone(timezone).hour
     last_price_at = next(iter(reversed(prices_sorted))).astimezone(timezone).hour
@@ -87,7 +88,7 @@ def _make_price_stats_attributes(
     attributes["min_price"] = min_price
     attributes["min_price_at"] = first_price_at if sign_is_best == 1 else last_price_at
     attributes["next_best_at"] = [
-        ts.astimezone(timezone).hour for ts in prices_sorted.keys() if ts >= utc_time
+        ts.astimezone(timezone).hour for ts in prices_sorted if ts >= utc_time
     ]
     return attributes
 
@@ -116,3 +117,24 @@ def make_price_sensor_attributes(
         price_attrs = {**price_attrs, **tomorrow_prices}
         price_tags = {**price_tags, **tomorrow_price_tags}
     return {**price_attrs, **price_tags}
+
+
+def add_composed_price_sensors(data: EsiosApiData):
+    """Calculate price sensors derived from multiple data series."""
+    if (
+        data.availability.get(KEY_PVPC, False)
+        and data.availability.get(KEY_ADJUSTMENT, False)
+        and (
+            common_ts_prices := set(data.sensors[KEY_PVPC]).intersection(
+                set(data.sensors[KEY_ADJUSTMENT])
+            )
+        )
+    ):
+        # generate 'indexed tariff' as: PRICE = PVPC - ADJUSTMENT
+        pvpc = data.sensors[KEY_PVPC]
+        adjustment = data.sensors[KEY_ADJUSTMENT]
+        data.sensors[KEY_INDEXED] = {
+            ts_hour: round(pvpc[ts_hour] - adjustment[ts_hour], 5)
+            for ts_hour in common_ts_prices
+        }
+        data.availability[KEY_INDEXED] = True
diff --git a/aiopvpc/pvpc_data.py b/aiopvpc/pvpc_data.py
index 4badc0f..581b244 100644
--- a/aiopvpc/pvpc_data.py
+++ b/aiopvpc/pvpc_data.py
@@ -26,17 +26,16 @@
     DEFAULT_TIMEOUT,
     EsiosApiData,
     EsiosResponse,
-    KEY_ADJUSTMENT,
-    KEY_INDEXED,
     KEY_PVPC,
     REFERENCE_TZ,
+    SENSOR_KEY_TO_API_SERIES,
     SENSOR_KEY_TO_DATAID,
     TARIFFS,
     UTC_TZ,
     zoneinfo,
 )
 from aiopvpc.parser import extract_esios_data, get_daily_urls_to_download
-from aiopvpc.prices import make_price_sensor_attributes
+from aiopvpc.prices import add_composed_price_sensors, make_price_sensor_attributes
 from aiopvpc.pvpc_tariff import get_current_and_next_tariff_periods
 from aiopvpc.utils import ensure_utc_time
 
@@ -107,7 +106,7 @@ def __init__(
         if self._api_token is not None:
             self._data_source = "esios"
         assert (data_source != "esios") or self._api_token is not None, data_source
-        self._user_agents = deque(sorted(_STANDARD_USER_AGENTS, key=lambda x: random()))
+        self._user_agents = deque(sorted(_STANDARD_USER_AGENTS, key=lambda _: random()))
 
         self._local_timezone = zoneinfo.ZoneInfo(str(local_timezone))
         assert tariff in TARIFFS
@@ -241,17 +240,20 @@ async def async_update_all(
                 last_update=utc_now,
             )
 
+        api_sensors = {
+            api_sensor_key
+            for sensor_key in self._sensor_keys
+            for api_sensor_key in SENSOR_KEY_TO_API_SERIES[sensor_key]
+        }
         urls_now, urls_next = get_daily_urls_to_download(
             self._data_source,
-            self._sensor_keys,
+            api_sensors,
             local_ref_now,
             next_day,
         )
         updated = False
         tasks = []
-        for url_now, url_next, sensor_key in zip(
-            urls_now, urls_next, self._sensor_keys
-        ):
+        for url_now, url_next, sensor_key in zip(urls_now, urls_next, api_sensors):
             if sensor_key not in current_data.sensors:
                 current_data.sensors[sensor_key] = {}
 
@@ -266,7 +268,7 @@ async def async_update_all(
             )
 
         results = await asyncio.gather(*tasks)
-        for new_data, sensor_key in zip(results, self._sensor_keys):
+        for new_data, sensor_key in zip(results, api_sensors):
             if new_data:
                 updated = True
                 current_data.sensors[sensor_key] = new_data
@@ -276,24 +278,11 @@ async def async_update_all(
             current_data.data_source = self._data_source
             current_data.last_update = utc_now
 
-        if (
-            KEY_PVPC in current_data.availability
-            and KEY_ADJUSTMENT in current_data.availability
-        ):
-            self._calculate_indexed(current_data)
-
+        add_composed_price_sensors(current_data)
         for sensor_key in current_data.sensors:
             self.process_state_and_attributes(current_data, sensor_key, now)
         return current_data
 
-    def _calculate_indexed(self, current_data: EsiosApiData):
-        pvpc = current_data.sensors[KEY_PVPC]
-        adjustment = current_data.sensors[KEY_ADJUSTMENT]
-        current_data.sensors[KEY_INDEXED] = {
-            date: pvpc[date] - adjustment[date] for date in pvpc
-        }
-        current_data.availability[KEY_INDEXED] = True
-
     async def _update_prices_series(
         self,
         sensor_key: str,
@@ -309,7 +298,7 @@ async def _update_prices_series(
                 "[%s] Evening download avoided, now with %d prices from %s UTC",
                 sensor_key,
                 current_num_prices,
-                list(current_prices)[0].strftime("%Y-%m-%d %Hh"),
+                next(iter(current_prices)).strftime("%Y-%m-%d %Hh"),
             )
             return None
         elif (
@@ -330,7 +319,7 @@ async def _update_prices_series(
             return None
 
         if current_num_prices and (
-            list(current_prices)[0].astimezone(REFERENCE_TZ).date()
+            next(iter(current_prices)).astimezone(REFERENCE_TZ).date()
             == local_ref_now.date()
         ):
             # avoid download of today prices
@@ -339,7 +328,7 @@ async def _update_prices_series(
                 sensor_key,
                 local_ref_now,
                 current_num_prices,
-                list(current_prices)[0].astimezone(REFERENCE_TZ).date(),
+                next(iter(current_prices)).astimezone(REFERENCE_TZ).date(),
                 local_ref_now.date(),
             )
         else:
@@ -361,7 +350,7 @@ async def _update_prices_series(
             "[%s] Download done, now with %d prices from %s UTC",
             sensor_key,
             len(current_prices),
-            list(current_prices)[0].strftime("%Y-%m-%d %Hh"),
+            next(iter(current_prices)).strftime("%Y-%m-%d %Hh"),
         )
 
         return current_prices
@@ -386,7 +375,7 @@ def process_state_and_attributes(
         """
         attributes: dict[str, Any] = {
             "sensor_id": sensor_key,
-            "data_id": SENSOR_KEY_TO_DATAID[sensor_key],
+            "data_id": SENSOR_KEY_TO_DATAID.get(sensor_key, "composed"),
         }
         utc_time = ensure_utc_time(utc_now.replace(minute=0, second=0, microsecond=0))
         actual_time = utc_time.astimezone(self._local_timezone)
diff --git a/poetry.lock b/poetry.lock
index 3656fb1..b97ff77 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -2,87 +2,87 @@
 
 [[package]]
 name = "aiohttp"
-version = "3.9.2"
+version = "3.9.3"
 description = "Async http client/server framework (asyncio)"
 optional = false
 python-versions = ">=3.8"
 files = [
-    {file = "aiohttp-3.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:772fbe371788e61c58d6d3d904268e48a594ba866804d08c995ad71b144f94cb"},
-    {file = "aiohttp-3.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:edd4f1af2253f227ae311ab3d403d0c506c9b4410c7fc8d9573dec6d9740369f"},
-    {file = "aiohttp-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cfee9287778399fdef6f8a11c9e425e1cb13cc9920fd3a3df8f122500978292b"},
-    {file = "aiohttp-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cc158466f6a980a6095ee55174d1de5730ad7dec251be655d9a6a9dd7ea1ff9"},
-    {file = "aiohttp-3.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:54ec82f45d57c9a65a1ead3953b51c704f9587440e6682f689da97f3e8defa35"},
-    {file = "aiohttp-3.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abeb813a18eb387f0d835ef51f88568540ad0325807a77a6e501fed4610f864e"},
-    {file = "aiohttp-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc91d07280d7d169f3a0f9179d8babd0ee05c79d4d891447629ff0d7d8089ec2"},
-    {file = "aiohttp-3.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b65e861f4bebfb660f7f0f40fa3eb9f2ab9af10647d05dac824390e7af8f75b7"},
-    {file = "aiohttp-3.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:04fd8ffd2be73d42bcf55fd78cde7958eeee6d4d8f73c3846b7cba491ecdb570"},
-    {file = "aiohttp-3.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3d8d962b439a859b3ded9a1e111a4615357b01620a546bc601f25b0211f2da81"},
-    {file = "aiohttp-3.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:8ceb658afd12b27552597cf9a65d9807d58aef45adbb58616cdd5ad4c258c39e"},
-    {file = "aiohttp-3.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:0e4ee4df741670560b1bc393672035418bf9063718fee05e1796bf867e995fad"},
-    {file = "aiohttp-3.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2dec87a556f300d3211decf018bfd263424f0690fcca00de94a837949fbcea02"},
-    {file = "aiohttp-3.9.2-cp310-cp310-win32.whl", hash = "sha256:3e1a800f988ce7c4917f34096f81585a73dbf65b5c39618b37926b1238cf9bc4"},
-    {file = "aiohttp-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:ea510718a41b95c236c992b89fdfc3d04cc7ca60281f93aaada497c2b4e05c46"},
-    {file = "aiohttp-3.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6aaa6f99256dd1b5756a50891a20f0d252bd7bdb0854c5d440edab4495c9f973"},
-    {file = "aiohttp-3.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a27d8c70ad87bcfce2e97488652075a9bdd5b70093f50b10ae051dfe5e6baf37"},
-    {file = "aiohttp-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:54287bcb74d21715ac8382e9de146d9442b5f133d9babb7e5d9e453faadd005e"},
-    {file = "aiohttp-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb3d05569aa83011fcb346b5266e00b04180105fcacc63743fc2e4a1862a891"},
-    {file = "aiohttp-3.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c8534e7d69bb8e8d134fe2be9890d1b863518582f30c9874ed7ed12e48abe3c4"},
-    {file = "aiohttp-3.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4bd9d5b989d57b41e4ff56ab250c5ddf259f32db17159cce630fd543376bd96b"},
-    {file = "aiohttp-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa6904088e6642609981f919ba775838ebf7df7fe64998b1a954fb411ffb4663"},
-    {file = "aiohttp-3.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bda42eb410be91b349fb4ee3a23a30ee301c391e503996a638d05659d76ea4c2"},
-    {file = "aiohttp-3.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:193cc1ccd69d819562cc7f345c815a6fc51d223b2ef22f23c1a0f67a88de9a72"},
-    {file = "aiohttp-3.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b9f1cb839b621f84a5b006848e336cf1496688059d2408e617af33e3470ba204"},
-    {file = "aiohttp-3.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:d22a0931848b8c7a023c695fa2057c6aaac19085f257d48baa24455e67df97ec"},
-    {file = "aiohttp-3.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4112d8ba61fbd0abd5d43a9cb312214565b446d926e282a6d7da3f5a5aa71d36"},
-    {file = "aiohttp-3.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c4ad4241b52bb2eb7a4d2bde060d31c2b255b8c6597dd8deac2f039168d14fd7"},
-    {file = "aiohttp-3.9.2-cp311-cp311-win32.whl", hash = "sha256:ee2661a3f5b529f4fc8a8ffee9f736ae054adfb353a0d2f78218be90617194b3"},
-    {file = "aiohttp-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:4deae2c165a5db1ed97df2868ef31ca3cc999988812e82386d22937d9d6fed52"},
-    {file = "aiohttp-3.9.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:6f4cdba12539215aaecf3c310ce9d067b0081a0795dd8a8805fdb67a65c0572a"},
-    {file = "aiohttp-3.9.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:84e843b33d5460a5c501c05539809ff3aee07436296ff9fbc4d327e32aa3a326"},
-    {file = "aiohttp-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8008d0f451d66140a5aa1c17e3eedc9d56e14207568cd42072c9d6b92bf19b52"},
-    {file = "aiohttp-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61c47ab8ef629793c086378b1df93d18438612d3ed60dca76c3422f4fbafa792"},
-    {file = "aiohttp-3.9.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc71f748e12284312f140eaa6599a520389273174b42c345d13c7e07792f4f57"},
-    {file = "aiohttp-3.9.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a1c3a4d0ab2f75f22ec80bca62385db2e8810ee12efa8c9e92efea45c1849133"},
-    {file = "aiohttp-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a87aa0b13bbee025faa59fa58861303c2b064b9855d4c0e45ec70182bbeba1b"},
-    {file = "aiohttp-3.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2cc0d04688b9f4a7854c56c18aa7af9e5b0a87a28f934e2e596ba7e14783192"},
-    {file = "aiohttp-3.9.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1956e3ac376b1711c1533266dec4efd485f821d84c13ce1217d53e42c9e65f08"},
-    {file = "aiohttp-3.9.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:114da29f39eccd71b93a0fcacff178749a5c3559009b4a4498c2c173a6d74dff"},
-    {file = "aiohttp-3.9.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3f17999ae3927d8a9a823a1283b201344a0627272f92d4f3e3a4efe276972fe8"},
-    {file = "aiohttp-3.9.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:f31df6a32217a34ae2f813b152a6f348154f948c83213b690e59d9e84020925c"},
-    {file = "aiohttp-3.9.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7a75307ffe31329928a8d47eae0692192327c599113d41b278d4c12b54e1bd11"},
-    {file = "aiohttp-3.9.2-cp312-cp312-win32.whl", hash = "sha256:972b63d589ff8f305463593050a31b5ce91638918da38139b9d8deaba9e0fed7"},
-    {file = "aiohttp-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:200dc0246f0cb5405c80d18ac905c8350179c063ea1587580e3335bfc243ba6a"},
-    {file = "aiohttp-3.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:158564d0d1020e0d3fe919a81d97aadad35171e13e7b425b244ad4337fc6793a"},
-    {file = "aiohttp-3.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:da1346cd0ccb395f0ed16b113ebb626fa43b7b07fd7344fce33e7a4f04a8897a"},
-    {file = "aiohttp-3.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:eaa9256de26ea0334ffa25f1913ae15a51e35c529a1ed9af8e6286dd44312554"},
-    {file = "aiohttp-3.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1543e7fb00214fb4ccead42e6a7d86f3bb7c34751ec7c605cca7388e525fd0b4"},
-    {file = "aiohttp-3.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:186e94570433a004e05f31f632726ae0f2c9dee4762a9ce915769ce9c0a23d89"},
-    {file = "aiohttp-3.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d52d20832ac1560f4510d68e7ba8befbc801a2b77df12bd0cd2bcf3b049e52a4"},
-    {file = "aiohttp-3.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c45e4e815ac6af3b72ca2bde9b608d2571737bb1e2d42299fc1ffdf60f6f9a1"},
-    {file = "aiohttp-3.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa906b9bdfd4a7972dd0628dbbd6413d2062df5b431194486a78f0d2ae87bd55"},
-    {file = "aiohttp-3.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:68bbee9e17d66f17bb0010aa15a22c6eb28583edcc8b3212e2b8e3f77f3ebe2a"},
-    {file = "aiohttp-3.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4c189b64bd6d9a403a1a3f86a3ab3acbc3dc41a68f73a268a4f683f89a4dec1f"},
-    {file = "aiohttp-3.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:8a7876f794523123bca6d44bfecd89c9fec9ec897a25f3dd202ee7fc5c6525b7"},
-    {file = "aiohttp-3.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:d23fba734e3dd7b1d679b9473129cd52e4ec0e65a4512b488981a56420e708db"},
-    {file = "aiohttp-3.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b141753be581fab842a25cb319f79536d19c2a51995d7d8b29ee290169868eab"},
-    {file = "aiohttp-3.9.2-cp38-cp38-win32.whl", hash = "sha256:103daf41ff3b53ba6fa09ad410793e2e76c9d0269151812e5aba4b9dd674a7e8"},
-    {file = "aiohttp-3.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:328918a6c2835861ff7afa8c6d2c70c35fdaf996205d5932351bdd952f33fa2f"},
-    {file = "aiohttp-3.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5264d7327c9464786f74e4ec9342afbbb6ee70dfbb2ec9e3dfce7a54c8043aa3"},
-    {file = "aiohttp-3.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07205ae0015e05c78b3288c1517afa000823a678a41594b3fdc870878d645305"},
-    {file = "aiohttp-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ae0a1e638cffc3ec4d4784b8b4fd1cf28968febc4bd2718ffa25b99b96a741bd"},
-    {file = "aiohttp-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d43302a30ba1166325974858e6ef31727a23bdd12db40e725bec0f759abce505"},
-    {file = "aiohttp-3.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16a967685907003765855999af11a79b24e70b34dc710f77a38d21cd9fc4f5fe"},
-    {file = "aiohttp-3.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6fa3ee92cd441d5c2d07ca88d7a9cef50f7ec975f0117cd0c62018022a184308"},
-    {file = "aiohttp-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b500c5ad9c07639d48615a770f49618130e61be36608fc9bc2d9bae31732b8f"},
-    {file = "aiohttp-3.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c07327b368745b1ce2393ae9e1aafed7073d9199e1dcba14e035cc646c7941bf"},
-    {file = "aiohttp-3.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:cc7d6502c23a0ec109687bf31909b3fb7b196faf198f8cff68c81b49eb316ea9"},
-    {file = "aiohttp-3.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:07be2be7071723c3509ab5c08108d3a74f2181d4964e869f2504aaab68f8d3e8"},
-    {file = "aiohttp-3.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:122468f6fee5fcbe67cb07014a08c195b3d4c41ff71e7b5160a7bcc41d585a5f"},
-    {file = "aiohttp-3.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:00a9abcea793c81e7f8778ca195a1714a64f6d7436c4c0bb168ad2a212627000"},
-    {file = "aiohttp-3.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7a9825fdd64ecac5c670234d80bb52bdcaa4139d1f839165f548208b3779c6c6"},
-    {file = "aiohttp-3.9.2-cp39-cp39-win32.whl", hash = "sha256:5422cd9a4a00f24c7244e1b15aa9b87935c85fb6a00c8ac9b2527b38627a9211"},
-    {file = "aiohttp-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:7d579dcd5d82a86a46f725458418458fa43686f6a7b252f2966d359033ffc8ab"},
-    {file = "aiohttp-3.9.2.tar.gz", hash = "sha256:b0ad0a5e86ce73f5368a164c10ada10504bf91869c05ab75d982c6048217fbf7"},
+    {file = "aiohttp-3.9.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:939677b61f9d72a4fa2a042a5eee2a99a24001a67c13da113b2e30396567db54"},
+    {file = "aiohttp-3.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f5cd333fcf7590a18334c90f8c9147c837a6ec8a178e88d90a9b96ea03194cc"},
+    {file = "aiohttp-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:82e6aa28dd46374f72093eda8bcd142f7771ee1eb9d1e223ff0fa7177a96b4a5"},
+    {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f56455b0c2c7cc3b0c584815264461d07b177f903a04481dfc33e08a89f0c26b"},
+    {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bca77a198bb6e69795ef2f09a5f4c12758487f83f33d63acde5f0d4919815768"},
+    {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e083c285857b78ee21a96ba1eb1b5339733c3563f72980728ca2b08b53826ca5"},
+    {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab40e6251c3873d86ea9b30a1ac6d7478c09277b32e14745d0d3c6e76e3c7e29"},
+    {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df822ee7feaaeffb99c1a9e5e608800bd8eda6e5f18f5cfb0dc7eeb2eaa6bbec"},
+    {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:acef0899fea7492145d2bbaaaec7b345c87753168589cc7faf0afec9afe9b747"},
+    {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cd73265a9e5ea618014802ab01babf1940cecb90c9762d8b9e7d2cc1e1969ec6"},
+    {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a78ed8a53a1221393d9637c01870248a6f4ea5b214a59a92a36f18151739452c"},
+    {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:6b0e029353361f1746bac2e4cc19b32f972ec03f0f943b390c4ab3371840aabf"},
+    {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7cf5c9458e1e90e3c390c2639f1017a0379a99a94fdfad3a1fd966a2874bba52"},
+    {file = "aiohttp-3.9.3-cp310-cp310-win32.whl", hash = "sha256:3e59c23c52765951b69ec45ddbbc9403a8761ee6f57253250c6e1536cacc758b"},
+    {file = "aiohttp-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:055ce4f74b82551678291473f66dc9fb9048a50d8324278751926ff0ae7715e5"},
+    {file = "aiohttp-3.9.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6b88f9386ff1ad91ace19d2a1c0225896e28815ee09fc6a8932fded8cda97c3d"},
+    {file = "aiohttp-3.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c46956ed82961e31557b6857a5ca153c67e5476972e5f7190015018760938da2"},
+    {file = "aiohttp-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:07b837ef0d2f252f96009e9b8435ec1fef68ef8b1461933253d318748ec1acdc"},
+    {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad46e6f620574b3b4801c68255492e0159d1712271cc99d8bdf35f2043ec266"},
+    {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ed3e046ea7b14938112ccd53d91c1539af3e6679b222f9469981e3dac7ba1ce"},
+    {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:039df344b45ae0b34ac885ab5b53940b174530d4dd8a14ed8b0e2155b9dddccb"},
+    {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7943c414d3a8d9235f5f15c22ace69787c140c80b718dcd57caaade95f7cd93b"},
+    {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84871a243359bb42c12728f04d181a389718710129b36b6aad0fc4655a7647d4"},
+    {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5eafe2c065df5401ba06821b9a054d9cb2848867f3c59801b5d07a0be3a380ae"},
+    {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9d3c9b50f19704552f23b4eaea1fc082fdd82c63429a6506446cbd8737823da3"},
+    {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:f033d80bc6283092613882dfe40419c6a6a1527e04fc69350e87a9df02bbc283"},
+    {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:2c895a656dd7e061b2fd6bb77d971cc38f2afc277229ce7dd3552de8313a483e"},
+    {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1f5a71d25cd8106eab05f8704cd9167b6e5187bcdf8f090a66c6d88b634802b4"},
+    {file = "aiohttp-3.9.3-cp311-cp311-win32.whl", hash = "sha256:50fca156d718f8ced687a373f9e140c1bb765ca16e3d6f4fe116e3df7c05b2c5"},
+    {file = "aiohttp-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:5fe9ce6c09668063b8447f85d43b8d1c4e5d3d7e92c63173e6180b2ac5d46dd8"},
+    {file = "aiohttp-3.9.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:38a19bc3b686ad55804ae931012f78f7a534cce165d089a2059f658f6c91fa60"},
+    {file = "aiohttp-3.9.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:770d015888c2a598b377bd2f663adfd947d78c0124cfe7b959e1ef39f5b13869"},
+    {file = "aiohttp-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee43080e75fc92bf36219926c8e6de497f9b247301bbf88c5c7593d931426679"},
+    {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52df73f14ed99cee84865b95a3d9e044f226320a87af208f068ecc33e0c35b96"},
+    {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc9b311743a78043b26ffaeeb9715dc360335e5517832f5a8e339f8a43581e4d"},
+    {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b955ed993491f1a5da7f92e98d5dad3c1e14dc175f74517c4e610b1f2456fb11"},
+    {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:504b6981675ace64c28bf4a05a508af5cde526e36492c98916127f5a02354d53"},
+    {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6fe5571784af92b6bc2fda8d1925cccdf24642d49546d3144948a6a1ed58ca5"},
+    {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ba39e9c8627edc56544c8628cc180d88605df3892beeb2b94c9bc857774848ca"},
+    {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e5e46b578c0e9db71d04c4b506a2121c0cb371dd89af17a0586ff6769d4c58c1"},
+    {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:938a9653e1e0c592053f815f7028e41a3062e902095e5a7dc84617c87267ebd5"},
+    {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:c3452ea726c76e92f3b9fae4b34a151981a9ec0a4847a627c43d71a15ac32aa6"},
+    {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ff30218887e62209942f91ac1be902cc80cddb86bf00fbc6783b7a43b2bea26f"},
+    {file = "aiohttp-3.9.3-cp312-cp312-win32.whl", hash = "sha256:38f307b41e0bea3294a9a2a87833191e4bcf89bb0365e83a8be3a58b31fb7f38"},
+    {file = "aiohttp-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:b791a3143681a520c0a17e26ae7465f1b6f99461a28019d1a2f425236e6eedb5"},
+    {file = "aiohttp-3.9.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ed621426d961df79aa3b963ac7af0d40392956ffa9be022024cd16297b30c8c"},
+    {file = "aiohttp-3.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7f46acd6a194287b7e41e87957bfe2ad1ad88318d447caf5b090012f2c5bb528"},
+    {file = "aiohttp-3.9.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feeb18a801aacb098220e2c3eea59a512362eb408d4afd0c242044c33ad6d542"},
+    {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f734e38fd8666f53da904c52a23ce517f1b07722118d750405af7e4123933511"},
+    {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b40670ec7e2156d8e57f70aec34a7216407848dfe6c693ef131ddf6e76feb672"},
+    {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdd215b7b7fd4a53994f238d0f46b7ba4ac4c0adb12452beee724ddd0743ae5d"},
+    {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:017a21b0df49039c8f46ca0971b3a7fdc1f56741ab1240cb90ca408049766168"},
+    {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e99abf0bba688259a496f966211c49a514e65afa9b3073a1fcee08856e04425b"},
+    {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:648056db9a9fa565d3fa851880f99f45e3f9a771dd3ff3bb0c048ea83fb28194"},
+    {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8aacb477dc26797ee089721536a292a664846489c49d3ef9725f992449eda5a8"},
+    {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:522a11c934ea660ff8953eda090dcd2154d367dec1ae3c540aff9f8a5c109ab4"},
+    {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5bce0dc147ca85caa5d33debc4f4d65e8e8b5c97c7f9f660f215fa74fc49a321"},
+    {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b4af9f25b49a7be47c0972139e59ec0e8285c371049df1a63b6ca81fdd216a2"},
+    {file = "aiohttp-3.9.3-cp38-cp38-win32.whl", hash = "sha256:298abd678033b8571995650ccee753d9458dfa0377be4dba91e4491da3f2be63"},
+    {file = "aiohttp-3.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:69361bfdca5468c0488d7017b9b1e5ce769d40b46a9f4a2eed26b78619e9396c"},
+    {file = "aiohttp-3.9.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0fa43c32d1643f518491d9d3a730f85f5bbaedcbd7fbcae27435bb8b7a061b29"},
+    {file = "aiohttp-3.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:835a55b7ca49468aaaac0b217092dfdff370e6c215c9224c52f30daaa735c1c1"},
+    {file = "aiohttp-3.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06a9b2c8837d9a94fae16c6223acc14b4dfdff216ab9b7202e07a9a09541168f"},
+    {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abf151955990d23f84205286938796c55ff11bbfb4ccfada8c9c83ae6b3c89a3"},
+    {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59c26c95975f26e662ca78fdf543d4eeaef70e533a672b4113dd888bd2423caa"},
+    {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f95511dd5d0e05fd9728bac4096319f80615aaef4acbecb35a990afebe953b0e"},
+    {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:595f105710293e76b9dc09f52e0dd896bd064a79346234b521f6b968ffdd8e58"},
+    {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7c8b816c2b5af5c8a436df44ca08258fc1a13b449393a91484225fcb7545533"},
+    {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f1088fa100bf46e7b398ffd9904f4808a0612e1d966b4aa43baa535d1b6341eb"},
+    {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f59dfe57bb1ec82ac0698ebfcdb7bcd0e99c255bd637ff613760d5f33e7c81b3"},
+    {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:361a1026c9dd4aba0109e4040e2aecf9884f5cfe1b1b1bd3d09419c205e2e53d"},
+    {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:363afe77cfcbe3a36353d8ea133e904b108feea505aa4792dad6585a8192c55a"},
+    {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e2c45c208c62e955e8256949eb225bd8b66a4c9b6865729a786f2aa79b72e9d"},
+    {file = "aiohttp-3.9.3-cp39-cp39-win32.whl", hash = "sha256:f7217af2e14da0856e082e96ff637f14ae45c10a5714b63c77f26d8884cf1051"},
+    {file = "aiohttp-3.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:27468897f628c627230dba07ec65dc8d0db566923c48f29e084ce382119802bc"},
+    {file = "aiohttp-3.9.3.tar.gz", hash = "sha256:90842933e5d1ff760fae6caca4b2b3edba53ba8f4b71e95dacf2818a2aca06f7"},
 ]
 
 [package.dependencies]
@@ -112,42 +112,43 @@ frozenlist = ">=1.1.0"
 
 [[package]]
 name = "async-timeout"
-version = "4.0.2"
+version = "4.0.3"
 description = "Timeout context manager for asyncio programs"
 optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
 files = [
-    {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"},
-    {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"},
+    {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"},
+    {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"},
 ]
 
 [[package]]
 name = "attrs"
-version = "23.1.0"
+version = "23.2.0"
 description = "Classes Without Boilerplate"
 optional = false
 python-versions = ">=3.7"
 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-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"},
+    {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"},
 ]
 
 [package.extras]
 cov = ["attrs[tests]", "coverage[toml] (>=5.3)"]
-dev = ["attrs[docs,tests]", "pre-commit"]
+dev = ["attrs[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]"]
+tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"]
+tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"]
 
 [[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]]
@@ -163,71 +164,63 @@ files = [
 
 [[package]]
 name = "coverage"
-version = "7.2.7"
+version = "7.4.3"
 description = "Code coverage measurement for Python"
 optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
 files = [
-    {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"},
-    {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"},
-    {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"},
-    {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"},
-    {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"},
-    {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"},
-    {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"},
-    {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"},
-    {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"},
-    {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"},
-    {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"},
-    {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"},
-    {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"},
-    {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"},
-    {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"},
-    {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"},
-    {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"},
-    {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"},
-    {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"},
-    {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"},
-    {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"},
-    {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"},
-    {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"},
-    {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"},
-    {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"},
-    {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"},
-    {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"},
-    {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"},
-    {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"},
-    {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"},
-    {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"},
-    {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"},
-    {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"},
-    {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"},
-    {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"},
-    {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"},
-    {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"},
-    {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"},
-    {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"},
-    {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"},
-    {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"},
-    {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"},
-    {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"},
-    {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"},
-    {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"},
-    {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"},
-    {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"},
-    {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"},
-    {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"},
-    {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"},
-    {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"},
-    {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"},
-    {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"},
-    {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"},
-    {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"},
-    {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"},
-    {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"},
-    {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"},
-    {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"},
-    {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"},
+    {file = "coverage-7.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8580b827d4746d47294c0e0b92854c85a92c2227927433998f0d3320ae8a71b6"},
+    {file = "coverage-7.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:718187eeb9849fc6cc23e0d9b092bc2348821c5e1a901c9f8975df0bc785bfd4"},
+    {file = "coverage-7.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:767b35c3a246bcb55b8044fd3a43b8cd553dd1f9f2c1eeb87a302b1f8daa0524"},
+    {file = "coverage-7.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae7f19afe0cce50039e2c782bff379c7e347cba335429678450b8fe81c4ef96d"},
+    {file = "coverage-7.4.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba3a8aaed13770e970b3df46980cb068d1c24af1a1968b7818b69af8c4347efb"},
+    {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ee866acc0861caebb4f2ab79f0b94dbfbdbfadc19f82e6e9c93930f74e11d7a0"},
+    {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:506edb1dd49e13a2d4cac6a5173317b82a23c9d6e8df63efb4f0380de0fbccbc"},
+    {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd6545d97c98a192c5ac995d21c894b581f1fd14cf389be90724d21808b657e2"},
+    {file = "coverage-7.4.3-cp310-cp310-win32.whl", hash = "sha256:f6a09b360d67e589236a44f0c39218a8efba2593b6abdccc300a8862cffc2f94"},
+    {file = "coverage-7.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:18d90523ce7553dd0b7e23cbb28865db23cddfd683a38fb224115f7826de78d0"},
+    {file = "coverage-7.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cbbe5e739d45a52f3200a771c6d2c7acf89eb2524890a4a3aa1a7fa0695d2a47"},
+    {file = "coverage-7.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:489763b2d037b164846ebac0cbd368b8a4ca56385c4090807ff9fad817de4113"},
+    {file = "coverage-7.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:451f433ad901b3bb00184d83fd83d135fb682d780b38af7944c9faeecb1e0bfe"},
+    {file = "coverage-7.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fcc66e222cf4c719fe7722a403888b1f5e1682d1679bd780e2b26c18bb648cdc"},
+    {file = "coverage-7.4.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ec74cfef2d985e145baae90d9b1b32f85e1741b04cd967aaf9cfa84c1334f3"},
+    {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:abbbd8093c5229c72d4c2926afaee0e6e3140de69d5dcd918b2921f2f0c8baba"},
+    {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:35eb581efdacf7b7422af677b92170da4ef34500467381e805944a3201df2079"},
+    {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8249b1c7334be8f8c3abcaaa996e1e4927b0e5a23b65f5bf6cfe3180d8ca7840"},
+    {file = "coverage-7.4.3-cp311-cp311-win32.whl", hash = "sha256:cf30900aa1ba595312ae41978b95e256e419d8a823af79ce670835409fc02ad3"},
+    {file = "coverage-7.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:18c7320695c949de11a351742ee001849912fd57e62a706d83dfc1581897fa2e"},
+    {file = "coverage-7.4.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b51bfc348925e92a9bd9b2e48dad13431b57011fd1038f08316e6bf1df107d10"},
+    {file = "coverage-7.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d6cdecaedea1ea9e033d8adf6a0ab11107b49571bbb9737175444cea6eb72328"},
+    {file = "coverage-7.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b2eccb883368f9e972e216c7b4c7c06cabda925b5f06dde0650281cb7666a30"},
+    {file = "coverage-7.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c00cdc8fa4e50e1cc1f941a7f2e3e0f26cb2a1233c9696f26963ff58445bac7"},
+    {file = "coverage-7.4.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a4a8dd3dcf4cbd3165737358e4d7dfbd9d59902ad11e3b15eebb6393b0446e"},
+    {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:062b0a75d9261e2f9c6d071753f7eef0fc9caf3a2c82d36d76667ba7b6470003"},
+    {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ebe7c9e67a2d15fa97b77ea6571ce5e1e1f6b0db71d1d5e96f8d2bf134303c1d"},
+    {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c0a120238dd71c68484f02562f6d446d736adcc6ca0993712289b102705a9a3a"},
+    {file = "coverage-7.4.3-cp312-cp312-win32.whl", hash = "sha256:37389611ba54fd6d278fde86eb2c013c8e50232e38f5c68235d09d0a3f8aa352"},
+    {file = "coverage-7.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:d25b937a5d9ffa857d41be042b4238dd61db888533b53bc76dc082cb5a15e914"},
+    {file = "coverage-7.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:28ca2098939eabab044ad68850aac8f8db6bf0b29bc7f2887d05889b17346454"},
+    {file = "coverage-7.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:280459f0a03cecbe8800786cdc23067a8fc64c0bd51dc614008d9c36e1659d7e"},
+    {file = "coverage-7.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c0cdedd3500e0511eac1517bf560149764b7d8e65cb800d8bf1c63ebf39edd2"},
+    {file = "coverage-7.4.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a9babb9466fe1da12417a4aed923e90124a534736de6201794a3aea9d98484e"},
+    {file = "coverage-7.4.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dec9de46a33cf2dd87a5254af095a409ea3bf952d85ad339751e7de6d962cde6"},
+    {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:16bae383a9cc5abab9bb05c10a3e5a52e0a788325dc9ba8499e821885928968c"},
+    {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2c854ce44e1ee31bda4e318af1dbcfc929026d12c5ed030095ad98197eeeaed0"},
+    {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ce8c50520f57ec57aa21a63ea4f325c7b657386b3f02ccaedeccf9ebe27686e1"},
+    {file = "coverage-7.4.3-cp38-cp38-win32.whl", hash = "sha256:708a3369dcf055c00ddeeaa2b20f0dd1ce664eeabde6623e516c5228b753654f"},
+    {file = "coverage-7.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:1bf25fbca0c8d121a3e92a2a0555c7e5bc981aee5c3fdaf4bb7809f410f696b9"},
+    {file = "coverage-7.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b253094dbe1b431d3a4ac2f053b6d7ede2664ac559705a704f621742e034f1f"},
+    {file = "coverage-7.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77fbfc5720cceac9c200054b9fab50cb2a7d79660609200ab83f5db96162d20c"},
+    {file = "coverage-7.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6679060424faa9c11808598504c3ab472de4531c571ab2befa32f4971835788e"},
+    {file = "coverage-7.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4af154d617c875b52651dd8dd17a31270c495082f3d55f6128e7629658d63765"},
+    {file = "coverage-7.4.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8640f1fde5e1b8e3439fe482cdc2b0bb6c329f4bb161927c28d2e8879c6029ee"},
+    {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:69b9f6f66c0af29642e73a520b6fed25ff9fd69a25975ebe6acb297234eda501"},
+    {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0842571634f39016a6c03e9d4aba502be652a6e4455fadb73cd3a3a49173e38f"},
+    {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a78ed23b08e8ab524551f52953a8a05d61c3a760781762aac49f8de6eede8c45"},
+    {file = "coverage-7.4.3-cp39-cp39-win32.whl", hash = "sha256:c0524de3ff096e15fcbfe8f056fdb4ea0bf497d584454f344d59fce069d3e6e9"},
+    {file = "coverage-7.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:0209a6369ccce576b43bb227dc8322d8ef9e323d089c6f3f26a597b09cb4d2aa"},
+    {file = "coverage-7.4.3-pp38.pp39.pp310-none-any.whl", hash = "sha256:7cbde573904625509a3f37b6fecea974e363460b556a627c60dc2f47e2fffa51"},
+    {file = "coverage-7.4.3.tar.gz", hash = "sha256:276f6077a5c61447a48d133ed13e759c09e62aff0dc84274a68dc18660104d52"},
 ]
 
 [package.dependencies]
@@ -238,24 +231,24 @@ toml = ["tomli"]
 
 [[package]]
 name = "distlib"
-version = "0.3.7"
+version = "0.3.8"
 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.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"},
+    {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"},
 ]
 
 [[package]]
 name = "exceptiongroup"
-version = "1.1.2"
+version = "1.2.0"
 description = "Backport of PEP 654 (exception groups)"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "exceptiongroup-1.1.2-py3-none-any.whl", hash = "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"},
-    {file = "exceptiongroup-1.1.2.tar.gz", hash = "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5"},
+    {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
+    {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
 ]
 
 [package.extras]
@@ -263,98 +256,115 @@ test = ["pytest (>=6)"]
 
 [[package]]
 name = "filelock"
-version = "3.12.2"
+version = "3.13.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.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"},
+    {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"},
 ]
 
 [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 (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"]
+testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"]
+typing = ["typing-extensions (>=4.8)"]
 
 [[package]]
 name = "frozenlist"
-version = "1.4.0"
+version = "1.4.1"
 description = "A list-like structure which implements collections.abc.MutableSequence"
 optional = false
 python-versions = ">=3.8"
 files = [
-    {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:764226ceef3125e53ea2cb275000e309c0aa5464d43bd72abd661e27fffc26ab"},
-    {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d6484756b12f40003c6128bfcc3fa9f0d49a687e171186c2d85ec82e3758c559"},
-    {file = "frozenlist-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9ac08e601308e41eb533f232dbf6b7e4cea762f9f84f6357136eed926c15d12c"},
-    {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d081f13b095d74b67d550de04df1c756831f3b83dc9881c38985834387487f1b"},
-    {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:71932b597f9895f011f47f17d6428252fc728ba2ae6024e13c3398a087c2cdea"},
-    {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:981b9ab5a0a3178ff413bca62526bb784249421c24ad7381e39d67981be2c326"},
-    {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e41f3de4df3e80de75845d3e743b3f1c4c8613c3997a912dbf0229fc61a8b963"},
-    {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6918d49b1f90821e93069682c06ffde41829c346c66b721e65a5c62b4bab0300"},
-    {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e5c8764c7829343d919cc2dfc587a8db01c4f70a4ebbc49abde5d4b158b007b"},
-    {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8d0edd6b1c7fb94922bf569c9b092ee187a83f03fb1a63076e7774b60f9481a8"},
-    {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e29cda763f752553fa14c68fb2195150bfab22b352572cb36c43c47bedba70eb"},
-    {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:0c7c1b47859ee2cac3846fde1c1dc0f15da6cec5a0e5c72d101e0f83dcb67ff9"},
-    {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:901289d524fdd571be1c7be054f48b1f88ce8dddcbdf1ec698b27d4b8b9e5d62"},
-    {file = "frozenlist-1.4.0-cp310-cp310-win32.whl", hash = "sha256:1a0848b52815006ea6596c395f87449f693dc419061cc21e970f139d466dc0a0"},
-    {file = "frozenlist-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:b206646d176a007466358aa21d85cd8600a415c67c9bd15403336c331a10d956"},
-    {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:de343e75f40e972bae1ef6090267f8260c1446a1695e77096db6cfa25e759a95"},
-    {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad2a9eb6d9839ae241701d0918f54c51365a51407fd80f6b8289e2dfca977cc3"},
-    {file = "frozenlist-1.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bd7bd3b3830247580de99c99ea2a01416dfc3c34471ca1298bccabf86d0ff4dc"},
-    {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdf1847068c362f16b353163391210269e4f0569a3c166bc6a9f74ccbfc7e839"},
-    {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38461d02d66de17455072c9ba981d35f1d2a73024bee7790ac2f9e361ef1cd0c"},
-    {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5a32087d720c608f42caed0ef36d2b3ea61a9d09ee59a5142d6070da9041b8f"},
-    {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd65632acaf0d47608190a71bfe46b209719bf2beb59507db08ccdbe712f969b"},
-    {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261b9f5d17cac914531331ff1b1d452125bf5daa05faf73b71d935485b0c510b"},
-    {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b89ac9768b82205936771f8d2eb3ce88503b1556324c9f903e7156669f521472"},
-    {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:008eb8b31b3ea6896da16c38c1b136cb9fec9e249e77f6211d479db79a4eaf01"},
-    {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e74b0506fa5aa5598ac6a975a12aa8928cbb58e1f5ac8360792ef15de1aa848f"},
-    {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:490132667476f6781b4c9458298b0c1cddf237488abd228b0b3650e5ecba7467"},
-    {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:76d4711f6f6d08551a7e9ef28c722f4a50dd0fc204c56b4bcd95c6cc05ce6fbb"},
-    {file = "frozenlist-1.4.0-cp311-cp311-win32.whl", hash = "sha256:a02eb8ab2b8f200179b5f62b59757685ae9987996ae549ccf30f983f40602431"},
-    {file = "frozenlist-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:515e1abc578dd3b275d6a5114030b1330ba044ffba03f94091842852f806f1c1"},
-    {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f0ed05f5079c708fe74bf9027e95125334b6978bf07fd5ab923e9e55e5fbb9d3"},
-    {file = "frozenlist-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca265542ca427bf97aed183c1676e2a9c66942e822b14dc6e5f42e038f92a503"},
-    {file = "frozenlist-1.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:491e014f5c43656da08958808588cc6c016847b4360e327a62cb308c791bd2d9"},
-    {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17ae5cd0f333f94f2e03aaf140bb762c64783935cc764ff9c82dff626089bebf"},
-    {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e78fb68cf9c1a6aa4a9a12e960a5c9dfbdb89b3695197aa7064705662515de2"},
-    {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5655a942f5f5d2c9ed93d72148226d75369b4f6952680211972a33e59b1dfdc"},
-    {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c11b0746f5d946fecf750428a95f3e9ebe792c1ee3b1e96eeba145dc631a9672"},
-    {file = "frozenlist-1.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e66d2a64d44d50d2543405fb183a21f76b3b5fd16f130f5c99187c3fb4e64919"},
-    {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:88f7bc0fcca81f985f78dd0fa68d2c75abf8272b1f5c323ea4a01a4d7a614efc"},
-    {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5833593c25ac59ede40ed4de6d67eb42928cca97f26feea219f21d0ed0959b79"},
-    {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:fec520865f42e5c7f050c2a79038897b1c7d1595e907a9e08e3353293ffc948e"},
-    {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:b826d97e4276750beca7c8f0f1a4938892697a6bcd8ec8217b3312dad6982781"},
-    {file = "frozenlist-1.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ceb6ec0a10c65540421e20ebd29083c50e6d1143278746a4ef6bcf6153171eb8"},
-    {file = "frozenlist-1.4.0-cp38-cp38-win32.whl", hash = "sha256:2b8bcf994563466db019fab287ff390fffbfdb4f905fc77bc1c1d604b1c689cc"},
-    {file = "frozenlist-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:a6c8097e01886188e5be3e6b14e94ab365f384736aa1fca6a0b9e35bd4a30bc7"},
-    {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6c38721585f285203e4b4132a352eb3daa19121a035f3182e08e437cface44bf"},
-    {file = "frozenlist-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a0c6da9aee33ff0b1a451e867da0c1f47408112b3391dd43133838339e410963"},
-    {file = "frozenlist-1.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:93ea75c050c5bb3d98016b4ba2497851eadf0ac154d88a67d7a6816206f6fa7f"},
-    {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f61e2dc5ad442c52b4887f1fdc112f97caeff4d9e6ebe78879364ac59f1663e1"},
-    {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa384489fefeb62321b238e64c07ef48398fe80f9e1e6afeff22e140e0850eef"},
-    {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10ff5faaa22786315ef57097a279b833ecab1a0bfb07d604c9cbb1c4cdc2ed87"},
-    {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:007df07a6e3eb3e33e9a1fe6a9db7af152bbd8a185f9aaa6ece10a3529e3e1c6"},
-    {file = "frozenlist-1.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f4f399d28478d1f604c2ff9119907af9726aed73680e5ed1ca634d377abb087"},
-    {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c5374b80521d3d3f2ec5572e05adc94601985cc526fb276d0c8574a6d749f1b3"},
-    {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ce31ae3e19f3c902de379cf1323d90c649425b86de7bbdf82871b8a2a0615f3d"},
-    {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7211ef110a9194b6042449431e08c4d80c0481e5891e58d429df5899690511c2"},
-    {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:556de4430ce324c836789fa4560ca62d1591d2538b8ceb0b4f68fb7b2384a27a"},
-    {file = "frozenlist-1.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7645a8e814a3ee34a89c4a372011dcd817964ce8cb273c8ed6119d706e9613e3"},
-    {file = "frozenlist-1.4.0-cp39-cp39-win32.whl", hash = "sha256:19488c57c12d4e8095a922f328df3f179c820c212940a498623ed39160bc3c2f"},
-    {file = "frozenlist-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:6221d84d463fb110bdd7619b69cb43878a11d51cbb9394ae3105d082d5199167"},
-    {file = "frozenlist-1.4.0.tar.gz", hash = "sha256:09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"},
+    {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"},
+    {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"},
+    {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"},
+    {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"},
+    {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"},
+    {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"},
+    {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"},
+    {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"},
+    {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"},
+    {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"},
+    {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"},
+    {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"},
+    {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"},
+    {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"},
+    {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"},
+    {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"},
+    {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"},
+    {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"},
+    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"},
+    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"},
+    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"},
+    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"},
+    {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"},
+    {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"},
+    {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"},
+    {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"},
+    {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"},
+    {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"},
+    {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"},
+    {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"},
+    {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"},
+    {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"},
+    {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"},
+    {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"},
+    {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"},
+    {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"},
+    {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"},
+    {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"},
+    {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"},
+    {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"},
+    {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"},
+    {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"},
+    {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"},
+    {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"},
+    {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"},
+    {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"},
+    {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"},
+    {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"},
+    {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"},
+    {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"},
+    {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"},
+    {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"},
+    {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"},
+    {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"},
+    {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"},
+    {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"},
+    {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"},
+    {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"},
+    {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"},
+    {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"},
+    {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"},
+    {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"},
+    {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"},
+    {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"},
+    {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"},
+    {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"},
+    {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"},
+    {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"},
+    {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"},
+    {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"},
+    {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"},
+    {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"},
+    {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"},
+    {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"},
+    {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"},
+    {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"},
+    {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"},
 ]
 
 [[package]]
 name = "identify"
-version = "2.5.26"
+version = "2.5.35"
 description = "File identification library for Python"
 optional = false
 python-versions = ">=3.8"
 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.5.35-py2.py3-none-any.whl", hash = "sha256:c4de0081837b211594f8e877a6b4fad7ca32bbfc1a9307fdd61c28bfe923f13e"},
+    {file = "identify-2.5.35.tar.gz", hash = "sha256:10a7ca245cfcd756a554a7288159f72ff105ad233c7c4b9c6f0f4d108f5f6791"},
 ]
 
 [package.extras]
@@ -362,13 +372,13 @@ license = ["ukkonen"]
 
 [[package]]
 name = "idna"
-version = "3.4"
+version = "3.6"
 description = "Internationalized Domain Names in Applications (IDNA)"
 optional = false
 python-versions = ">=3.5"
 files = [
-    {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"},
-    {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"},
+    {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"},
+    {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"},
 ]
 
 [[package]]
@@ -384,85 +394,101 @@ files = [
 
 [[package]]
 name = "multidict"
-version = "6.0.4"
+version = "6.0.5"
 description = "multidict implementation"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"},
-    {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"},
-    {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"},
-    {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"},
-    {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"},
-    {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"},
-    {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"},
-    {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"},
-    {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"},
-    {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"},
-    {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"},
-    {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"},
-    {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"},
-    {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"},
-    {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"},
-    {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"},
-    {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"},
-    {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"},
-    {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"},
-    {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"},
-    {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"},
-    {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"},
-    {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"},
-    {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"},
-    {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"},
-    {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"},
-    {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"},
-    {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"},
-    {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"},
-    {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"},
-    {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"},
-    {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"},
-    {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"},
-    {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"},
-    {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"},
-    {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"},
-    {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"},
-    {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"},
-    {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"},
-    {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"},
-    {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"},
-    {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"},
-    {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"},
-    {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"},
-    {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"},
-    {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"},
-    {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"},
-    {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"},
-    {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"},
-    {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"},
-    {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"},
-    {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"},
-    {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"},
-    {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"},
-    {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"},
-    {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"},
-    {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"},
-    {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"},
-    {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"},
-    {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"},
-    {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"},
-    {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"},
-    {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"},
-    {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"},
-    {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"},
-    {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"},
-    {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"},
-    {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"},
-    {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"},
-    {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"},
-    {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"},
-    {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"},
-    {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"},
-    {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"},
+    {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"},
+    {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"},
+    {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"},
+    {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"},
+    {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"},
+    {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"},
+    {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"},
+    {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"},
+    {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"},
+    {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"},
+    {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"},
+    {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"},
+    {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"},
+    {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"},
+    {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"},
+    {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"},
+    {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"},
+    {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"},
+    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"},
+    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"},
+    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"},
+    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"},
+    {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"},
+    {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"},
+    {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"},
+    {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"},
+    {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"},
+    {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"},
+    {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"},
+    {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"},
+    {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"},
+    {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"},
+    {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"},
+    {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"},
+    {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"},
+    {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"},
+    {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"},
+    {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"},
+    {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"},
+    {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"},
+    {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"},
+    {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"},
+    {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"},
+    {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"},
+    {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"},
+    {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"},
+    {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"},
+    {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"},
+    {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"},
+    {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"},
+    {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"},
+    {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"},
+    {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"},
+    {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"},
+    {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"},
+    {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"},
+    {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"},
+    {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"},
+    {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"},
+    {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"},
+    {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"},
+    {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"},
+    {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"},
+    {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"},
+    {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"},
+    {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"},
+    {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"},
+    {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"},
+    {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"},
+    {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"},
+    {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"},
+    {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"},
+    {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"},
+    {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"},
+    {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"},
+    {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"},
+    {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"},
+    {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"},
+    {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"},
+    {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"},
+    {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"},
+    {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"},
+    {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"},
+    {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"},
+    {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"},
+    {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"},
+    {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"},
+    {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"},
+    {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"},
+    {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"},
 ]
 
 [[package]]
@@ -481,39 +507,39 @@ setuptools = "*"
 
 [[package]]
 name = "packaging"
-version = "23.1"
+version = "24.0"
 description = "Core utilities for Python packages"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"},
-    {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"},
+    {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"},
+    {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"},
 ]
 
 [[package]]
 name = "platformdirs"
-version = "3.10.0"
+version = "4.2.0"
 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.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"},
+    {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"},
 ]
 
 [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 (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"]
 
 [[package]]
 name = "pluggy"
-version = "1.2.0"
+version = "1.4.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.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"},
+    {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"},
 ]
 
 [package.extras]
@@ -522,13 +548,13 @@ testing = ["pytest", "pytest-benchmark"]
 
 [[package]]
 name = "pre-commit"
-version = "3.3.3"
+version = "3.6.2"
 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.3.3-py2.py3-none-any.whl", hash = "sha256:10badb65d6a38caff29703362271d7dca483d01da88f9d7e05d0b97171c136cb"},
-    {file = "pre_commit-3.3.3.tar.gz", hash = "sha256:a2256f489cd913d575c145132ae196fe335da32d91a8294b7afe6622335dd023"},
+    {file = "pre_commit-3.6.2-py2.py3-none-any.whl", hash = "sha256:ba637c2d7a670c10daedc059f5c49b5bd0aadbccfcd7ec15592cf9665117532c"},
+    {file = "pre_commit-3.6.2.tar.gz", hash = "sha256:c3ef34f463045c88658c5b99f38c1e297abdcc0ff13f98d3370055fbbfabc67e"},
 ]
 
 [package.dependencies]
@@ -540,13 +566,13 @@ virtualenv = ">=20.10.0"
 
 [[package]]
 name = "pytest"
-version = "7.4.0"
+version = "8.1.1"
 description = "pytest: simple powerful testing with Python"
 optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
 files = [
-    {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"},
-    {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"},
+    {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"},
+    {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"},
 ]
 
 [package.dependencies]
@@ -554,29 +580,29 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""}
 exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
 iniconfig = "*"
 packaging = "*"
-pluggy = ">=0.12,<2.0"
-tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""}
+pluggy = ">=1.4,<2.0"
+tomli = {version = ">=1", markers = "python_version < \"3.11\""}
 
 [package.extras]
-testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
+testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
 
 [[package]]
 name = "pytest-asyncio"
-version = "0.21.1"
+version = "0.23.5.post1"
 description = "Pytest support for asyncio"
 optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
 files = [
-    {file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"},
-    {file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b"},
+    {file = "pytest-asyncio-0.23.5.post1.tar.gz", hash = "sha256:b9a8806bea78c21276bc34321bbf234ba1b2ea5b30d9f0ce0f2dea45e4685813"},
+    {file = "pytest_asyncio-0.23.5.post1-py3-none-any.whl", hash = "sha256:30f54d27774e79ac409778889880242b0403d09cabd65b727ce90fe92dd5d80e"},
 ]
 
 [package.dependencies]
-pytest = ">=7.0.0"
+pytest = ">=7.0.0,<9"
 
 [package.extras]
 docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"]
-testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"]
+testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"]
 
 [[package]]
 name = "pytest-cov"
@@ -598,13 +624,13 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale
 
 [[package]]
 name = "pytest-sugar"
-version = "0.9.7"
+version = "1.0.0"
 description = "pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly)."
 optional = false
 python-versions = "*"
 files = [
-    {file = "pytest-sugar-0.9.7.tar.gz", hash = "sha256:f1e74c1abfa55f7241cf7088032b6e378566f16b938f3f08905e2cf4494edd46"},
-    {file = "pytest_sugar-0.9.7-py2.py3-none-any.whl", hash = "sha256:8cb5a4e5f8bbcd834622b0235db9e50432f4cbd71fef55b467fe44e43701e062"},
+    {file = "pytest-sugar-1.0.0.tar.gz", hash = "sha256:6422e83258f5b0c04ce7c632176c7732cab5fdb909cb39cca5c9139f81276c0a"},
+    {file = "pytest_sugar-1.0.0-py3-none-any.whl", hash = "sha256:70ebcd8fc5795dc457ff8b69d266a4e2e8a74ae0c3edc749381c64b5246c8dfd"},
 ]
 
 [package.dependencies]
@@ -617,27 +643,27 @@ dev = ["black", "flake8", "pre-commit"]
 
 [[package]]
 name = "pytest-timeout"
-version = "2.1.0"
+version = "2.3.1"
 description = "pytest plugin to abort hanging tests"
 optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
 files = [
-    {file = "pytest-timeout-2.1.0.tar.gz", hash = "sha256:c07ca07404c612f8abbe22294b23c368e2e5104b521c1790195561f37e1ac3d9"},
-    {file = "pytest_timeout-2.1.0-py3-none-any.whl", hash = "sha256:f6f50101443ce70ad325ceb4473c4255e9d74e3c7cd0ef827309dfa4c0d975c6"},
+    {file = "pytest-timeout-2.3.1.tar.gz", hash = "sha256:12397729125c6ecbdaca01035b9e5239d4db97352320af155b3f5de1ba5165d9"},
+    {file = "pytest_timeout-2.3.1-py3-none-any.whl", hash = "sha256:68188cb703edfc6a18fad98dc25a3c61e9f24d644b0b70f33af545219fc7813e"},
 ]
 
 [package.dependencies]
-pytest = ">=5.0.0"
+pytest = ">=7.0.0"
 
 [[package]]
 name = "python-dotenv"
-version = "1.0.0"
+version = "1.0.1"
 description = "Read key-value pairs from a .env file and set them as environment variables"
 optional = false
 python-versions = ">=3.8"
 files = [
-    {file = "python-dotenv-1.0.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"},
-    {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"},
+    {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"},
+    {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"},
 ]
 
 [package.extras]
@@ -655,7 +681,6 @@ files = [
     {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"},
@@ -663,16 +688,8 @@ files = [
     {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_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"},
-    {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"},
@@ -689,7 +706,6 @@ files = [
     {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"},
@@ -697,7 +713,6 @@ files = [
     {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"},
@@ -705,29 +720,29 @@ files = [
 
 [[package]]
 name = "setuptools"
-version = "68.0.0"
+version = "69.1.1"
 description = "Easily download, build, install, upgrade, and uninstall Python packages"
 optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
 files = [
-    {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"},
-    {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"},
+    {file = "setuptools-69.1.1-py3-none-any.whl", hash = "sha256:02fa291a0471b3a18b2b2481ed902af520c69e8ae0919c13da936542754b4c56"},
+    {file = "setuptools-69.1.1.tar.gz", hash = "sha256:5c0806c7d9af348e6dd3777b4f4dbb42c7ad85b190104837488eab9a7c945cf8"},
 ]
 
 [package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
-testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
-testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
+docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
+testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
+testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
 
 [[package]]
 name = "termcolor"
-version = "2.3.0"
+version = "2.4.0"
 description = "ANSI color formatting for output in terminal"
 optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
 files = [
-    {file = "termcolor-2.3.0-py3-none-any.whl", hash = "sha256:3afb05607b89aed0ffe25202399ee0867ad4d3cb4180d98aaf8eefa6a5f7d475"},
-    {file = "termcolor-2.3.0.tar.gz", hash = "sha256:b5b08f68937f138fe92f6c089b99f1e2da0ae56c52b78bf7075fd95420fd9a5a"},
+    {file = "termcolor-2.4.0-py3-none-any.whl", hash = "sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63"},
+    {file = "termcolor-2.4.0.tar.gz", hash = "sha256:aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a"},
 ]
 
 [package.extras]
@@ -746,105 +761,121 @@ files = [
 
 [[package]]
 name = "virtualenv"
-version = "20.24.2"
+version = "20.25.1"
 description = "Virtual Python Environment builder"
 optional = false
 python-versions = ">=3.7"
 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.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"},
+    {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"},
 ]
 
 [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)", "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 = "yarl"
-version = "1.9.2"
+version = "1.9.4"
 description = "Yet another URL library"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c2ad583743d16ddbdf6bb14b5cd76bf43b0d0006e918809d5d4ddf7bde8dd82"},
-    {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82aa6264b36c50acfb2424ad5ca537a2060ab6de158a5bd2a72a032cc75b9eb8"},
-    {file = "yarl-1.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c0c77533b5ed4bcc38e943178ccae29b9bcf48ffd1063f5821192f23a1bd27b9"},
-    {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee4afac41415d52d53a9833ebae7e32b344be72835bbb589018c9e938045a560"},
-    {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bf345c3a4f5ba7f766430f97f9cc1320786f19584acc7086491f45524a551ac"},
-    {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a96c19c52ff442a808c105901d0bdfd2e28575b3d5f82e2f5fd67e20dc5f4ea"},
-    {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:891c0e3ec5ec881541f6c5113d8df0315ce5440e244a716b95f2525b7b9f3608"},
-    {file = "yarl-1.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3a53ba34a636a256d767c086ceb111358876e1fb6b50dfc4d3f4951d40133d5"},
-    {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:566185e8ebc0898b11f8026447eacd02e46226716229cea8db37496c8cdd26e0"},
-    {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2b0738fb871812722a0ac2154be1f049c6223b9f6f22eec352996b69775b36d4"},
-    {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:32f1d071b3f362c80f1a7d322bfd7b2d11e33d2adf395cc1dd4df36c9c243095"},
-    {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e9fdc7ac0d42bc3ea78818557fab03af6181e076a2944f43c38684b4b6bed8e3"},
-    {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56ff08ab5df8429901ebdc5d15941b59f6253393cb5da07b4170beefcf1b2528"},
-    {file = "yarl-1.9.2-cp310-cp310-win32.whl", hash = "sha256:8ea48e0a2f931064469bdabca50c2f578b565fc446f302a79ba6cc0ee7f384d3"},
-    {file = "yarl-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:50f33040f3836e912ed16d212f6cc1efb3231a8a60526a407aeb66c1c1956dde"},
-    {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:646d663eb2232d7909e6601f1a9107e66f9791f290a1b3dc7057818fe44fc2b6"},
-    {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aff634b15beff8902d1f918012fc2a42e0dbae6f469fce134c8a0dc51ca423bb"},
-    {file = "yarl-1.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a83503934c6273806aed765035716216cc9ab4e0364f7f066227e1aaea90b8d0"},
-    {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b25322201585c69abc7b0e89e72790469f7dad90d26754717f3310bfe30331c2"},
-    {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22a94666751778629f1ec4280b08eb11815783c63f52092a5953faf73be24191"},
-    {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ec53a0ea2a80c5cd1ab397925f94bff59222aa3cf9c6da938ce05c9ec20428d"},
-    {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:159d81f22d7a43e6eabc36d7194cb53f2f15f498dbbfa8edc8a3239350f59fe7"},
-    {file = "yarl-1.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:832b7e711027c114d79dffb92576acd1bd2decc467dec60e1cac96912602d0e6"},
-    {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:95d2ecefbcf4e744ea952d073c6922e72ee650ffc79028eb1e320e732898d7e8"},
-    {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d4e2c6d555e77b37288eaf45b8f60f0737c9efa3452c6c44626a5455aeb250b9"},
-    {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:783185c75c12a017cc345015ea359cc801c3b29a2966c2655cd12b233bf5a2be"},
-    {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:b8cc1863402472f16c600e3e93d542b7e7542a540f95c30afd472e8e549fc3f7"},
-    {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:822b30a0f22e588b32d3120f6d41e4ed021806418b4c9f0bc3048b8c8cb3f92a"},
-    {file = "yarl-1.9.2-cp311-cp311-win32.whl", hash = "sha256:a60347f234c2212a9f0361955007fcf4033a75bf600a33c88a0a8e91af77c0e8"},
-    {file = "yarl-1.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:be6b3fdec5c62f2a67cb3f8c6dbf56bbf3f61c0f046f84645cd1ca73532ea051"},
-    {file = "yarl-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38a3928ae37558bc1b559f67410df446d1fbfa87318b124bf5032c31e3447b74"},
-    {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac9bb4c5ce3975aeac288cfcb5061ce60e0d14d92209e780c93954076c7c4367"},
-    {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3da8a678ca8b96c8606bbb8bfacd99a12ad5dd288bc6f7979baddd62f71c63ef"},
-    {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13414591ff516e04fcdee8dc051c13fd3db13b673c7a4cb1350e6b2ad9639ad3"},
-    {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf74d08542c3a9ea97bb8f343d4fcbd4d8f91bba5ec9d5d7f792dbe727f88938"},
-    {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e7221580dc1db478464cfeef9b03b95c5852cc22894e418562997df0d074ccc"},
-    {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:494053246b119b041960ddcd20fd76224149cfea8ed8777b687358727911dd33"},
-    {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:52a25809fcbecfc63ac9ba0c0fb586f90837f5425edfd1ec9f3372b119585e45"},
-    {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:e65610c5792870d45d7b68c677681376fcf9cc1c289f23e8e8b39c1485384185"},
-    {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:1b1bba902cba32cdec51fca038fd53f8beee88b77efc373968d1ed021024cc04"},
-    {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:662e6016409828ee910f5d9602a2729a8a57d74b163c89a837de3fea050c7582"},
-    {file = "yarl-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:f364d3480bffd3aa566e886587eaca7c8c04d74f6e8933f3f2c996b7f09bee1b"},
-    {file = "yarl-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6a5883464143ab3ae9ba68daae8e7c5c95b969462bbe42e2464d60e7e2698368"},
-    {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5610f80cf43b6202e2c33ba3ec2ee0a2884f8f423c8f4f62906731d876ef4fac"},
-    {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9a4e67ad7b646cd6f0938c7ebfd60e481b7410f574c560e455e938d2da8e0f4"},
-    {file = "yarl-1.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:83fcc480d7549ccebe9415d96d9263e2d4226798c37ebd18c930fce43dfb9574"},
-    {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fcd436ea16fee7d4207c045b1e340020e58a2597301cfbcfdbe5abd2356c2fb"},
-    {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84e0b1599334b1e1478db01b756e55937d4614f8654311eb26012091be109d59"},
-    {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3458a24e4ea3fd8930e934c129b676c27452e4ebda80fbe47b56d8c6c7a63a9e"},
-    {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:838162460b3a08987546e881a2bfa573960bb559dfa739e7800ceeec92e64417"},
-    {file = "yarl-1.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4e2d08f07a3d7d3e12549052eb5ad3eab1c349c53ac51c209a0e5991bbada78"},
-    {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:de119f56f3c5f0e2fb4dee508531a32b069a5f2c6e827b272d1e0ff5ac040333"},
-    {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:149ddea5abf329752ea5051b61bd6c1d979e13fbf122d3a1f9f0c8be6cb6f63c"},
-    {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:674ca19cbee4a82c9f54e0d1eee28116e63bc6fd1e96c43031d11cbab8b2afd5"},
-    {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:9b3152f2f5677b997ae6c804b73da05a39daa6a9e85a512e0e6823d81cdad7cc"},
-    {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5415d5a4b080dc9612b1b63cba008db84e908b95848369aa1da3686ae27b6d2b"},
-    {file = "yarl-1.9.2-cp38-cp38-win32.whl", hash = "sha256:f7a3d8146575e08c29ed1cd287068e6d02f1c7bdff8970db96683b9591b86ee7"},
-    {file = "yarl-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:63c48f6cef34e6319a74c727376e95626f84ea091f92c0250a98e53e62c77c72"},
-    {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75df5ef94c3fdc393c6b19d80e6ef1ecc9ae2f4263c09cacb178d871c02a5ba9"},
-    {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c027a6e96ef77d401d8d5a5c8d6bc478e8042f1e448272e8d9752cb0aff8b5c8"},
-    {file = "yarl-1.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3b078dbe227f79be488ffcfc7a9edb3409d018e0952cf13f15fd6512847f3f7"},
-    {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59723a029760079b7d991a401386390c4be5bfec1e7dd83e25a6a0881859e716"},
-    {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b03917871bf859a81ccb180c9a2e6c1e04d2f6a51d953e6a5cdd70c93d4e5a2a"},
-    {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1012fa63eb6c032f3ce5d2171c267992ae0c00b9e164efe4d73db818465fac3"},
-    {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74dcbfe780e62f4b5a062714576f16c2f3493a0394e555ab141bf0d746bb955"},
-    {file = "yarl-1.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c56986609b057b4839968ba901944af91b8e92f1725d1a2d77cbac6972b9ed1"},
-    {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c315df3293cd521033533d242d15eab26583360b58f7ee5d9565f15fee1bef4"},
-    {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b7232f8dfbd225d57340e441d8caf8652a6acd06b389ea2d3222b8bc89cbfca6"},
-    {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:53338749febd28935d55b41bf0bcc79d634881195a39f6b2f767870b72514caf"},
-    {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:066c163aec9d3d073dc9ffe5dd3ad05069bcb03fcaab8d221290ba99f9f69ee3"},
-    {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8288d7cd28f8119b07dd49b7230d6b4562f9b61ee9a4ab02221060d21136be80"},
-    {file = "yarl-1.9.2-cp39-cp39-win32.whl", hash = "sha256:b124e2a6d223b65ba8768d5706d103280914d61f5cae3afbc50fc3dfcc016623"},
-    {file = "yarl-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:61016e7d582bc46a5378ffdd02cd0314fb8ba52f40f9cf4d9a5e7dbef88dee18"},
-    {file = "yarl-1.9.2.tar.gz", hash = "sha256:04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"},
+    {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"},
+    {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"},
+    {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"},
+    {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"},
+    {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"},
+    {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"},
+    {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"},
+    {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"},
+    {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"},
+    {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"},
+    {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"},
+    {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"},
+    {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"},
+    {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"},
+    {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"},
+    {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"},
+    {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"},
+    {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"},
+    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"},
+    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"},
+    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"},
+    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"},
+    {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"},
+    {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"},
+    {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"},
+    {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"},
+    {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"},
+    {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"},
+    {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"},
+    {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"},
+    {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"},
+    {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"},
+    {file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"},
+    {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"},
+    {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"},
+    {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"},
+    {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"},
+    {file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"},
+    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"},
+    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"},
+    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"},
+    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"},
+    {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"},
+    {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"},
+    {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"},
+    {file = "yarl-1.9.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63b20738b5aac74e239622d2fe30df4fca4942a86e31bf47a81a0e94c14df94f"},
+    {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d7f7de27b8944f1fee2c26a88b4dabc2409d2fea7a9ed3df79b67277644e17"},
+    {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c74018551e31269d56fab81a728f683667e7c28c04e807ba08f8c9e3bba32f14"},
+    {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca06675212f94e7a610e85ca36948bb8fc023e458dd6c63ef71abfd482481aa5"},
+    {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aef935237d60a51a62b86249839b51345f47564208c6ee615ed2a40878dccdd"},
+    {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b134fd795e2322b7684155b7855cc99409d10b2e408056db2b93b51a52accc7"},
+    {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d25039a474c4c72a5ad4b52495056f843a7ff07b632c1b92ea9043a3d9950f6e"},
+    {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec"},
+    {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:957b4774373cf6f709359e5c8c4a0af9f6d7875db657adb0feaf8d6cb3c3964c"},
+    {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d7eeb6d22331e2fd42fce928a81c697c9ee2d51400bd1a28803965883e13cead"},
+    {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6a962e04b8f91f8c4e5917e518d17958e3bdee71fd1d8b88cdce74dd0ebbf434"},
+    {file = "yarl-1.9.4-cp37-cp37m-win32.whl", hash = "sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749"},
+    {file = "yarl-1.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4d7a90a92e528aadf4965d685c17dacff3df282db1121136c382dc0b6014d2"},
+    {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ec61d826d80fc293ed46c9dd26995921e3a82146feacd952ef0757236fc137be"},
+    {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8be9e837ea9113676e5754b43b940b50cce76d9ed7d2461df1af39a8ee674d9f"},
+    {file = "yarl-1.9.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bef596fdaa8f26e3d66af846bbe77057237cb6e8efff8cd7cc8dff9a62278bbf"},
+    {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d47552b6e52c3319fede1b60b3de120fe83bde9b7bddad11a69fb0af7db32f1"},
+    {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84fc30f71689d7fc9168b92788abc977dc8cefa806909565fc2951d02f6b7d57"},
+    {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4aa9741085f635934f3a2583e16fcf62ba835719a8b2b28fb2917bb0537c1dfa"},
+    {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:206a55215e6d05dbc6c98ce598a59e6fbd0c493e2de4ea6cc2f4934d5a18d130"},
+    {file = "yarl-1.9.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07574b007ee20e5c375a8fe4a0789fad26db905f9813be0f9fef5a68080de559"},
+    {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a2e2433eb9344a163aced6a5f6c9222c0786e5a9e9cac2c89f0b28433f56e23"},
+    {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6ad6d10ed9b67a382b45f29ea028f92d25bc0bc1daf6c5b801b90b5aa70fb9ec"},
+    {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6fe79f998a4052d79e1c30eeb7d6c1c1056ad33300f682465e1b4e9b5a188b78"},
+    {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a825ec844298c791fd28ed14ed1bffc56a98d15b8c58a20e0e08c1f5f2bea1be"},
+    {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8619d6915b3b0b34420cf9b2bb6d81ef59d984cb0fde7544e9ece32b4b3043c3"},
+    {file = "yarl-1.9.4-cp38-cp38-win32.whl", hash = "sha256:686a0c2f85f83463272ddffd4deb5e591c98aac1897d65e92319f729c320eece"},
+    {file = "yarl-1.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:a00862fb23195b6b8322f7d781b0dc1d82cb3bcac346d1e38689370cc1cc398b"},
+    {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27"},
+    {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1"},
+    {file = "yarl-1.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91"},
+    {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b"},
+    {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5"},
+    {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34"},
+    {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136"},
+    {file = "yarl-1.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7"},
+    {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e"},
+    {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4"},
+    {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec"},
+    {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c"},
+    {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0"},
+    {file = "yarl-1.9.4-cp39-cp39-win32.whl", hash = "sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575"},
+    {file = "yarl-1.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15"},
+    {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"},
+    {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"},
 ]
 
 [package.dependencies]
diff --git a/pyproject.toml b/pyproject.toml
index c8f4801..73f6dcf 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,10 +1,14 @@
-[tool.isort]
-profile = "black"
-line_length = 88
+[tool.ruff]
+target-version = "py311"
+fix = true
+line-length = 88
 
-[tool.black]
-line_length = 88
-target_version = ["py311"]
+[tool.ruff.lint]
+select = ["A", "ARG", "ASYNC", "B", "BLE", "C", "C4", "E", "F", "FA", "I", "INT", "N", "PIE", "PTH", "RUF", "SIM", "TCH", "TD", "W", "YTT"]
+ignore = ["B008", "B904", "B905", "TD002", "TD003", "TD004", "RUF012"]
+
+[tool.ruff.lint.isort]
+order-by-type = false
 
 [tool.coverage.run]
 branch = true
@@ -14,7 +18,7 @@ source = ["aiopvpc"]
 source = ["aiopvpc/"]
 
 [tool.coverage.report]
-fail_under = 75
+fail_under = 90
 skip_covered = true
 show_missing = true
 exclude_lines = [
@@ -40,7 +44,7 @@ markers = [
 
 [tool.poetry]
 name = "aiopvpc"
-version = "4.2.2"
+version = "4.3.0"
 description = "Retrieval of Spanish Electricity hourly prices (PVPC)"
 authors = ["Eugenio Panadero <eugenio.panadero@gmail.com>"]
 license = "MIT"


Test patch:
diff --git a/tests/api_examples/PRICES_ESIOS_1001_2023_01_06.json b/tests/api_examples/PRICES_ESIOS_1001_2023_01_06.json
deleted file mode 100644
index 20ad8af..0000000
--- a/tests/api_examples/PRICES_ESIOS_1001_2023_01_06.json
+++ /dev/null
@@ -1,1007 +0,0 @@
-{
-  "indicator": {
-    "name": "Término de facturación de energía activa del PVPC 2.0TD",
-    "short_name": "PVPC T. 2.0TD",
-    "id": 1001,
-    "composited": false,
-    "step_type": "linear",
-    "disaggregated": true,
-    "magnitud": [
-      {
-        "name": "Precio",
-        "id": 23
-      }
-    ],
-    "tiempo": [
-      {
-        "name": "Hora",
-        "id": 4
-      }
-    ],
-    "geos": [
-      {
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      }
-    ],
-    "values_updated_at": "2023-01-05T20:17:31.000+01:00",
-    "values": [
-      {
-        "value": 159.69,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 159.69,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 159.69,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 159.69,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 159.69,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 155.71,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 155.71,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 155.71,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 155.71,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 155.71,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 154.41,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 154.41,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 154.41,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 154.41,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 154.41,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 134.02,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 134.02,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 134.02,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 134.02,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 134.02,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 140.02,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 140.02,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 140.02,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 140.02,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 140.02,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 154.05,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 154.05,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 154.05,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 154.05,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 154.05,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 163.15,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 163.15,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 163.15,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 163.15,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 163.15,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 180.5,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 180.5,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 180.5,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 180.5,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 180.5,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 174.9,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 174.9,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 174.9,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 174.9,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 174.9,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 166.47,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 166.47,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 166.47,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 166.47,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 166.47,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 152.3,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 152.3,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 152.3,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 152.3,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 152.3,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 144.54,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 144.54,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 144.54,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 144.54,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 144.54,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 132.08,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 132.08,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 132.08,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 132.08,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 132.08,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 119.6,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 119.6,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 119.6,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 119.6,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 119.6,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 108.74,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 108.74,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 108.74,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 108.74,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 108.74,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 123.79,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 123.79,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 123.79,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 123.79,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 123.79,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 166.41,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 166.41,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 166.41,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 166.41,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 166.41,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 173.49,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 173.49,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 173.49,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 173.49,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 173.49,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 186.17,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 186.17,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 186.17,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 186.17,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 186.17,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 186.11,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 186.11,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 186.11,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 186.11,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 186.11,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 178.45,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 178.45,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 178.45,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 178.45,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 178.45,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 139.37,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 129.35,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 129.35,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 129.35,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 129.35,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 129.35,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      }
-    ]
-  }
-}
diff --git a/tests/api_examples/PRICES_ESIOS_10211_2023_01_06.json b/tests/api_examples/PRICES_ESIOS_10211_2023_01_06.json
deleted file mode 100644
index c8da476..0000000
--- a/tests/api_examples/PRICES_ESIOS_10211_2023_01_06.json
+++ /dev/null
@@ -1,223 +0,0 @@
-{
-  "indicator": {
-    "name": "Precio medio horario final suma de componentes",
-    "short_name": "Precio medio horario final suma",
-    "id": 10211,
-    "composited": true,
-    "step_type": "linear",
-    "disaggregated": false,
-    "magnitud": [
-      {
-        "name": "Precio",
-        "id": 23
-      }
-    ],
-    "tiempo": [
-      {
-        "name": "Hora",
-        "id": 4
-      }
-    ],
-    "geos": [
-      {
-        "geo_id": 8741,
-        "geo_name": "Península"
-      }
-    ],
-    "values_updated_at": "2023-01-06T07:51:43.000+01:00",
-    "values": [
-      {
-        "value": 119.08,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 116.05,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 111.12,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 99.62,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 95.07,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 99.87,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 111.38,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 124.47,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 135.46,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 132.25,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 127.49,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 116.59,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 110.15,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 99.38,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 89.95,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 80.68,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 91.75,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 125.12,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 129.99,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 138.82,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 138.75,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 133.12,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 102.08,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 94.03,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      }
-    ]
-  }
-}
diff --git a/tests/api_examples/PRICES_ESIOS_1739_2023_01_06.json b/tests/api_examples/PRICES_ESIOS_1739_2023_01_06.json
deleted file mode 100644
index abd3266..0000000
--- a/tests/api_examples/PRICES_ESIOS_1739_2023_01_06.json
+++ /dev/null
@@ -1,223 +0,0 @@
-{
-  "indicator": {
-    "name": "Precio de la energía excedentaria del autoconsumo para el mecanismo de compensación simplificada (PVPC)",
-    "short_name": "Precio de la energía excedentaria",
-    "id": 1739,
-    "composited": false,
-    "step_type": "linear",
-    "disaggregated": false,
-    "magnitud": [
-      {
-        "name": "Precio",
-        "id": 23
-      }
-    ],
-    "tiempo": [
-      {
-        "name": "Hora",
-        "id": 4
-      }
-    ],
-    "geos": [
-      {
-        "geo_id": 3,
-        "geo_name": "España"
-      }
-    ],
-    "values_updated_at": "2023-01-05T20:17:31.000+01:00",
-    "values": [
-      {
-        "value": 105.6,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 99.45,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 95.99,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 80.63,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 75.05,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 80.3,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 96.71,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 106.21,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 120.56,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 123.04,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 118.78,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 109.0,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 102.44,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 89.49,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 79.65,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 69.53,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 80.31,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 120.47,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 127.74,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 136.99,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 136.99,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 131.26,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 99.43,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      },
-      {
-        "value": 91.02,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 3,
-        "geo_name": "España"
-      }
-    ]
-  }
-}
diff --git a/tests/api_examples/PRICES_ESIOS_1900_2023_01_06.json b/tests/api_examples/PRICES_ESIOS_1900_2023_01_06.json
deleted file mode 100644
index e754eb0..0000000
--- a/tests/api_examples/PRICES_ESIOS_1900_2023_01_06.json
+++ /dev/null
@@ -1,1007 +0,0 @@
-{
-  "indicator": {
-    "name": "Desglose peaje por defecto 2.0TD excedente o déficit de la liquidación del mecanismo de ajuste de costes de producción",
-    "short_name": "2.0TD Excedente o déficit ajuste liquidación",
-    "id": 1900,
-    "composited": false,
-    "step_type": "linear",
-    "disaggregated": true,
-    "magnitud": [
-      {
-        "name": "Precio",
-        "id": 23
-      }
-    ],
-    "tiempo": [
-      {
-        "name": "Hora",
-        "id": 4
-      }
-    ],
-    "geos": [
-      {
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      }
-    ],
-    "values_updated_at": "2023-01-05T20:17:31.000+01:00",
-    "values": [
-      {
-        "value": 7.21,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 7.21,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 7.21,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 7.21,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 7.21,
-        "datetime": "2023-01-06T00:00:00.000+01:00",
-        "datetime_utc": "2023-01-05T23:00:00Z",
-        "tz_time": "2023-01-05T23:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 6.11,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 6.11,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 6.11,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 6.11,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 6.11,
-        "datetime": "2023-01-06T01:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T00:00:00Z",
-        "tz_time": "2023-01-06T00:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 6.57,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 6.57,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 6.57,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 6.57,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 6.57,
-        "datetime": "2023-01-06T02:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T01:00:00Z",
-        "tz_time": "2023-01-06T01:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 5.52,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 5.52,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 5.52,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 5.52,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 5.52,
-        "datetime": "2023-01-06T03:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T02:00:00Z",
-        "tz_time": "2023-01-06T02:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 5.66,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 5.66,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 5.66,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 5.66,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 5.66,
-        "datetime": "2023-01-06T04:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T03:00:00Z",
-        "tz_time": "2023-01-06T03:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 5.73,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 5.73,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 5.73,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 5.73,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 5.73,
-        "datetime": "2023-01-06T05:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T04:00:00Z",
-        "tz_time": "2023-01-06T04:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 5.56,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 5.56,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 5.56,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 5.56,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 5.56,
-        "datetime": "2023-01-06T06:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T05:00:00Z",
-        "tz_time": "2023-01-06T05:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 5.3,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 5.3,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 5.3,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 5.3,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 5.3,
-        "datetime": "2023-01-06T07:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T06:00:00Z",
-        "tz_time": "2023-01-06T06:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 5.12,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 5.12,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 5.12,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 5.12,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 5.12,
-        "datetime": "2023-01-06T08:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T07:00:00Z",
-        "tz_time": "2023-01-06T07:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 3.44,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 3.44,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 3.44,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 3.44,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 3.44,
-        "datetime": "2023-01-06T09:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T08:00:00Z",
-        "tz_time": "2023-01-06T08:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 2.65,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 2.65,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 2.65,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 2.65,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 2.65,
-        "datetime": "2023-01-06T10:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T09:00:00Z",
-        "tz_time": "2023-01-06T09:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 2.29,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 2.29,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 2.29,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 2.29,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 2.29,
-        "datetime": "2023-01-06T11:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T10:00:00Z",
-        "tz_time": "2023-01-06T10:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 2.3,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 2.3,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 2.3,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 2.3,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 2.3,
-        "datetime": "2023-01-06T12:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T11:00:00Z",
-        "tz_time": "2023-01-06T11:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 2.1,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 2.1,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 2.1,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 2.1,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 2.1,
-        "datetime": "2023-01-06T13:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T12:00:00Z",
-        "tz_time": "2023-01-06T12:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 1.35,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 1.35,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 1.35,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 1.35,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 1.35,
-        "datetime": "2023-01-06T14:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T13:00:00Z",
-        "tz_time": "2023-01-06T13:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 0.66,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 0.66,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 0.66,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 0.66,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 0.66,
-        "datetime": "2023-01-06T15:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T14:00:00Z",
-        "tz_time": "2023-01-06T14:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 1.07,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 1.07,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 1.07,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 1.07,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 1.07,
-        "datetime": "2023-01-06T16:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T15:00:00Z",
-        "tz_time": "2023-01-06T15:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 2.15,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 2.15,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 2.15,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 2.15,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 2.15,
-        "datetime": "2023-01-06T17:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T16:00:00Z",
-        "tz_time": "2023-01-06T16:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 2.08,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 2.08,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 2.08,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 2.08,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 2.08,
-        "datetime": "2023-01-06T18:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T17:00:00Z",
-        "tz_time": "2023-01-06T17:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 4.02,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 4.02,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 4.02,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 4.02,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 4.02,
-        "datetime": "2023-01-06T19:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T18:00:00Z",
-        "tz_time": "2023-01-06T18:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 3.99,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 3.99,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 3.99,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 3.99,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 3.99,
-        "datetime": "2023-01-06T20:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T19:00:00Z",
-        "tz_time": "2023-01-06T19:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 3.05,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 3.05,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 3.05,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 3.05,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 3.05,
-        "datetime": "2023-01-06T21:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T20:00:00Z",
-        "tz_time": "2023-01-06T20:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 2.33,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 2.33,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 2.33,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 2.33,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 2.33,
-        "datetime": "2023-01-06T22:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T21:00:00Z",
-        "tz_time": "2023-01-06T21:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      },
-      {
-        "value": 1.63,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8741,
-        "geo_name": "Península"
-      },
-      {
-        "value": 1.63,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8742,
-        "geo_name": "Canarias"
-      },
-      {
-        "value": 1.63,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8743,
-        "geo_name": "Baleares"
-      },
-      {
-        "value": 1.63,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8744,
-        "geo_name": "Ceuta"
-      },
-      {
-        "value": 1.63,
-        "datetime": "2023-01-06T23:00:00.000+01:00",
-        "datetime_utc": "2023-01-06T22:00:00Z",
-        "tz_time": "2023-01-06T22:00:00.000Z",
-        "geo_id": 8745,
-        "geo_name": "Melilla"
-      }
-    ]
-  }
-}
diff --git a/tests/conftest.py b/tests/conftest.py
index 694a9ac..bbabaf6 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -7,6 +7,7 @@
 import pathlib
 import zoneinfo
 from datetime import date, datetime, timedelta
+from typing import TYPE_CHECKING
 
 from aiopvpc.const import (
     ESIOS_INJECTION,
@@ -16,7 +17,9 @@
     ESIOS_PVPC,
     KEY_PVPC,
 )
-from aiopvpc.pvpc_data import EsiosApiData, PVPCData
+
+if TYPE_CHECKING:
+    from aiopvpc.pvpc_data import EsiosApiData, PVPCData
 
 TEST_EXAMPLES_PATH = pathlib.Path(__file__).parent / "api_examples"
 TZ_TEST = zoneinfo.ZoneInfo("Atlantic/Canary")
@@ -28,17 +31,13 @@
 _FIXTURE_ESIOS_PVPC_2021_10_30 = "PRICES_ESIOS_1001_2021_10_30.json"
 _FIXTURE_ESIOS_PVPC_2021_10_31 = "PRICES_ESIOS_1001_2021_10_31.json"
 _FIXTURE_ESIOS_PVPC_2021_06_01 = "PRICES_ESIOS_1001_2021_06_01.json"
-_FIXTURE_ESIOS_PVPC_2023_01_06 = "PRICES_ESIOS_1001_2023_01_06.json"
 _FIXTURE_ESIOS_PVPC_2024_03_09 = "PRICES_ESIOS_1001_2024_03_09.json"
 _FIXTURE_ESIOS_INJECTION_2021_10_30 = "PRICES_ESIOS_1739_2021_10_30.json"
 _FIXTURE_ESIOS_INJECTION_2021_10_31 = "PRICES_ESIOS_1739_2021_10_31.json"
-_FIXTURE_ESIOS_INJECTION_2023_01_06 = "PRICES_ESIOS_1739_2023_01_06.json"
 _FIXTURE_ESIOS_INJECTION_2024_03_09 = "PRICES_ESIOS_1739_2024_03_09.json"
 _FIXTURE_ESIOS_OMIE_2021_10_30 = "PRICES_ESIOS_10211_2021_10_30.json"
 _FIXTURE_ESIOS_OMIE_2021_10_31 = "PRICES_ESIOS_10211_2021_10_31.json"
-_FIXTURE_ESIOS_OMIE_2023_01_06 = "PRICES_ESIOS_10211_2023_01_06.json"
 _FIXTURE_ESIOS_OMIE_2024_03_09 = "PRICES_ESIOS_10211_2024_03_09.json"
-_FIXTURE_ESIOS_MAG_2023_01_06 = "PRICES_ESIOS_1900_2023_01_06.json"
 _FIXTURE_ESIOS_MAG_2024_03_09 = "PRICES_ESIOS_1900_2024_03_09.json"
 _FIXTURE_ESIOS_ADJUSTMENT_2024_03_09 = "PRICES_ESIOS_2108_2024_03_09.json"
 
@@ -83,23 +82,19 @@ def __init__(self, status=200, exc=None):
                 date(2021, 10, 30): load_fixture(_FIXTURE_ESIOS_PVPC_2021_10_30),
                 date(2021, 10, 31): load_fixture(_FIXTURE_ESIOS_PVPC_2021_10_31),
                 date(2021, 6, 1): load_fixture(_FIXTURE_ESIOS_PVPC_2021_06_01),
-                date(2023, 1, 6): load_fixture(_FIXTURE_ESIOS_PVPC_2023_01_06),
                 date(2024, 3, 9): load_fixture(_FIXTURE_ESIOS_PVPC_2024_03_09),
             },
             ESIOS_INJECTION: {
                 date(2021, 10, 30): load_fixture(_FIXTURE_ESIOS_INJECTION_2021_10_30),
                 date(2021, 10, 31): load_fixture(_FIXTURE_ESIOS_INJECTION_2021_10_31),
-                date(2023, 1, 6): load_fixture(_FIXTURE_ESIOS_INJECTION_2023_01_06),
                 date(2024, 3, 9): load_fixture(_FIXTURE_ESIOS_INJECTION_2024_03_09),
             },
             ESIOS_MAG: {
-                date(2023, 1, 6): load_fixture(_FIXTURE_ESIOS_MAG_2023_01_06),
                 date(2024, 3, 9): load_fixture(_FIXTURE_ESIOS_MAG_2024_03_09),
             },
             ESIOS_OMIE: {
                 date(2021, 10, 30): load_fixture(_FIXTURE_ESIOS_OMIE_2021_10_30),
                 date(2021, 10, 31): load_fixture(_FIXTURE_ESIOS_OMIE_2021_10_31),
-                date(2023, 1, 6): load_fixture(_FIXTURE_ESIOS_OMIE_2023_01_06),
                 date(2024, 3, 9): load_fixture(_FIXTURE_ESIOS_OMIE_2024_03_09),
             },
             ESIOS_MARKET_ADJUSTMENT: {
@@ -155,7 +150,7 @@ async def run_h_step(
             "[Calls=%d]-> start=%s --> %s -> %s (%d prices)",
             mock_session.call_count,
             start,
-            list(current_prices)[0].strftime("%Y-%m-%d %Hh"),
+            next(iter(current_prices)).strftime("%Y-%m-%d %Hh"),
             list(current_prices)[-1].strftime("%Y-%m-%d %Hh"),
             len(current_prices),
         )
diff --git a/tests/test_ha_helpers.py b/tests/test_ha_helpers.py
index bc63027..de0d86f 100644
--- a/tests/test_ha_helpers.py
+++ b/tests/test_ha_helpers.py
@@ -109,7 +109,7 @@ async def test_disable_sensors():
 
 @pytest.mark.asyncio
 async def test_check_api_token():
-    start = datetime(2023, 1, 6, 19, tzinfo=UTC_TZ)
+    start = datetime(2024, 3, 9, 19, tzinfo=UTC_TZ)
     mock_session = MockAsyncSession(status=401)
     pvpc_data = PVPCData(session=mock_session)
     token_ok = await pvpc_data.check_api_token(start, "bad_token")
diff --git a/tests/test_pvpc_parsing.py b/tests/test_pvpc_parsing.py
index 23453e6..60cfab2 100644
--- a/tests/test_pvpc_parsing.py
+++ b/tests/test_pvpc_parsing.py
@@ -25,8 +25,8 @@
     (
         ("2021-06-01 09:00:00", "esios", REFERENCE_TZ, 24, 1, 24, True),
         ("2021-06-01 09:00:00", "esios", TZ_TEST, 24, 1, 24, True),
-        ("2023-01-06 09:00:00", "esios", REFERENCE_TZ, 24, 1, 24, True),
-        ("2023-01-06 09:00:00", "esios", TZ_TEST, 24, 1, 24, True),
+        ("2024-03-09 09:00:00", "esios", REFERENCE_TZ, 24, 1, 24, True),
+        ("2024-03-09 09:00:00", "esios", TZ_TEST, 24, 1, 24, True),
         ("2021-10-30 00:00:00+08:00", "esios_public", TZ_TEST, 0, 1, 0, False),
         ("2021-10-30 00:00:00", "esios_public", TZ_TEST, 24, 1, 24, True),
         ("2021-10-31 00:00:00", "esios_public", TZ_TEST, 25, 1, 25, True),
@@ -120,7 +120,7 @@ async def test_price_sensor_attributes():
         current_price = pvpc_data.states[key]
         sensor_attrs = pvpc_data.sensor_attributes[key]
         assert sensor_attrs["sensor_id"] == key
-        assert sensor_attrs["data_id"] == SENSOR_KEY_TO_DATAID[key]
+        assert sensor_attrs["data_id"] == SENSOR_KEY_TO_DATAID.get(key, "composed")
         assert sensor_attrs["price_12h"] == current_price
         prices_ahead = [sensor_attrs[f"price_{h:02}h"] for h in range(13, 24)]
         assert len(prices_ahead) == 11
diff --git a/tests/test_real_api_calls.py b/tests/test_real_api_calls.py
index 4aaeed8..f32a949 100644
--- a/tests/test_real_api_calls.py
+++ b/tests/test_real_api_calls.py
@@ -36,8 +36,8 @@ async def _get_real_data(
 @pytest.mark.parametrize(
     "data_source, timezone, num_sensors",
     (
-        ("esios", REFERENCE_TZ, 4),
-        ("esios", TZ_TEST, 4),
+        ("esios", REFERENCE_TZ, 6),
+        ("esios", TZ_TEST, 6),
         ("esios_public", REFERENCE_TZ, 1),
         ("esios_public", TZ_TEST, 1),
     ),