From 70f74ad1f8862e648624c3504a09178f5b6b62e9 Mon Sep 17 00:00:00 2001 From: Donghoon Park Date: Sat, 6 Dec 2025 10:02:09 +0900 Subject: [PATCH 1/4] fixed ci and add misc features to heatmap --- .github/workflows/tests.yml | 4 +- examples/demo.py | 170 ++++++++++++++++++++---------- fieldview/layers/heatmap_layer.py | 11 ++ fieldview/layers/text_layer.py | 59 +++++++---- 4 files changed, 167 insertions(+), 77 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b12ea79..237a0fc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,9 +2,9 @@ name: CI Tests on: push: - branches: [ main ] + branches: [ master ] pull_request: - branches: [ main ] + branches: [ master ] jobs: tests: diff --git a/examples/demo.py b/examples/demo.py index 2f33677..1488e0b 100644 --- a/examples/demo.py +++ b/examples/demo.py @@ -15,10 +15,14 @@ QGroupBox, QFormLayout, QSpinBox, QDoubleSpinBox, QComboBox, QCheckBox, QPushButton, QTableWidget, QTableView, QTableWidgetItem, QHeaderView, QFileDialog, QLabel, QTreeWidget, - QTreeWidgetItem, QGraphicsEllipseItem, QGraphicsLineItem, QAbstractItemView) + QTreeWidgetItem, QGraphicsEllipseItem, QGraphicsLineItem, QAbstractItemView, + QLineEdit, QColorDialog) from qtpy.QtGui import QPainter, QBrush, QPen, QColor, QPolygonF, QAction, QIcon, QPixmap, QStandardItemModel, QStandardItem, QFont, QPainterPath from qtpy.QtCore import Qt, QTimer, QPointF, QRectF, QAbstractTableModel, QModelIndex, Signal +# Import QtAds +import PySide6QtAds as ads + # Add project root to sys.path sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) @@ -64,7 +68,6 @@ def add_float_property(self, parent, name, value, setter, min_val=0.0, max_val=1 spin.setSingleStep(step) spin.setDecimals(decimals) spin.setValue(value) - # Remove frame for cleaner look in tree spin.setFrame(False) spin.valueChanged.connect(setter) @@ -93,7 +96,6 @@ def add_bool_property(self, parent, name, value, setter): check.setChecked(value) check.toggled.connect(setter) - # Center the checkbox widget = QWidget() layout = QHBoxLayout(widget) layout.setContentsMargins(0,0,0,0) @@ -116,6 +118,39 @@ def add_enum_property(self, parent, name, value, options, setter): self.setItemWidget(item, 1, combo) return item + + def add_string_property(self, parent, name, value, setter): + item = QTreeWidgetItem(parent) + item.setText(0, name) + + edit = QLineEdit(value) + edit.setFrame(False) + edit.textChanged.connect(setter) + + self.setItemWidget(item, 1, edit) + return item + + def add_color_property(self, parent, name, value, setter): + item = QTreeWidgetItem(parent) + item.setText(0, name) + + btn = QPushButton() + btn.setFlat(True) + + def update_btn_color(color): + btn.setStyleSheet(f"background-color: {color.name()}; border: 1px solid gray;") + + update_btn_color(value) + + def pick_color(): + color = QColorDialog.getColor(value, None, f"Select {name}") + if color.isValid(): + update_btn_color(color) + setter(color) + + btn.clicked.connect(pick_color) + self.setItemWidget(item, 1, btn) + return item def add_action_property(self, parent, name, button_text, callback): item = QTreeWidgetItem(parent) @@ -269,8 +304,8 @@ def mousePressEvent(self, event): class DemoApp(QMainWindow): def __init__(self): super().__init__() - self.setWindowTitle("FieldView Demo") - self.resize(1400, 900) + self.setWindowTitle("FieldView Demo (QtAds)") + self.resize(1600, 900) # 1. Setup Core self.data_container = DataContainer() @@ -282,15 +317,21 @@ def __init__(self): self._using_auto_range = True - # 3. Setup View + # 3. Setup Dock Manager + self.dock_manager = ads.CDockManager(self) + + # 4. Setup View Dock self.view = QGraphicsView(self.scene) self.view.setRenderHint(QPainter.Antialiasing) self.view.setDragMode(QGraphicsView.ScrollHandDrag) self.view.setTransformationAnchor(QGraphicsView.ViewportAnchor.AnchorUnderMouse) self.view.setResizeAnchor(QGraphicsView.ViewportAnchor.AnchorUnderMouse) - self.setCentralWidget(self.view) - # 4. Initialize Polygon State (Before Properties Dock) + self.dock_view = ads.CDockWidget("Viewport") + self.dock_view.setWidget(self.view) + self.dock_manager.addDockWidget(ads.DockWidgetArea.CenterDockWidgetArea, self.dock_view) + + # 5. Initialize Polygon State self.polygon_handles = [] self.polygon_edges = [] self.heatmap_polygon = QPolygonF([ @@ -300,14 +341,17 @@ def __init__(self): QPointF(-450, 250) ]) self.update_heatmap_polygon() - self.toggle_polygon_handles(False) # Hidden by default + self.toggle_polygon_handles(False) - # 5. Setup Properties Dock + # 6. Setup Other Docks self.setup_properties_dock() + self.setup_data_dock() + self.setup_simulation_dock() + self.setup_color_dock() self.data_container.dataChanged.connect(self._handle_data_changed) - # 6. Initial Data + # 7. Initial Data self.generate_data() def setup_layers(self): @@ -339,9 +383,7 @@ def setup_layers(self): self.scene.addItem(self.label_layer) def setup_properties_dock(self): - dock = QDockWidget("Inspector", self) - dock.setAllowedAreas(Qt.DockWidgetArea.LeftDockWidgetArea | Qt.DockWidgetArea.RightDockWidgetArea) - + self.dock_props = ads.CDockWidget("Inspector") widget = QWidget() layout = QVBoxLayout(widget) @@ -350,31 +392,22 @@ def setup_properties_dock(self): self.lbl_render_time.setAlignment(Qt.AlignmentFlag.AlignCenter) layout.addWidget(self.lbl_render_time) - # Connect signal self.heatmap_layer.renderingFinished.connect(self.update_render_time) # Property Browser self.props = PropertyBrowser() - layout.addWidget(self.props, stretch=1) - - # Color Range Controls - group_color = QGroupBox("Color Range") - layout_color = QVBoxLayout(group_color) - - self.color_range_control = ColorRangeControl(self.heatmap_layer.colormap) - self.color_range_control.colorRangeChanged.connect(self.apply_color_range) - layout_color.addWidget(self.color_range_control) - - btn_auto_range = QPushButton("Auto (Data Min/Max)") - btn_auto_range.clicked.connect(self.reset_auto_color_range) - layout_color.addWidget(btn_auto_range) - - layout.addWidget(group_color) + layout.addWidget(self.props) + + self.dock_props.setWidget(widget) + self.dock_manager.addDockWidget(ads.DockWidgetArea.RightDockWidgetArea, self.dock_props) + + self.populate_all_properties() - # Data Table - group_data = QGroupBox("Data Points") - layout_data = QVBoxLayout(group_data) - layout_data.setContentsMargins(0, 0, 0, 0) + def setup_data_dock(self): + self.dock_data = ads.CDockWidget("Data Points") + widget = QWidget() + layout = QVBoxLayout(widget) + layout.setContentsMargins(0, 0, 0, 0) self.table_model = PointTableModel(self.data_container) self.table_model.dataChanged.connect(self.on_table_changed) @@ -383,7 +416,7 @@ def setup_properties_dock(self): self.table_view.setModel(self.table_model) self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) self.table_view.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows) - layout_data.addWidget(self.table_view) + layout.addWidget(self.table_view) btn_layout = QHBoxLayout() btn_add = QPushButton("Add Random") @@ -398,12 +431,16 @@ def setup_properties_dock(self): btn_regen.clicked.connect(self.generate_data) btn_layout.addWidget(btn_regen) - layout_data.addLayout(btn_layout) - layout.addWidget(group_data, stretch=0) + layout.addLayout(btn_layout) - # Simulation Controls - group_sim = QGroupBox("Simulation") - layout_sim = QVBoxLayout(group_sim) + self.dock_data.setWidget(widget) + # Split Inspector vertically, putting Data Points at the bottom + self.dock_manager.addDockWidget(ads.DockWidgetArea.BottomDockWidgetArea, self.dock_data, self.dock_props.dockAreaWidget()) + + def setup_simulation_dock(self): + self.dock_sim = ads.CDockWidget("Simulation") + widget = QWidget() + layout = QVBoxLayout(widget) hbox_sim = QHBoxLayout() hbox_sim.addWidget(QLabel("Interval (ms):")) @@ -411,7 +448,7 @@ def setup_properties_dock(self): self.spin_interval.setRange(10, 2000) self.spin_interval.setValue(50) hbox_sim.addWidget(self.spin_interval) - layout_sim.addLayout(hbox_sim) + layout.addLayout(hbox_sim) hbox_noise = QHBoxLayout() hbox_noise.addWidget(QLabel("Noise Amt:")) @@ -419,20 +456,37 @@ def setup_properties_dock(self): self.spin_noise.setRange(0.0, 50.0) self.spin_noise.setValue(5.0) hbox_noise.addWidget(self.spin_noise) - layout_sim.addLayout(hbox_noise) + layout.addLayout(hbox_noise) self.btn_sim = QPushButton("Start Noise") self.btn_sim.setCheckable(True) self.btn_sim.toggled.connect(self.toggle_simulation) - layout_sim.addWidget(self.btn_sim) + layout.addWidget(self.btn_sim) - layout.addWidget(group_sim) + layout.addStretch() - dock.setWidget(widget) - self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, dock) + self.dock_sim.setWidget(widget) + # Tabify with Data Points + self.dock_manager.addDockWidget(ads.DockWidgetArea.CenterDockWidgetArea, self.dock_sim, self.dock_data.dockAreaWidget()) + + def setup_color_dock(self): + self.dock_color = ads.CDockWidget("Color Range") + widget = QWidget() + layout = QVBoxLayout(widget) + + self.color_range_control = ColorRangeControl(self.heatmap_layer.colormap) + self.color_range_control.colorRangeChanged.connect(self.apply_color_range) + layout.addWidget(self.color_range_control) + + btn_auto_range = QPushButton("Auto (Data Min/Max)") + btn_auto_range.clicked.connect(self.reset_auto_color_range) + layout.addWidget(btn_auto_range) - # Populate all properties - self.populate_all_properties() + layout.addStretch() + + self.dock_color.setWidget(widget) + # Tabify with Data Points + self.dock_manager.addDockWidget(ads.DockWidgetArea.CenterDockWidgetArea, self.dock_color, self.dock_data.dockAreaWidget()) def populate_all_properties(self): self.props.clear_properties() @@ -454,10 +508,12 @@ def populate_heatmap_properties(self): self._set_heatmap_colormap, ) - # Quality now maps to target render time self.props.add_enum_property(root, "Quality", self.heatmap_layer.quality.title(), ["Very Low", "Low", "Medium", "High", "Very High", "Adaptive"], lambda q: setattr(self.heatmap_layer, 'quality', q)) + self.props.add_int_property(root, "Neighbors", self.heatmap_layer.neighbors, + lambda n: setattr(self.heatmap_layer, 'neighbors', n), min_val=1, max_val=100) + self.props.add_enum_property(root, "Boundary Shape", "Custom Polygon", ["Custom Polygon", "Rectangle", "Circle"], self.change_boundary_shape) self.props.add_bool_property(root, "Edit Polygon", self.polygon_handles[0].isVisible() if self.polygon_handles else False, @@ -476,6 +532,13 @@ def populate_value_properties(self): lambda s: self.set_layer_font_size(self.value_layer, s), min_val=6, max_val=72) self.props.add_int_property(root, "Decimals", self.value_layer.decimal_places, lambda d: setattr(self.value_layer, 'decimal_places', d), min_val=0, max_val=5) + + self.props.add_string_property(root, "Prefix", self.value_layer.prefix, lambda s: setattr(self.value_layer, 'prefix', s)) + self.props.add_string_property(root, "Suffix", self.value_layer.suffix, lambda s: setattr(self.value_layer, 'suffix', s)) + + self.props.add_color_property(root, "Highlight Color", self.value_layer.highlight_color, + lambda c: setattr(self.value_layer, 'highlight_color', c)) + self.props.add_bool_property(root, "Avoid Collisions", self.value_layer.collision_avoidance_enabled, lambda b: setattr(self.value_layer, 'collision_avoidance_enabled', b)) self.props.add_float_property(root, "Offset Factor", self.value_layer.collision_offset_factor, @@ -487,6 +550,10 @@ def populate_label_properties(self): self.props.add_float_property(root, "Opacity", self.label_layer.opacity(), self.label_layer.setOpacity, step=0.05) self.props.add_int_property(root, "Font Size", self.label_layer.font.pixelSize(), lambda s: self.set_layer_font_size(self.label_layer, s), min_val=6, max_val=72) + + self.props.add_color_property(root, "Highlight Color", self.label_layer.highlight_color, + lambda c: setattr(self.label_layer, 'highlight_color', c)) + self.props.add_bool_property(root, "Avoid Collisions", self.label_layer.collision_avoidance_enabled, lambda b: setattr(self.label_layer, 'collision_avoidance_enabled', b)) self.props.add_float_property(root, "Offset Factor", self.label_layer.collision_offset_factor, @@ -519,8 +586,6 @@ def set_svg_origin(self, x=None, y=None): # --- Logic Methods (Reused) --- - - def create_dummy_pin(self): # Create a simple black dot pixmap = QPixmap(10, 10) @@ -728,9 +793,6 @@ def apply_noise(self): # Clamp values to 0-100 for sanity new_values = np.clip(new_values, 0, 100) - # Update data container in batch? - # DataContainer doesn't have batch update for values only, - # but set_data does. self.data_container.set_data(points, new_values, self.data_container.labels) if __name__ == "__main__": diff --git a/fieldview/layers/heatmap_layer.py b/fieldview/layers/heatmap_layer.py index 37ff002..19f2fb0 100644 --- a/fieldview/layers/heatmap_layer.py +++ b/fieldview/layers/heatmap_layer.py @@ -113,6 +113,17 @@ def target_render_time(self, ms): # Trigger update to adapt immediately self.on_data_changed() + @property + def neighbors(self): + return self._neighbors + + @neighbors.setter + def neighbors(self, value): + if value < 1: + raise ValueError("Neighbors must be at least 1") + self._neighbors = int(value) + self.on_data_changed() + @property def quality(self) -> QualityLevel: if self._is_adaptive: return 'adaptive' diff --git a/fieldview/layers/text_layer.py b/fieldview/layers/text_layer.py index 5186639..67ceef8 100644 --- a/fieldview/layers/text_layer.py +++ b/fieldview/layers/text_layer.py @@ -1,6 +1,9 @@ from qtpy.QtGui import QPainter, QColor, QFont, QFontMetrics, QFontDatabase from qtpy.QtCore import Qt, QRectF, QPointF +from qtpy.QtWidgets import QStyleOptionGraphicsItem, QWidget import os +import numpy as np +from typing import Optional, List, Dict, Set, Union, Tuple from fieldview.layers.data_layer import DataLayer class TextLayer(DataLayer): @@ -8,7 +11,7 @@ class TextLayer(DataLayer): Abstract base class for text-based layers. Handles font, opacity, and highlighting. """ - def __init__(self, data_container, parent=None): + def __init__(self, data_container, parent: Optional[DataLayer] = None): super().__init__(data_container, parent) # Load embedded font @@ -37,37 +40,51 @@ def __init__(self, data_container, parent=None): self._cached_layout = None @property - def font(self): + def font(self) -> QFont: return self._font @font.setter - def font(self, value): + def font(self, value: QFont): self._font = value self.update_layer() @property - def highlighted_indices(self): + def highlighted_indices(self) -> Set[int]: return self._highlighted_indices - def set_highlighted_indices(self, indices): + def set_highlighted_indices(self, indices: List[int]): self._highlighted_indices = set(indices) self.update_layer() @property - def collision_avoidance_enabled(self): + def highlight_color(self) -> QColor: + return self._highlight_color + + @highlight_color.setter + def highlight_color(self, color: Union[QColor, str, Qt.GlobalColor]): + if isinstance(color, (str, Qt.GlobalColor)): + self._highlight_color = QColor(color) + elif isinstance(color, QColor): + self._highlight_color = color + else: + raise TypeError("Color must be QColor, str, or Qt.GlobalColor") + self.update_layer() + + @property + def collision_avoidance_enabled(self) -> bool: return self._collision_avoidance_enabled @collision_avoidance_enabled.setter - def collision_avoidance_enabled(self, enabled): + def collision_avoidance_enabled(self, enabled: bool): self._collision_avoidance_enabled = enabled self.update_layer() @property - def collision_offset_factor(self): + def collision_offset_factor(self) -> float: return self._collision_offset_factor @collision_offset_factor.setter - def collision_offset_factor(self, factor): + def collision_offset_factor(self, factor: float): self._collision_offset_factor = factor self.update_layer() @@ -75,7 +92,7 @@ def update_layer(self): self._cached_layout = None super().update_layer() - def paint(self, painter, option, widget): + def paint(self, painter: QPainter, option: QStyleOptionGraphicsItem, widget: Optional[QWidget] = None): points, values, labels = self.get_valid_data() valid_indices = self.get_valid_indices() @@ -104,7 +121,7 @@ def paint(self, painter, option, widget): painter.setPen(self._text_color if i not in self._highlighted_indices else Qt.GlobalColor.black) painter.drawText(rect, Qt.AlignmentFlag.AlignCenter, text) - def _calculate_layout(self, points, values, labels, metrics, indices): + def _calculate_layout(self, points: np.ndarray, values: np.ndarray, labels: List[str], metrics: QFontMetrics, indices: List[int]) -> Dict[int, QRectF]: layout = {} # index -> QRectF placed_rects = [] @@ -173,7 +190,7 @@ def _calculate_layout(self, points, values, labels, metrics, indices): return layout - def _get_text(self, index, value, label): + def _get_text(self, index: int, value: float, label: str) -> str: """ Abstract method to get text for a point. """ @@ -183,7 +200,7 @@ class ValueLayer(TextLayer): """ Renders numerical values. """ - def __init__(self, data_container, parent=None): + def __init__(self, data_container, parent: Optional[DataLayer] = None): super().__init__(data_container, parent) self._decimal_places = 2 self._suffix = "" @@ -193,38 +210,38 @@ def __init__(self, data_container, parent=None): self._prefix = "" @property - def decimal_places(self): + def decimal_places(self) -> int: return self._decimal_places @decimal_places.setter - def decimal_places(self, value): + def decimal_places(self, value: int): self._decimal_places = value self.update_layer() @property - def suffix(self): + def suffix(self) -> str: return self._suffix @suffix.setter - def suffix(self, value): + def suffix(self, value: str): self._suffix = value self.update_layer() @property - def prefix(self): + def prefix(self) -> str: return self._prefix @prefix.setter - def prefix(self, value): + def prefix(self, value: str): self._prefix = value self.update_layer() - def _get_text(self, index, value, label): + def _get_text(self, index: int, value: float, label: str) -> str: return f"{self._prefix}{value:.{self._decimal_places}f}{self._suffix}" class LabelLayer(TextLayer): """ Renders text labels. """ - def _get_text(self, index, value, label): + def _get_text(self, index: int, value: float, label: str) -> str: return str(label) From 9c841eafafda9ca93e3961aac376e6ebd07f30f4 Mon Sep 17 00:00:00 2001 From: Donghoon Park Date: Sat, 6 Dec 2025 10:17:09 +0900 Subject: [PATCH 2/4] fix codes for ci and add data_table --- examples/demo.py | 101 +------------------------- examples/heatmap_demo.py | 4 +- fieldview/ui/data_table.py | 141 +++++++++++++++++++++++++++++++++++++ tests/test_text_layer.py | 4 +- 4 files changed, 148 insertions(+), 102 deletions(-) create mode 100644 fieldview/ui/data_table.py diff --git a/examples/demo.py b/examples/demo.py index 1488e0b..ff1f1e8 100644 --- a/examples/demo.py +++ b/examples/demo.py @@ -33,6 +33,7 @@ from fieldview.layers.pin_layer import PinLayer from fieldview.rendering.colormaps import COLORMAPS from fieldview.ui import ColorRangeControl +from fieldview.ui.data_table import DataTable from examples.generate_data import generate_dummy_data # --- Property Browser Components --- @@ -162,100 +163,7 @@ def add_action_property(self, parent, name, button_text, callback): self.setItemWidget(item, 1, btn) return item -# --- Data Table Model (Reused) --- -class PointTableModel(QAbstractTableModel): - def __init__(self, data_container): - super().__init__() - self._data_container = data_container - self._data_container.dataChanged.connect(self._handle_data_changed) - self._highlighted_indices = set() - self._excluded_indices = set() - - def rowCount(self, parent=QModelIndex()): - return len(self._data_container.points) - - def columnCount(self, parent=QModelIndex()): - return 6 # Highlight, Exclude, X, Y, Value, Label - - def data(self, index, role=Qt.ItemDataRole.DisplayRole): - if not index.isValid(): return None - row, col = index.row(), index.column() - - if role == Qt.ItemDataRole.DisplayRole or role == Qt.ItemDataRole.EditRole: - if col == 2: return f"{self._data_container.points[row][0]:.2f}" - if col == 3: return f"{self._data_container.points[row][1]:.2f}" - if col == 4: return f"{self._data_container.values[row]:.2f}" - if col == 5: return self._data_container.labels[row] - - if role == Qt.ItemDataRole.CheckStateRole: - if col == 0: - return Qt.CheckState.Checked if row in self._highlighted_indices else Qt.CheckState.Unchecked - if col == 1: - return Qt.CheckState.Checked if row in self._excluded_indices else Qt.CheckState.Unchecked - return None - - def setData(self, index, value, role=Qt.ItemDataRole.EditRole): - if not index.isValid(): return False - row, col = index.row(), index.column() - - if role == Qt.ItemDataRole.CheckStateRole: - if col == 0: - if value == Qt.CheckState.Checked.value: self._highlighted_indices.add(row) - else: self._highlighted_indices.discard(row) - elif col == 1: - if value == Qt.CheckState.Checked.value: self._excluded_indices.add(row) - else: self._excluded_indices.discard(row) - else: - return False - self.dataChanged.emit(index, index, [Qt.ItemDataRole.CheckStateRole]) - return True - - if role == Qt.ItemDataRole.EditRole: - try: - if col == 2: - new_x = float(value) - y = self._data_container.points[row][1] - self._data_container.update_point(row, point=[new_x, y]) - elif col == 3: - new_y = float(value) - x = self._data_container.points[row][0] - self._data_container.update_point(row, point=[x, new_y]) - elif col == 4: - new_val = float(value) - self._data_container.update_point(row, value=new_val) - elif col == 5: - self._data_container.update_point(row, label=str(value)) - return True - except ValueError: return False - return False - - def headerData(self, section, orientation, role=Qt.ItemDataRole.DisplayRole): - if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal: - return ["Highlight", "Exclude", "X", "Y", "Value", "Label"][section] - return None - - def flags(self, index): - flags = super().flags(index) - if index.column() in (0, 1): flags |= Qt.ItemFlag.ItemIsUserCheckable - else: flags |= Qt.ItemFlag.ItemIsEditable - return flags - - def get_highlighted_indices(self): - return list(self._highlighted_indices) - - def get_excluded_indices(self): - return list(self._excluded_indices) - - def _handle_data_changed(self): - max_index = len(self._data_container.points) - self._highlighted_indices = {i for i in self._highlighted_indices if i < max_index} - self._excluded_indices = {i for i in self._excluded_indices if i < max_index} - self.layoutChanged.emit() - if max_index: - top_left = self.index(0, 0) - bottom_right = self.index(self.rowCount() - 1, 1) - self.dataChanged.emit(top_left, bottom_right, [Qt.ItemDataRole.CheckStateRole]) # --- Polygon Editor Helpers (Reused) --- @@ -409,13 +317,10 @@ def setup_data_dock(self): layout = QVBoxLayout(widget) layout.setContentsMargins(0, 0, 0, 0) - self.table_model = PointTableModel(self.data_container) + self.table_view = DataTable(self.data_container) + self.table_model = self.table_view.table_model self.table_model.dataChanged.connect(self.on_table_changed) - self.table_view = QTableView() - self.table_view.setModel(self.table_model) - self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) - self.table_view.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows) layout.addWidget(self.table_view) btn_layout = QHBoxLayout() diff --git a/examples/heatmap_demo.py b/examples/heatmap_demo.py index ce1dd55..07e3ec6 100644 --- a/examples/heatmap_demo.py +++ b/examples/heatmap_demo.py @@ -2,7 +2,7 @@ import os import numpy as np import pandas as pd -from PySide6.QtWidgets import ( +from qtpy.QtWidgets import ( QApplication, QMainWindow, QGraphicsView, @@ -243,7 +243,7 @@ def update_status(self): self.status_label.setText(f"Data Points: {count}") if __name__ == "__main__": - from PySide6.QtGui import QPainter # Import here to avoid circular dependency issues if any + from qtpy.QtGui import QPainter # Import here to avoid circular dependency issues if any app = QApplication(sys.argv) window = HeatmapDemo() window.show() diff --git a/fieldview/ui/data_table.py b/fieldview/ui/data_table.py new file mode 100644 index 0000000..76af705 --- /dev/null +++ b/fieldview/ui/data_table.py @@ -0,0 +1,141 @@ +from qtpy.QtWidgets import QTableView, QHeaderView, QMenu, QAction +from qtpy.QtCore import Qt, QAbstractTableModel, QModelIndex, Signal +from qtpy.QtGui import QCursor +from typing import List, Set, Optional, Any +from fieldview.core.data_container import DataContainer + +class PointTableModel(QAbstractTableModel): + """ + Table model for DataContainer points. + Supports editing and column visibility toggling. + """ + def __init__(self, data_container: DataContainer): + super().__init__() + self._data_container = data_container + self._data_container.dataChanged.connect(self._handle_data_changed) + self._highlighted_indices: Set[int] = set() + self._excluded_indices: Set[int] = set() + + self._headers = ["Highlight", "Exclude", "X", "Y", "Value", "Label"] + self._visible_columns = [True] * len(self._headers) + + def rowCount(self, parent: QModelIndex = QModelIndex()) -> int: + return len(self._data_container.points) + + def columnCount(self, parent: QModelIndex = QModelIndex()) -> int: + return len(self._headers) + + def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Any: + if not index.isValid(): return None + row, col = index.row(), index.column() + + if role == Qt.ItemDataRole.DisplayRole or role == Qt.ItemDataRole.EditRole: + if col == 2: return f"{self._data_container.points[row][0]:.2f}" + if col == 3: return f"{self._data_container.points[row][1]:.2f}" + if col == 4: return f"{self._data_container.values[row]:.2f}" + if col == 5: return self._data_container.labels[row] + + if role == Qt.ItemDataRole.CheckStateRole: + if col == 0: + return Qt.CheckState.Checked if row in self._highlighted_indices else Qt.CheckState.Unchecked + if col == 1: + return Qt.CheckState.Checked if row in self._excluded_indices else Qt.CheckState.Unchecked + return None + + def setData(self, index: QModelIndex, value: Any, role: int = Qt.ItemDataRole.EditRole) -> bool: + if not index.isValid(): return False + row, col = index.row(), index.column() + + if role == Qt.ItemDataRole.CheckStateRole: + if col == 0: + if value == Qt.CheckState.Checked.value: self._highlighted_indices.add(row) + else: self._highlighted_indices.discard(row) + elif col == 1: + if value == Qt.CheckState.Checked.value: self._excluded_indices.add(row) + else: self._excluded_indices.discard(row) + else: + return False + self.dataChanged.emit(index, index, [Qt.ItemDataRole.CheckStateRole]) + return True + + if role == Qt.ItemDataRole.EditRole: + try: + if col == 2: + new_x = float(value) + y = self._data_container.points[row][1] + self._data_container.update_point(row, point=[new_x, y]) + elif col == 3: + new_y = float(value) + x = self._data_container.points[row][0] + self._data_container.update_point(row, point=[x, new_y]) + elif col == 4: + new_val = float(value) + self._data_container.update_point(row, value=new_val) + elif col == 5: + self._data_container.update_point(row, label=str(value)) + return True + except ValueError: return False + return False + + def headerData(self, section: int, orientation: Qt.Orientation, role: int = Qt.ItemDataRole.DisplayRole) -> Any: + if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal: + return self._headers[section] + return None + + def flags(self, index: QModelIndex) -> Qt.ItemFlag: + flags = super().flags(index) + if index.column() in (0, 1): flags |= Qt.ItemFlag.ItemIsUserCheckable + else: flags |= Qt.ItemFlag.ItemIsEditable + return flags + + def get_highlighted_indices(self) -> List[int]: + return list(self._highlighted_indices) + + def get_excluded_indices(self) -> List[int]: + return list(self._excluded_indices) + + def _handle_data_changed(self): + self.layoutChanged.emit() + +class DataTable(QTableView): + """ + Custom TableView with context menu for column visibility. + """ + def __init__(self, data_container: DataContainer, parent=None): + super().__init__(parent) + self._model = PointTableModel(data_container) + self.setModel(self._model) + + self.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) + self.horizontalHeader().setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) + self.horizontalHeader().customContextMenuRequested.connect(self._show_header_menu) + + self.setSelectionBehavior(QTableView.SelectionBehavior.SelectRows) + self.setAlternatingRowColors(True) + + def _show_header_menu(self, pos): + menu = QMenu(self) + header = self.horizontalHeader() + + for i in range(self._model.columnCount()): + col_name = self._model.headerData(i, Qt.Orientation.Horizontal) + action = QAction(col_name, menu) + action.setCheckable(True) + action.setChecked(not header.isSectionHidden(i)) + action.setData(i) + action.triggered.connect(self._toggle_column) + menu.addAction(action) + + menu.exec(header.mapToGlobal(pos)) + + def _toggle_column(self): + action = self.sender() + col_idx = action.data() + if action.isChecked(): + self.showColumn(col_idx) + else: + self.hideColumn(col_idx) + + @property + def table_model(self) -> PointTableModel: + return self._model diff --git a/tests/test_text_layer.py b/tests/test_text_layer.py index c3bfc6a..0c269b8 100644 --- a/tests/test_text_layer.py +++ b/tests/test_text_layer.py @@ -44,7 +44,7 @@ def test_highlighting_uses_original_indices_with_exclusions(qtbot): layer.set_excluded_indices([1]) layer.set_highlighted_indices([2]) - from PySide6.QtGui import QImage, QPainter + from qtpy.QtGui import QImage, QPainter img = QImage(200, 200, QImage.Format.Format_ARGB32) painter = QPainter(img) @@ -75,7 +75,7 @@ def test_collision_avoidance(qtbot): # We need to trigger paint or calculate_layout manually # Since calculate_layout is internal, we can access it for testing - from PySide6.QtGui import QFontMetrics, QPainter, QImage + from qtpy.QtGui import QFontMetrics, QPainter, QImage # Create a dummy painter to get metrics img = QImage(100, 100, QImage.Format.Format_ARGB32) From b1d2ecbb4fad042facdece3a95555733d5f52731 Mon Sep 17 00:00:00 2001 From: Donghoon Park Date: Sat, 6 Dec 2025 10:21:28 +0900 Subject: [PATCH 3/4] fix compatibility issue with pyqt5 --- fieldview/layers/svg_layer.py | 2 +- fieldview/utils/qt_compat.py | 5 +++++ tests/test_misc_layers.py | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 fieldview/utils/qt_compat.py diff --git a/fieldview/layers/svg_layer.py b/fieldview/layers/svg_layer.py index 9f39ecf..2028c57 100644 --- a/fieldview/layers/svg_layer.py +++ b/fieldview/layers/svg_layer.py @@ -1,4 +1,4 @@ -from qtpy.QtSvgWidgets import QGraphicsSvgItem +from fieldview.utils.qt_compat import QGraphicsSvgItem from qtpy.QtSvg import QSvgRenderer from qtpy.QtCore import QRectF, QPointF from fieldview.layers.layer import Layer diff --git a/fieldview/utils/qt_compat.py b/fieldview/utils/qt_compat.py new file mode 100644 index 0000000..18e7ec0 --- /dev/null +++ b/fieldview/utils/qt_compat.py @@ -0,0 +1,5 @@ +try: + from qtpy.QtSvgWidgets import QGraphicsSvgItem +except ImportError: + # PyQt5 compatibility + from qtpy.QtSvg import QGraphicsSvgItem diff --git a/tests/test_misc_layers.py b/tests/test_misc_layers.py index fbb83d3..464aa0c 100644 --- a/tests/test_misc_layers.py +++ b/tests/test_misc_layers.py @@ -2,7 +2,7 @@ import os from qtpy.QtCore import QPointF, QRectF from qtpy.QtGui import QPixmap, QPainter, QColor -from qtpy.QtSvgWidgets import QGraphicsSvgItem +from fieldview.utils.qt_compat import QGraphicsSvgItem from fieldview.core.data_container import DataContainer from fieldview.layers.svg_layer import SvgLayer from fieldview.layers.pin_layer import PinLayer From 80ed7aae5289e303743c3ec99e56d1c9f85c8b23 Mon Sep 17 00:00:00 2001 From: Donghoon Park Date: Sat, 6 Dec 2025 12:07:50 +0900 Subject: [PATCH 4/4] updated example and demo with us temperature map data --- README.md | 2 +- assets/us_map_demo.png | Bin 0 -> 243890 bytes examples/demo.py | 89 ++-- examples/us_map.svg | 67 +++ examples/us_map_utils.py | 187 ++++++++ fieldview/layers/heatmap_layer.py | 14 +- fieldview/utils/grid_manager.py | 6 +- fieldview/utils/interpolation.py | 59 ++- pyproject.toml | 2 + scripts/capture_screenshot.py | 129 ++++-- scripts/fetch_nws_weather.py | 136 ++++++ uv.lock | 679 ++++++++++++++++++++++++++++++ 12 files changed, 1278 insertions(+), 92 deletions(-) create mode 100644 assets/us_map_demo.png create mode 100644 examples/us_map.svg create mode 100644 examples/us_map_utils.py create mode 100644 scripts/fetch_nws_weather.py diff --git a/README.md b/README.md index 9f2328d..c658981 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **FieldView** is a high-performance Python + Qt library for 2D data visualization, specifically designed for handling irregular data points. It uses `QtPy` to support **PySide6**, **PyQt6**, and **PyQt5**. It provides a robust rendering engine for heatmaps, markers, and text labels with minimal external dependencies. -Quick Start +Quick Start ## Key Features diff --git a/assets/us_map_demo.png b/assets/us_map_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..d55ef4244758f8ca0f616f3fcce160918dab4091 GIT binary patch literal 243890 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%0DZ3wKMe;d$5?F{q5 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 P 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 + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/us_map_utils.py b/examples/us_map_utils.py new file mode 100644 index 0000000..af3a707 --- /dev/null +++ b/examples/us_map_utils.py @@ -0,0 +1,187 @@ +import os +import re +import json +import numpy as np +import xml.etree.ElementTree as ET +from qtpy.QtGui import QPainterPath, QPolygonF, QPainterPathStroker +from qtpy.QtCore import Qt + +def parse_svg_path_to_qpainterpath(d_str): + """Parses a simple SVG path string (M, L, C, Z) into a QPainterPath.""" + path = QPainterPath() + + # Regex to tokenize commands and numbers + tokens = re.findall(r'([a-zA-Z])|([-+]?\d*\.?\d+)', d_str) + + current_cmd = None + args = [] + + def flush_command(): + nonlocal current_cmd, args + if current_cmd == 'M': + for i in range(0, len(args), 2): + path.moveTo(args[i], args[i+1]) + elif current_cmd == 'L': + for i in range(0, len(args), 2): + path.lineTo(args[i], args[i+1]) + elif current_cmd == 'C': + for i in range(0, len(args), 6): + path.cubicTo(args[i], args[i+1], args[i+2], args[i+3], args[i+4], args[i+5]) + elif current_cmd == 'Z': + path.closeSubpath() + elif current_cmd == 'z': + path.closeSubpath() + + args = [] + + for cmd, num in tokens: + if cmd: + if current_cmd: + flush_command() + current_cmd = cmd + else: + args.append(float(num)) + + if current_cmd: + flush_command() + + return path + +def get_state_data(svg_path): + """Parses the US map SVG to get state paths and centroids.""" + if not os.path.exists(svg_path): + print(f"Error: {svg_path} not found") + return {}, {} + + tree = ET.parse(svg_path) + root = tree.getroot() + + state_paths = {} + centroids = {} + + # Helper to process a path element + def process_path(element, state_id): + d = element.get('d') + if d: + qpath = parse_svg_path_to_qpainterpath(d) + if state_id in state_paths: + state_paths[state_id].addPath(qpath) + else: + state_paths[state_id] = qpath + + # Update centroid (simplified: average of bounding rect center) + rect = qpath.boundingRect() + centroids[state_id] = (rect.center().x(), rect.center().y()) + + # Iterate over all paths and groups + # Direct paths + for path in root.findall(".//{http://www.w3.org/2000/svg}path"): + state_id = path.get('id') + if state_id and len(state_id) == 2: # Simple check for state codes + process_path(path, state_id) + + # Groups (like MI, with multiple islands/peninsulas) + for g in root.findall(".//{http://www.w3.org/2000/svg}g"): + state_id = g.get('id') + if state_id and len(state_id) == 2: + for path in g.findall(".//{http://www.w3.org/2000/svg}path"): + process_path(path, state_id) + + return state_paths, centroids + +def get_us_boundary(state_paths): + """Creates a simplified, merged US boundary path from state paths.""" + us_boundary = QPainterPath() + for qpath in state_paths.values(): + us_boundary.addPath(qpath) + + # 0. Merge all state paths into a single outline to remove internal borders/gaps + stroker = QPainterPathStroker() + stroker.setWidth(1.0) # Small overlap to seal cracks + stroker.setJoinStyle(Qt.RoundJoin) + stroker.setCapStyle(Qt.RoundCap) + + stroke_path = stroker.createStroke(us_boundary) + us_boundary = us_boundary.united(stroke_path) + us_boundary = us_boundary.simplified() + + # 1. Convert to subpath polygons to handle islands + sub_polygons = us_boundary.toSubpathPolygons() + + # 2. Filter out small islands (e.g., < 500 sq pixels) + min_area = 500.0 + kept_polygons = [] + + for poly in sub_polygons: + brect = poly.boundingRect() + area = brect.width() * brect.height() + + if area > min_area: + kept_polygons.append(poly) + + # 3. Simplify and Reconstruct + final_boundary = QPainterPath() + + for poly in kept_polygons: + simplified_points = [] + if poly.count() > 0: + last_pt = poly.at(0) + simplified_points.append(last_pt) + min_dist_sq = 5.0 * 5.0 # 5 pixel minimum distance + + for i in range(1, poly.count()): + pt = poly.at(i) + dx = pt.x() - last_pt.x() + dy = pt.y() - last_pt.y() + if (dx*dx + dy*dy) > min_dist_sq: + simplified_points.append(pt) + last_pt = pt + + # Close the loop if needed + if len(simplified_points) > 2: + d_start = (simplified_points[-1].x() - simplified_points[0].x())**2 + \ + (simplified_points[-1].y() - simplified_points[0].y())**2 + if d_start > min_dist_sq: + simplified_points.append(simplified_points[0]) + + if len(simplified_points) >= 3: + final_boundary.addPolygon(QPolygonF(simplified_points)) + + return final_boundary + +def load_weather_data(): + """Loads weather data from JSON file.""" + weather_data_path = os.path.join(os.path.dirname(__file__), 'us_weather_data.json') + real_weather_data = {} + if os.path.exists(weather_data_path): + try: + with open(weather_data_path, 'r') as f: + real_weather_data = json.load(f) + print(f"Loaded real weather data for {len(real_weather_data)} states.") + except Exception as e: + print(f"Failed to load weather data: {e}") + return real_weather_data + +def generate_us_dataset(centroids, weather_data): + """Generates points and values arrays for the US map.""" + points = [] + values = [] + + for state_id, centroid in centroids.items(): + # Exclude Alaska and Hawaii from the main map + if state_id in ['AK', 'HI']: + continue + + points.append([centroid[0], centroid[1]]) + + # Use real data if available, otherwise random + if state_id in weather_data: + val = weather_data[state_id] + else: + # Fallback for missing states + normalized_y = centroid[1] / 600.0 + val = 30.0 * normalized_y - 5.0 + np.random.uniform(-5, 5) + + values.append(val) + + return np.array(points), np.array(values) diff --git a/fieldview/layers/heatmap_layer.py b/fieldview/layers/heatmap_layer.py index 19f2fb0..67af99c 100644 --- a/fieldview/layers/heatmap_layer.py +++ b/fieldview/layers/heatmap_layer.py @@ -37,6 +37,7 @@ def __init__(self, data_container, parent=None): self._target_render_time = 100 # Default High (100ms) self._hq_delay = 300 # ms self._colormap = get_colormap("viridis") + self._kernel = 'thin_plate_spline' self._color_min = None self._color_max = None @@ -124,6 +125,17 @@ def neighbors(self, value): self._neighbors = int(value) self.on_data_changed() + @property + def kernel(self): + return self._kernel + + @kernel.setter + def kernel(self, value: str): + if value not in ["thin_plate_spline", "linear", "cubic", "quintic", "gaussian", "multiquadric", "inverse_multiquadric"]: + raise ValueError(f"Invalid kernel: {value}") + self._kernel = value + self.on_data_changed() + @property def quality(self) -> QualityLevel: if self._is_adaptive: return 'adaptive' @@ -259,7 +271,7 @@ def _generate_heatmap(self, method: str = 'rbf', neighbors: int = 30, grid_size: # Get Interpolator from Cache # This handles geometry checks and fitting internally rbf_interp, boundary_gen = self._interpolator_cache.get_interpolator( - grid_size, points, self._boundary_shape, neighbors + grid_size, points, self._boundary_shape, neighbors, kernel=self._kernel ) # We need to reconstruct the expanded grid size for reshaping diff --git a/fieldview/utils/grid_manager.py b/fieldview/utils/grid_manager.py index ad825eb..77b266f 100644 --- a/fieldview/utils/grid_manager.py +++ b/fieldview/utils/grid_manager.py @@ -12,7 +12,7 @@ def __init__(self, max_size=5): self._max_size = max_size self._boundary_gen = BoundaryPointGenerator() - def get_interpolator(self, grid_size, points, boundary_shape, neighbors=30): + def get_interpolator(self, grid_size, points, boundary_shape, neighbors=30, kernel='thin_plate_spline'): """ Returns a fitted FastRBFInterpolator. If a matching interpolator exists in cache, returns it. @@ -27,7 +27,7 @@ def get_interpolator(self, grid_size, points, boundary_shape, neighbors=30): rect = boundary_shape.boundingRect() boundary_hash = hash((boundary_shape.count(), boundary_shape.at(0).x(), rect.center().x(), rect.center().y())) - key = (grid_size, points_hash, boundary_hash, neighbors) + key = (grid_size, points_hash, boundary_hash, neighbors, kernel) # 2. Check Cache if key in self._cache: @@ -65,7 +65,7 @@ def get_interpolator(self, grid_size, points, boundary_shape, neighbors=30): grid_points = np.column_stack((X.ravel(), Y.ravel())) # Fit RBF - rbf = FastRBFInterpolator(neighbors=neighbors) + rbf = FastRBFInterpolator(neighbors=neighbors, kernel=kernel) rbf.fit(all_source_points, grid_points) # 4. Update Cache diff --git a/fieldview/utils/interpolation.py b/fieldview/utils/interpolation.py index c48da5c..36129c7 100644 --- a/fieldview/utils/interpolation.py +++ b/fieldview/utils/interpolation.py @@ -100,7 +100,64 @@ def _generate_points(self, points: np.ndarray, boundary_shape, target_segment_le pt = p1 + t * (p2 - p1) boundary_points_list.append(pt) - return np.array(boundary_points_list) + # Filter points + # 1. Remove duplicates and close points within boundary points + # 2. Remove points too close to existing data points + + if not boundary_points_list: + return np.empty((0, 2)) + + boundary_points = np.array(boundary_points_list) + + # 1. Filter boundary points against themselves + # We want to keep points that are at least 'min_spacing' apart + # Increased to 15.0 to prevent high density of boundary points from dominating + # the local neighborhood (especially with low 'neighbors' count), which causes + # TPS artifacts/overfitting around isolated data points like FL. + min_spacing = 15.0 + + # Sort by x coordinate to make the filtering somewhat deterministic/efficient + # or just use a simple greedy approach + kept_indices = [] + if len(boundary_points) > 0: + # Use cKDTree for efficient radius search + # But we need a greedy selection. + # Simple approach: Iterate and skip if close to already kept + # For speed, we can use a simple grid or just brute force if N is small (<2000) + # Or use cKDTree.query_ball_point on the *kept* points. + + # Let's use a simple mask approach with cKDTree + # This is iterative and might be slow for huge N, but N is ~1000. + + # Faster approach: `scipy.spatial.KDTree` doesn't support "select subset with min dist" directly. + # We can use `query_pairs` to find all pairs < r, then remove one of them. + + tree = cKDTree(boundary_points) + pairs = tree.query_pairs(r=min_spacing) + + drop_indices = set() + for i, j in pairs: + if i in drop_indices or j in drop_indices: + continue + # Drop the one with higher index (arbitrary) + drop_indices.add(j) + + mask = np.ones(len(boundary_points), dtype=bool) + mask[list(drop_indices)] = False + boundary_points = boundary_points[mask] + + # 2. Remove points close to data points + if len(points) > 0: + tree = cKDTree(points) + # Find boundary points that are within a small radius of any data point + radius = 5.0 # Increased from 1.0 to 5.0 + indices_to_remove = tree.query_ball_point(boundary_points, radius) + + # indices_to_remove is a list of lists of neighbors + mask = np.array([len(x) == 0 for x in indices_to_remove], dtype=bool) + boundary_points = boundary_points[mask] + + return boundary_points class FastRBFInterpolator: """ diff --git a/pyproject.toml b/pyproject.toml index 019cfc4..f03e205 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,4 +38,6 @@ dev = [ "pytest-qt>=4.5.0", "build", "twine", + "aiohttp", + "PySide6-QtAds", ] diff --git a/scripts/capture_screenshot.py b/scripts/capture_screenshot.py index bfe31eb..1d2d07d 100644 --- a/scripts/capture_screenshot.py +++ b/scripts/capture_screenshot.py @@ -1,54 +1,119 @@ import sys import os -import time +import numpy as np +import json +import xml.etree.ElementTree as ET +import re -# Set offscreen platform before importing PySide6 -os.environ["QT_QPA_PLATFORM"] = "offscreen" +os.environ["OMP_NUM_THREADS"] = "1" +os.environ["OPENBLAS_NUM_THREADS"] = "1" +os.environ["MKL_NUM_THREADS"] = "1" +os.environ["VECLIB_MAXIMUM_THREADS"] = "1" +os.environ["NUMEXPR_NUM_THREADS"] = "1" -from qtpy.QtWidgets import QApplication, QGraphicsView, QGraphicsScene -from qtpy.QtGui import QImage, QPainter, QColor -from qtpy.QtCore import Qt, QTimer, QRectF, QSize +# Set offscreen platform before importing qtpy +os.environ["QT_QPA_PLATFORM"] = "offscreen" +os.environ["QT_API"] = "pyside6" -# Add project root to path to import examples -# Even though quick_start handles imports, we need to import quick_start itself +# Add project root to path BEFORE importing fieldview or qtpy sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from examples import quick_start +from qtpy.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QGraphicsItem +from qtpy.QtGui import QImage, QPainter, QColor, QFont, QPainterPath, QPolygonF, QPainterPathStroker +from qtpy.QtCore import Qt, QTimer, QRectF, QPointF + +from fieldview.core.data_container import DataContainer +from fieldview.layers.heatmap_layer import HeatmapLayer +from fieldview.layers.text_layer import ValueLayer +from fieldview.layers.svg_layer import SvgLayer + +from examples.us_map_utils import get_state_data, get_us_boundary, load_weather_data, generate_us_dataset def capture(): - print("Starting application (headless)...") - app, view = quick_start.run() + app = QApplication(sys.argv) + + svg_file = os.path.join(os.path.dirname(__file__), '..', 'examples', 'us_map.svg') + if not os.path.exists(svg_file): + print(f"Error: {svg_file} not found") + return + + # 1. Parse SVG for Geometry + state_paths, centroids = get_state_data(svg_file) + + # Create combined boundary path for heatmap + us_boundary = get_us_boundary(state_paths) + + # 2. Setup Data + dc = DataContainer() + + # Load Weather Data + weather_data = load_weather_data() + + # Generate Dataset + points, values = generate_us_dataset(centroids, weather_data) + + dc.set_data(points, values) + + # 3. Setup Scene + scene = QGraphicsScene(0, 0, 959, 593) + scene.setBackgroundBrush(Qt.white) # Solid white background by user request + + # 4. Layers + # SVG Map + svg_layer = SvgLayer() + svg_layer.load_svg(svg_file) + + scene.addItem(svg_layer) - # Ensure assets directory exists + # Heatmap + heatmap = HeatmapLayer(dc) + heatmap.setOpacity(0.8) # Lowered from 0.6 by user request + heatmap.colormap = "jet" # Changed from default (viridis) to jet by user request + heatmap.neighbors = 100 # Global interpolation for smooth gradients + heatmap.kernel = "thin_plate_spline" + heatmap.quality = "low" + # Set the exact US boundary + heatmap.set_boundary_shape(us_boundary) + scene.addItem(heatmap) + + # Values + values_layer = ValueLayer(dc) + values_layer.suffix = "°C" + values_layer.font.setPixelSize(14) + values_layer.font.setBold(True) + values_layer.highlight_color = QColor("orange") + + # Highlight highest temp + max_idx = np.argmax(values) + values_layer.set_highlighted_indices([int(max_idx)]) + scene.addItem(values_layer) + + # 5. View + view = QGraphicsView(scene) + view.resize(959, 593) + + # Set scene rect to match SVG (959x593) + scene.setSceneRect(0, 0, 959, 593) + + # 6. Capture assets_dir = os.path.join(os.path.dirname(__file__), '..', 'assets') os.makedirs(assets_dir, exist_ok=True) - output_path = os.path.join(assets_dir, 'quick_start.png') - + output_path = os.path.join(assets_dir, 'us_map_demo.png') + def take_screenshot(): - print("Rendering scene...") - - # Create an image to render into - image = QImage(600, 450, QImage.Format.Format_ARGB32) - image.fill(QColor(30, 30, 30)) # Dark background + print("Rendering...") + image = QImage(959, 593, QImage.Format.Format_ARGB32) + image.fill(QColor(30, 30, 30)) painter = QPainter(image) - scene = view.scene() - - # Render the scene - # We use the scene rect which was set in quick_start.py - scene.render(painter, target=QRectF(0, 0, 600, 450), source=scene.sceneRect()) - + scene.render(painter) painter.end() - # Save image.save(output_path) - print(f"Screenshot saved to {output_path}") - + print(f"Saved to {output_path}") app.quit() - - # Wait a bit for rendering to finish - QTimer.singleShot(1000, take_screenshot) - + + QTimer.singleShot(2000, take_screenshot) sys.exit(app.exec()) if __name__ == "__main__": diff --git a/scripts/fetch_nws_weather.py b/scripts/fetch_nws_weather.py new file mode 100644 index 0000000..1217e4a --- /dev/null +++ b/scripts/fetch_nws_weather.py @@ -0,0 +1,136 @@ +import asyncio +import aiohttp +import json +import os +import time + +# Coordinates for US State Capitals (Lat, Lon) +# Excluding AK and HI as per project context +STATE_CAPITALS_COORDS = { + "AL": (32.3777, -86.3006), # Montgomery + "AZ": (33.4484, -112.0740), # Phoenix + "AR": (34.7465, -92.2896), # Little Rock + "CA": (38.5816, -121.4944), # Sacramento + "CO": (39.7392, -104.9903), # Denver + "CT": (41.7637, -72.6851), # Hartford + "DE": (39.1582, -75.5244), # Dover + "FL": (30.4383, -84.2807), # Tallahassee + "GA": (33.7490, -84.3880), # Atlanta + "ID": (43.6150, -116.2023), # Boise + "IL": (39.7817, -89.6501), # Springfield + "IN": (39.7684, -86.1581), # Indianapolis + "IA": (41.5868, -93.6250), # Des Moines + "KS": (39.0473, -95.6752), # Topeka + "KY": (38.2009, -84.8733), # Frankfort + "LA": (30.4515, -91.1871), # Baton Rouge + "ME": (44.3106, -69.7795), # Augusta + "MD": (38.9784, -76.4922), # Annapolis + "MA": (42.3601, -71.0589), # Boston + "MI": (42.7325, -84.5555), # Lansing + "MN": (44.9537, -93.0900), # Saint Paul + "MS": (32.2988, -90.1848), # Jackson + "MO": (38.5767, -92.1735), # Jefferson City + "MT": (46.5891, -112.0391), # Helena + "NE": (40.8136, -96.7026), # Lincoln + "NV": (39.1638, -119.7674), # Carson City + "NH": (43.2081, -71.5375), # Concord + "NJ": (40.2206, -74.7597), # Trenton + "NM": (35.6870, -105.9378), # Santa Fe + "NY": (42.6526, -73.7562), # Albany + "NC": (35.7796, -78.6382), # Raleigh + "ND": (46.8083, -100.7837), # Bismarck + "OH": (39.9612, -82.9988), # Columbus + "OK": (35.4676, -97.5164), # Oklahoma City + "OR": (44.9429, -123.0351), # Salem + "PA": (40.2732, -76.8867), # Harrisburg + "RI": (41.8240, -71.4128), # Providence + "SC": (34.0007, -81.0348), # Columbia + "SD": (44.3668, -100.3538), # Pierre + "TN": (36.1627, -86.7816), # Nashville + "TX": (30.2672, -97.7431), # Austin + "UT": (40.7608, -111.8910), # Salt Lake City + "VT": (44.2601, -72.5754), # Montpelier + "VA": (37.5407, -77.4360), # Richmond + "WA": (47.0379, -122.9007), # Olympia + "WV": (38.3498, -81.6326), # Charleston + "WI": (43.0731, -89.4012), # Madison + "WY": (41.1399, -104.8202) # Cheyenne +} + +HEADERS = { + "User-Agent": "(fieldview-app, contact@example.com)", + "Accept": "application/geo+json" +} + +async def fetch_url(session, url): + async with session.get(url, headers=HEADERS) as response: + if response.status == 200: + return await response.json() + else: + # print(f"Error fetching {url}: {response.status}") + return None + +async def fetch_state_weather(session, state_code, lat, lon): + try: + # 1. Get Point Metadata + points_url = f"https://api.weather.gov/points/{lat},{lon}" + point_data = await fetch_url(session, points_url) + + if not point_data: + return state_code, None + + # 2. Get Observation Stations + stations_url = point_data['properties']['observationStations'] + stations_data = await fetch_url(session, stations_url) + + if not stations_data or not stations_data.get('features'): + return state_code, None + + # Use the first station + station_id = stations_data['features'][0]['properties']['stationIdentifier'] + + # 3. Get Latest Observation + obs_url = f"https://api.weather.gov/stations/{station_id}/observations/latest" + obs_data = await fetch_url(session, obs_url) + + if not obs_data: + return state_code, None + + temp_c = obs_data['properties']['temperature']['value'] + + if temp_c is not None: + print(f"{state_code}: {temp_c}°C (Station: {station_id})") + return state_code, temp_c + else: + print(f"{state_code}: Temperature data unavailable for {station_id}") + return state_code, None + + except Exception as e: + print(f"Exception fetching data for {state_code}: {e}") + return state_code, None + +async def main(): + weather_data = {} + print("Fetching weather data from NWS API (Async)...") + + async with aiohttp.ClientSession() as session: + tasks = [] + for state_code, (lat, lon) in STATE_CAPITALS_COORDS.items(): + tasks.append(fetch_state_weather(session, state_code, lat, lon)) + + results = await asyncio.gather(*tasks) + + for state_code, temp in results: + if temp is not None: + weather_data[state_code] = temp + + # Save to JSON + output_path = os.path.join(os.path.dirname(__file__), '..', 'examples', 'us_weather_data.json') + with open(output_path, 'w') as f: + json.dump(weather_data, f, indent=4) + + print(f"\nWeather data saved to {output_path}") + print(f"Successfully fetched data for {len(weather_data)} states.") + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/uv.lock b/uv.lock index e4b76e6..e41b2c0 100644 --- a/uv.lock +++ b/uv.lock @@ -7,6 +7,166 @@ resolution-markers = [ "python_full_version < '3.11'", ] +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.13.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "async-timeout", marker = "python_full_version < '3.11'" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/ce/3b83ebba6b3207a7135e5fcaba49706f8a4b6008153b4e30540c982fae26/aiohttp-3.13.2.tar.gz", hash = "sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca", size = 7837994, upload-time = "2025-10-28T20:59:39.937Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/34/939730e66b716b76046dedfe0842995842fa906ccc4964bba414ff69e429/aiohttp-3.13.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155", size = 736471, upload-time = "2025-10-28T20:55:27.924Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cf/dcbdf2df7f6ca72b0bb4c0b4509701f2d8942cf54e29ca197389c214c07f/aiohttp-3.13.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c", size = 493985, upload-time = "2025-10-28T20:55:29.456Z" }, + { url = "https://files.pythonhosted.org/packages/9d/87/71c8867e0a1d0882dcbc94af767784c3cb381c1c4db0943ab4aae4fed65e/aiohttp-3.13.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636", size = 489274, upload-time = "2025-10-28T20:55:31.134Z" }, + { url = "https://files.pythonhosted.org/packages/38/0f/46c24e8dae237295eaadd113edd56dee96ef6462adf19b88592d44891dc5/aiohttp-3.13.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da", size = 1668171, upload-time = "2025-10-28T20:55:36.065Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c6/4cdfb4440d0e28483681a48f69841fa5e39366347d66ef808cbdadddb20e/aiohttp-3.13.2-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725", size = 1636036, upload-time = "2025-10-28T20:55:37.576Z" }, + { url = "https://files.pythonhosted.org/packages/84/37/8708cf678628216fb678ab327a4e1711c576d6673998f4f43e86e9ae90dd/aiohttp-3.13.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5", size = 1727975, upload-time = "2025-10-28T20:55:39.457Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2e/3ebfe12fdcb9b5f66e8a0a42dffcd7636844c8a018f261efb2419f68220b/aiohttp-3.13.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3", size = 1815823, upload-time = "2025-10-28T20:55:40.958Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4f/ca2ef819488cbb41844c6cf92ca6dd15b9441e6207c58e5ae0e0fc8d70ad/aiohttp-3.13.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802", size = 1669374, upload-time = "2025-10-28T20:55:42.745Z" }, + { url = "https://files.pythonhosted.org/packages/f8/fe/1fe2e1179a0d91ce09c99069684aab619bf2ccde9b20bd6ca44f8837203e/aiohttp-3.13.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a", size = 1555315, upload-time = "2025-10-28T20:55:44.264Z" }, + { url = "https://files.pythonhosted.org/packages/5a/2b/f3781899b81c45d7cbc7140cddb8a3481c195e7cbff8e36374759d2ab5a5/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204", size = 1639140, upload-time = "2025-10-28T20:55:46.626Z" }, + { url = "https://files.pythonhosted.org/packages/72/27/c37e85cd3ece6f6c772e549bd5a253d0c122557b25855fb274224811e4f2/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22", size = 1645496, upload-time = "2025-10-28T20:55:48.933Z" }, + { url = "https://files.pythonhosted.org/packages/66/20/3af1ab663151bd3780b123e907761cdb86ec2c4e44b2d9b195ebc91fbe37/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d", size = 1697625, upload-time = "2025-10-28T20:55:50.377Z" }, + { url = "https://files.pythonhosted.org/packages/95/eb/ae5cab15efa365e13d56b31b0d085a62600298bf398a7986f8388f73b598/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f", size = 1542025, upload-time = "2025-10-28T20:55:51.861Z" }, + { url = "https://files.pythonhosted.org/packages/e9/2d/1683e8d67ec72d911397fe4e575688d2a9b8f6a6e03c8fdc9f3fd3d4c03f/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f", size = 1714918, upload-time = "2025-10-28T20:55:53.515Z" }, + { url = "https://files.pythonhosted.org/packages/99/a2/ffe8e0e1c57c5e542d47ffa1fcf95ef2b3ea573bf7c4d2ee877252431efc/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6", size = 1656113, upload-time = "2025-10-28T20:55:55.438Z" }, + { url = "https://files.pythonhosted.org/packages/0d/42/d511aff5c3a2b06c09d7d214f508a4ad8ac7799817f7c3d23e7336b5e896/aiohttp-3.13.2-cp310-cp310-win32.whl", hash = "sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251", size = 432290, upload-time = "2025-10-28T20:55:56.96Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ea/1c2eb7098b5bad4532994f2b7a8228d27674035c9b3234fe02c37469ef14/aiohttp-3.13.2-cp310-cp310-win_amd64.whl", hash = "sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514", size = 455075, upload-time = "2025-10-28T20:55:58.373Z" }, + { url = "https://files.pythonhosted.org/packages/35/74/b321e7d7ca762638cdf8cdeceb39755d9c745aff7a64c8789be96ddf6e96/aiohttp-3.13.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0", size = 743409, upload-time = "2025-10-28T20:56:00.354Z" }, + { url = "https://files.pythonhosted.org/packages/99/3d/91524b905ec473beaf35158d17f82ef5a38033e5809fe8742e3657cdbb97/aiohttp-3.13.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb", size = 497006, upload-time = "2025-10-28T20:56:01.85Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d3/7f68bc02a67716fe80f063e19adbd80a642e30682ce74071269e17d2dba1/aiohttp-3.13.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9", size = 493195, upload-time = "2025-10-28T20:56:03.314Z" }, + { url = "https://files.pythonhosted.org/packages/98/31/913f774a4708775433b7375c4f867d58ba58ead833af96c8af3621a0d243/aiohttp-3.13.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613", size = 1747759, upload-time = "2025-10-28T20:56:04.904Z" }, + { url = "https://files.pythonhosted.org/packages/e8/63/04efe156f4326f31c7c4a97144f82132c3bb21859b7bb84748d452ccc17c/aiohttp-3.13.2-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead", size = 1704456, upload-time = "2025-10-28T20:56:06.986Z" }, + { url = "https://files.pythonhosted.org/packages/8e/02/4e16154d8e0a9cf4ae76f692941fd52543bbb148f02f098ca73cab9b1c1b/aiohttp-3.13.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780", size = 1807572, upload-time = "2025-10-28T20:56:08.558Z" }, + { url = "https://files.pythonhosted.org/packages/34/58/b0583defb38689e7f06798f0285b1ffb3a6fb371f38363ce5fd772112724/aiohttp-3.13.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a", size = 1895954, upload-time = "2025-10-28T20:56:10.545Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f3/083907ee3437425b4e376aa58b2c915eb1a33703ec0dc30040f7ae3368c6/aiohttp-3.13.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592", size = 1747092, upload-time = "2025-10-28T20:56:12.118Z" }, + { url = "https://files.pythonhosted.org/packages/ac/61/98a47319b4e425cc134e05e5f3fc512bf9a04bf65aafd9fdcda5d57ec693/aiohttp-3.13.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab", size = 1606815, upload-time = "2025-10-28T20:56:14.191Z" }, + { url = "https://files.pythonhosted.org/packages/97/4b/e78b854d82f66bb974189135d31fce265dee0f5344f64dd0d345158a5973/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30", size = 1723789, upload-time = "2025-10-28T20:56:16.101Z" }, + { url = "https://files.pythonhosted.org/packages/ed/fc/9d2ccc794fc9b9acd1379d625c3a8c64a45508b5091c546dea273a41929e/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40", size = 1718104, upload-time = "2025-10-28T20:56:17.655Z" }, + { url = "https://files.pythonhosted.org/packages/66/65/34564b8765ea5c7d79d23c9113135d1dd3609173da13084830f1507d56cf/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948", size = 1785584, upload-time = "2025-10-28T20:56:19.238Z" }, + { url = "https://files.pythonhosted.org/packages/30/be/f6a7a426e02fc82781afd62016417b3948e2207426d90a0e478790d1c8a4/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf", size = 1595126, upload-time = "2025-10-28T20:56:20.836Z" }, + { url = "https://files.pythonhosted.org/packages/e5/c7/8e22d5d28f94f67d2af496f14a83b3c155d915d1fe53d94b66d425ec5b42/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782", size = 1800665, upload-time = "2025-10-28T20:56:22.922Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/91133c8b68b1da9fc16555706aa7276fdf781ae2bb0876c838dd86b8116e/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8", size = 1739532, upload-time = "2025-10-28T20:56:25.924Z" }, + { url = "https://files.pythonhosted.org/packages/17/6b/3747644d26a998774b21a616016620293ddefa4d63af6286f389aedac844/aiohttp-3.13.2-cp311-cp311-win32.whl", hash = "sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec", size = 431876, upload-time = "2025-10-28T20:56:27.524Z" }, + { url = "https://files.pythonhosted.org/packages/c3/63/688462108c1a00eb9f05765331c107f95ae86f6b197b865d29e930b7e462/aiohttp-3.13.2-cp311-cp311-win_amd64.whl", hash = "sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c", size = 456205, upload-time = "2025-10-28T20:56:29.062Z" }, + { url = "https://files.pythonhosted.org/packages/29/9b/01f00e9856d0a73260e86dd8ed0c2234a466c5c1712ce1c281548df39777/aiohttp-3.13.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b", size = 737623, upload-time = "2025-10-28T20:56:30.797Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1b/4be39c445e2b2bd0aab4ba736deb649fabf14f6757f405f0c9685019b9e9/aiohttp-3.13.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc", size = 492664, upload-time = "2025-10-28T20:56:32.708Z" }, + { url = "https://files.pythonhosted.org/packages/28/66/d35dcfea8050e131cdd731dff36434390479b4045a8d0b9d7111b0a968f1/aiohttp-3.13.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7", size = 491808, upload-time = "2025-10-28T20:56:34.57Z" }, + { url = "https://files.pythonhosted.org/packages/00/29/8e4609b93e10a853b65f8291e64985de66d4f5848c5637cddc70e98f01f8/aiohttp-3.13.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb", size = 1738863, upload-time = "2025-10-28T20:56:36.377Z" }, + { url = "https://files.pythonhosted.org/packages/9d/fa/4ebdf4adcc0def75ced1a0d2d227577cd7b1b85beb7edad85fcc87693c75/aiohttp-3.13.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3", size = 1700586, upload-time = "2025-10-28T20:56:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/da/04/73f5f02ff348a3558763ff6abe99c223381b0bace05cd4530a0258e52597/aiohttp-3.13.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f", size = 1768625, upload-time = "2025-10-28T20:56:39.75Z" }, + { url = "https://files.pythonhosted.org/packages/f8/49/a825b79ffec124317265ca7d2344a86bcffeb960743487cb11988ffb3494/aiohttp-3.13.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6", size = 1867281, upload-time = "2025-10-28T20:56:41.471Z" }, + { url = "https://files.pythonhosted.org/packages/b9/48/adf56e05f81eac31edcfae45c90928f4ad50ef2e3ea72cb8376162a368f8/aiohttp-3.13.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e", size = 1752431, upload-time = "2025-10-28T20:56:43.162Z" }, + { url = "https://files.pythonhosted.org/packages/30/ab/593855356eead019a74e862f21523db09c27f12fd24af72dbc3555b9bfd9/aiohttp-3.13.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7", size = 1562846, upload-time = "2025-10-28T20:56:44.85Z" }, + { url = "https://files.pythonhosted.org/packages/39/0f/9f3d32271aa8dc35036e9668e31870a9d3b9542dd6b3e2c8a30931cb27ae/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d", size = 1699606, upload-time = "2025-10-28T20:56:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3c/52d2658c5699b6ef7692a3f7128b2d2d4d9775f2a68093f74bca06cf01e1/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b", size = 1720663, upload-time = "2025-10-28T20:56:48.528Z" }, + { url = "https://files.pythonhosted.org/packages/9b/d4/8f8f3ff1fb7fb9e3f04fcad4e89d8a1cd8fc7d05de67e3de5b15b33008ff/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8", size = 1737939, upload-time = "2025-10-28T20:56:50.77Z" }, + { url = "https://files.pythonhosted.org/packages/03/d3/ddd348f8a27a634daae39a1b8e291ff19c77867af438af844bf8b7e3231b/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16", size = 1555132, upload-time = "2025-10-28T20:56:52.568Z" }, + { url = "https://files.pythonhosted.org/packages/39/b8/46790692dc46218406f94374903ba47552f2f9f90dad554eed61bfb7b64c/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169", size = 1764802, upload-time = "2025-10-28T20:56:54.292Z" }, + { url = "https://files.pythonhosted.org/packages/ba/e4/19ce547b58ab2a385e5f0b8aa3db38674785085abcf79b6e0edd1632b12f/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248", size = 1719512, upload-time = "2025-10-28T20:56:56.428Z" }, + { url = "https://files.pythonhosted.org/packages/70/30/6355a737fed29dcb6dfdd48682d5790cb5eab050f7b4e01f49b121d3acad/aiohttp-3.13.2-cp312-cp312-win32.whl", hash = "sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e", size = 426690, upload-time = "2025-10-28T20:56:58.736Z" }, + { url = "https://files.pythonhosted.org/packages/0a/0d/b10ac09069973d112de6ef980c1f6bb31cb7dcd0bc363acbdad58f927873/aiohttp-3.13.2-cp312-cp312-win_amd64.whl", hash = "sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45", size = 453465, upload-time = "2025-10-28T20:57:00.795Z" }, + { url = "https://files.pythonhosted.org/packages/bf/78/7e90ca79e5aa39f9694dcfd74f4720782d3c6828113bb1f3197f7e7c4a56/aiohttp-3.13.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be", size = 732139, upload-time = "2025-10-28T20:57:02.455Z" }, + { url = "https://files.pythonhosted.org/packages/db/ed/1f59215ab6853fbaa5c8495fa6cbc39edfc93553426152b75d82a5f32b76/aiohttp-3.13.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742", size = 490082, upload-time = "2025-10-28T20:57:04.784Z" }, + { url = "https://files.pythonhosted.org/packages/68/7b/fe0fe0f5e05e13629d893c760465173a15ad0039c0a5b0d0040995c8075e/aiohttp-3.13.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293", size = 489035, upload-time = "2025-10-28T20:57:06.894Z" }, + { url = "https://files.pythonhosted.org/packages/d2/04/db5279e38471b7ac801d7d36a57d1230feeee130bbe2a74f72731b23c2b1/aiohttp-3.13.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811", size = 1720387, upload-time = "2025-10-28T20:57:08.685Z" }, + { url = "https://files.pythonhosted.org/packages/31/07/8ea4326bd7dae2bd59828f69d7fdc6e04523caa55e4a70f4a8725a7e4ed2/aiohttp-3.13.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a", size = 1688314, upload-time = "2025-10-28T20:57:10.693Z" }, + { url = "https://files.pythonhosted.org/packages/48/ab/3d98007b5b87ffd519d065225438cc3b668b2f245572a8cb53da5dd2b1bc/aiohttp-3.13.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4", size = 1756317, upload-time = "2025-10-28T20:57:12.563Z" }, + { url = "https://files.pythonhosted.org/packages/97/3d/801ca172b3d857fafb7b50c7c03f91b72b867a13abca982ed6b3081774ef/aiohttp-3.13.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a", size = 1858539, upload-time = "2025-10-28T20:57:14.623Z" }, + { url = "https://files.pythonhosted.org/packages/f7/0d/4764669bdf47bd472899b3d3db91fffbe925c8e3038ec591a2fd2ad6a14d/aiohttp-3.13.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e", size = 1739597, upload-time = "2025-10-28T20:57:16.399Z" }, + { url = "https://files.pythonhosted.org/packages/c4/52/7bd3c6693da58ba16e657eb904a5b6decfc48ecd06e9ac098591653b1566/aiohttp-3.13.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb", size = 1555006, upload-time = "2025-10-28T20:57:18.288Z" }, + { url = "https://files.pythonhosted.org/packages/48/30/9586667acec5993b6f41d2ebcf96e97a1255a85f62f3c653110a5de4d346/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded", size = 1683220, upload-time = "2025-10-28T20:57:20.241Z" }, + { url = "https://files.pythonhosted.org/packages/71/01/3afe4c96854cfd7b30d78333852e8e851dceaec1c40fd00fec90c6402dd2/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b", size = 1712570, upload-time = "2025-10-28T20:57:22.253Z" }, + { url = "https://files.pythonhosted.org/packages/11/2c/22799d8e720f4697a9e66fd9c02479e40a49de3de2f0bbe7f9f78a987808/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8", size = 1733407, upload-time = "2025-10-28T20:57:24.37Z" }, + { url = "https://files.pythonhosted.org/packages/34/cb/90f15dd029f07cebbd91f8238a8b363978b530cd128488085b5703683594/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04", size = 1550093, upload-time = "2025-10-28T20:57:26.257Z" }, + { url = "https://files.pythonhosted.org/packages/69/46/12dce9be9d3303ecbf4d30ad45a7683dc63d90733c2d9fe512be6716cd40/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476", size = 1758084, upload-time = "2025-10-28T20:57:28.349Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c8/0932b558da0c302ffd639fc6362a313b98fdf235dc417bc2493da8394df7/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23", size = 1716987, upload-time = "2025-10-28T20:57:30.233Z" }, + { url = "https://files.pythonhosted.org/packages/5d/8b/f5bd1a75003daed099baec373aed678f2e9b34f2ad40d85baa1368556396/aiohttp-3.13.2-cp313-cp313-win32.whl", hash = "sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254", size = 425859, upload-time = "2025-10-28T20:57:32.105Z" }, + { url = "https://files.pythonhosted.org/packages/5d/28/a8a9fc6957b2cee8902414e41816b5ab5536ecf43c3b1843c10e82c559b2/aiohttp-3.13.2-cp313-cp313-win_amd64.whl", hash = "sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a", size = 452192, upload-time = "2025-10-28T20:57:34.166Z" }, + { url = "https://files.pythonhosted.org/packages/9b/36/e2abae1bd815f01c957cbf7be817b3043304e1c87bad526292a0410fdcf9/aiohttp-3.13.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b", size = 735234, upload-time = "2025-10-28T20:57:36.415Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e3/1ee62dde9b335e4ed41db6bba02613295a0d5b41f74a783c142745a12763/aiohttp-3.13.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61", size = 490733, upload-time = "2025-10-28T20:57:38.205Z" }, + { url = "https://files.pythonhosted.org/packages/1a/aa/7a451b1d6a04e8d15a362af3e9b897de71d86feac3babf8894545d08d537/aiohttp-3.13.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4", size = 491303, upload-time = "2025-10-28T20:57:40.122Z" }, + { url = "https://files.pythonhosted.org/packages/57/1e/209958dbb9b01174870f6a7538cd1f3f28274fdbc88a750c238e2c456295/aiohttp-3.13.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b", size = 1717965, upload-time = "2025-10-28T20:57:42.28Z" }, + { url = "https://files.pythonhosted.org/packages/08/aa/6a01848d6432f241416bc4866cae8dc03f05a5a884d2311280f6a09c73d6/aiohttp-3.13.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694", size = 1667221, upload-time = "2025-10-28T20:57:44.869Z" }, + { url = "https://files.pythonhosted.org/packages/87/4f/36c1992432d31bbc789fa0b93c768d2e9047ec8c7177e5cd84ea85155f36/aiohttp-3.13.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906", size = 1757178, upload-time = "2025-10-28T20:57:47.216Z" }, + { url = "https://files.pythonhosted.org/packages/ac/b4/8e940dfb03b7e0f68a82b88fd182b9be0a65cb3f35612fe38c038c3112cf/aiohttp-3.13.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9", size = 1838001, upload-time = "2025-10-28T20:57:49.337Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ef/39f3448795499c440ab66084a9db7d20ca7662e94305f175a80f5b7e0072/aiohttp-3.13.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011", size = 1716325, upload-time = "2025-10-28T20:57:51.327Z" }, + { url = "https://files.pythonhosted.org/packages/d7/51/b311500ffc860b181c05d91c59a1313bdd05c82960fdd4035a15740d431e/aiohttp-3.13.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6", size = 1547978, upload-time = "2025-10-28T20:57:53.554Z" }, + { url = "https://files.pythonhosted.org/packages/31/64/b9d733296ef79815226dab8c586ff9e3df41c6aff2e16c06697b2d2e6775/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213", size = 1682042, upload-time = "2025-10-28T20:57:55.617Z" }, + { url = "https://files.pythonhosted.org/packages/3f/30/43d3e0f9d6473a6db7d472104c4eff4417b1e9df01774cb930338806d36b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49", size = 1680085, upload-time = "2025-10-28T20:57:57.59Z" }, + { url = "https://files.pythonhosted.org/packages/16/51/c709f352c911b1864cfd1087577760ced64b3e5bee2aa88b8c0c8e2e4972/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae", size = 1728238, upload-time = "2025-10-28T20:57:59.525Z" }, + { url = "https://files.pythonhosted.org/packages/19/e2/19bd4c547092b773caeb48ff5ae4b1ae86756a0ee76c16727fcfd281404b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa", size = 1544395, upload-time = "2025-10-28T20:58:01.914Z" }, + { url = "https://files.pythonhosted.org/packages/cf/87/860f2803b27dfc5ed7be532832a3498e4919da61299b4a1f8eb89b8ff44d/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4", size = 1742965, upload-time = "2025-10-28T20:58:03.972Z" }, + { url = "https://files.pythonhosted.org/packages/67/7f/db2fc7618925e8c7a601094d5cbe539f732df4fb570740be88ed9e40e99a/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a", size = 1697585, upload-time = "2025-10-28T20:58:06.189Z" }, + { url = "https://files.pythonhosted.org/packages/0c/07/9127916cb09bb38284db5036036042b7b2c514c8ebaeee79da550c43a6d6/aiohttp-3.13.2-cp314-cp314-win32.whl", hash = "sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940", size = 431621, upload-time = "2025-10-28T20:58:08.636Z" }, + { url = "https://files.pythonhosted.org/packages/fb/41/554a8a380df6d3a2bba8a7726429a23f4ac62aaf38de43bb6d6cde7b4d4d/aiohttp-3.13.2-cp314-cp314-win_amd64.whl", hash = "sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4", size = 457627, upload-time = "2025-10-28T20:58:11Z" }, + { url = "https://files.pythonhosted.org/packages/c7/8e/3824ef98c039d3951cb65b9205a96dd2b20f22241ee17d89c5701557c826/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673", size = 767360, upload-time = "2025-10-28T20:58:13.358Z" }, + { url = "https://files.pythonhosted.org/packages/a4/0f/6a03e3fc7595421274fa34122c973bde2d89344f8a881b728fa8c774e4f1/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd", size = 504616, upload-time = "2025-10-28T20:58:15.339Z" }, + { url = "https://files.pythonhosted.org/packages/c6/aa/ed341b670f1bc8a6f2c6a718353d13b9546e2cef3544f573c6a1ff0da711/aiohttp-3.13.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3", size = 509131, upload-time = "2025-10-28T20:58:17.693Z" }, + { url = "https://files.pythonhosted.org/packages/7f/f0/c68dac234189dae5c4bbccc0f96ce0cc16b76632cfc3a08fff180045cfa4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf", size = 1864168, upload-time = "2025-10-28T20:58:20.113Z" }, + { url = "https://files.pythonhosted.org/packages/8f/65/75a9a76db8364b5d0e52a0c20eabc5d52297385d9af9c35335b924fafdee/aiohttp-3.13.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e", size = 1719200, upload-time = "2025-10-28T20:58:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/f5/55/8df2ed78d7f41d232f6bd3ff866b6f617026551aa1d07e2f03458f964575/aiohttp-3.13.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5", size = 1843497, upload-time = "2025-10-28T20:58:24.672Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e0/94d7215e405c5a02ccb6a35c7a3a6cfff242f457a00196496935f700cde5/aiohttp-3.13.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad", size = 1935703, upload-time = "2025-10-28T20:58:26.758Z" }, + { url = "https://files.pythonhosted.org/packages/0b/78/1eeb63c3f9b2d1015a4c02788fb543141aad0a03ae3f7a7b669b2483f8d4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e", size = 1792738, upload-time = "2025-10-28T20:58:29.787Z" }, + { url = "https://files.pythonhosted.org/packages/41/75/aaf1eea4c188e51538c04cc568040e3082db263a57086ea74a7d38c39e42/aiohttp-3.13.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61", size = 1624061, upload-time = "2025-10-28T20:58:32.529Z" }, + { url = "https://files.pythonhosted.org/packages/9b/c2/3b6034de81fbcc43de8aeb209073a2286dfb50b86e927b4efd81cf848197/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661", size = 1789201, upload-time = "2025-10-28T20:58:34.618Z" }, + { url = "https://files.pythonhosted.org/packages/c9/38/c15dcf6d4d890217dae79d7213988f4e5fe6183d43893a9cf2fe9e84ca8d/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98", size = 1776868, upload-time = "2025-10-28T20:58:38.835Z" }, + { url = "https://files.pythonhosted.org/packages/04/75/f74fd178ac81adf4f283a74847807ade5150e48feda6aef024403716c30c/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693", size = 1790660, upload-time = "2025-10-28T20:58:41.507Z" }, + { url = "https://files.pythonhosted.org/packages/e7/80/7368bd0d06b16b3aba358c16b919e9c46cf11587dc572091031b0e9e3ef0/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a", size = 1617548, upload-time = "2025-10-28T20:58:43.674Z" }, + { url = "https://files.pythonhosted.org/packages/7d/4b/a6212790c50483cb3212e507378fbe26b5086d73941e1ec4b56a30439688/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be", size = 1817240, upload-time = "2025-10-28T20:58:45.787Z" }, + { url = "https://files.pythonhosted.org/packages/ff/f7/ba5f0ba4ea8d8f3c32850912944532b933acbf0f3a75546b89269b9b7dde/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c", size = 1762334, upload-time = "2025-10-28T20:58:47.936Z" }, + { url = "https://files.pythonhosted.org/packages/7e/83/1a5a1856574588b1cad63609ea9ad75b32a8353ac995d830bf5da9357364/aiohttp-3.13.2-cp314-cp314t-win32.whl", hash = "sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734", size = 464685, upload-time = "2025-10-28T20:58:50.642Z" }, + { url = "https://files.pythonhosted.org/packages/9f/4d/d22668674122c08f4d56972297c51a624e64b3ed1efaa40187607a7cb66e/aiohttp-3.13.2-cp314-cp314t-win_amd64.whl", hash = "sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f", size = 498093, upload-time = "2025-10-28T20:58:52.782Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "async-timeout" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274, upload-time = "2024-11-06T16:41:39.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233, upload-time = "2024-11-06T16:41:37.9Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + [[package]] name = "backports-tarfile" version = "1.2.0" @@ -285,9 +445,11 @@ pyside6 = [ [package.dev-dependencies] dev = [ + { name = "aiohttp" }, { name = "build" }, { name = "pandas", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, + { name = "pyside6-qtads" }, { name = "pytest" }, { name = "pytest-qt" }, { name = "twine" }, @@ -306,13 +468,136 @@ provides-extras = ["pyside6", "pyqt6", "pyqt5"] [package.metadata.requires-dev] dev = [ + { name = "aiohttp" }, { name = "build" }, { name = "pandas", specifier = ">=2.0.0" }, + { name = "pyside6-qtads" }, { name = "pytest", specifier = ">=9.0.1" }, { name = "pytest-qt", specifier = ">=4.5.0" }, { name = "twine" }, ] +[[package]] +name = "frozenlist" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/4a/557715d5047da48d54e659203b9335be7bfaafda2c3f627b7c47e0b3aaf3/frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011", size = 86230, upload-time = "2025-10-06T05:35:23.699Z" }, + { url = "https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565", size = 49621, upload-time = "2025-10-06T05:35:25.341Z" }, + { url = "https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad", size = 49889, upload-time = "2025-10-06T05:35:26.797Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2", size = 219464, upload-time = "2025-10-06T05:35:28.254Z" }, + { url = "https://files.pythonhosted.org/packages/6b/83/4d587dccbfca74cb8b810472392ad62bfa100bf8108c7223eb4c4fa2f7b3/frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186", size = 221649, upload-time = "2025-10-06T05:35:29.454Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c6/fd3b9cd046ec5fff9dab66831083bc2077006a874a2d3d9247dea93ddf7e/frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e", size = 219188, upload-time = "2025-10-06T05:35:30.951Z" }, + { url = "https://files.pythonhosted.org/packages/ce/80/6693f55eb2e085fc8afb28cf611448fb5b90e98e068fa1d1b8d8e66e5c7d/frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450", size = 231748, upload-time = "2025-10-06T05:35:32.101Z" }, + { url = "https://files.pythonhosted.org/packages/97/d6/e9459f7c5183854abd989ba384fe0cc1a0fb795a83c033f0571ec5933ca4/frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef", size = 236351, upload-time = "2025-10-06T05:35:33.834Z" }, + { url = "https://files.pythonhosted.org/packages/97/92/24e97474b65c0262e9ecd076e826bfd1d3074adcc165a256e42e7b8a7249/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4", size = 218767, upload-time = "2025-10-06T05:35:35.205Z" }, + { url = "https://files.pythonhosted.org/packages/ee/bf/dc394a097508f15abff383c5108cb8ad880d1f64a725ed3b90d5c2fbf0bb/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff", size = 235887, upload-time = "2025-10-06T05:35:36.354Z" }, + { url = "https://files.pythonhosted.org/packages/40/90/25b201b9c015dbc999a5baf475a257010471a1fa8c200c843fd4abbee725/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c", size = 228785, upload-time = "2025-10-06T05:35:37.949Z" }, + { url = "https://files.pythonhosted.org/packages/84/f4/b5bc148df03082f05d2dd30c089e269acdbe251ac9a9cf4e727b2dbb8a3d/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f", size = 230312, upload-time = "2025-10-06T05:35:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/db/4b/87e95b5d15097c302430e647136b7d7ab2398a702390cf4c8601975709e7/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7", size = 217650, upload-time = "2025-10-06T05:35:40.377Z" }, + { url = "https://files.pythonhosted.org/packages/e5/70/78a0315d1fea97120591a83e0acd644da638c872f142fd72a6cebee825f3/frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a", size = 39659, upload-time = "2025-10-06T05:35:41.863Z" }, + { url = "https://files.pythonhosted.org/packages/66/aa/3f04523fb189a00e147e60c5b2205126118f216b0aa908035c45336e27e4/frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6", size = 43837, upload-time = "2025-10-06T05:35:43.205Z" }, + { url = "https://files.pythonhosted.org/packages/39/75/1135feecdd7c336938bd55b4dc3b0dfc46d85b9be12ef2628574b28de776/frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e", size = 39989, upload-time = "2025-10-06T05:35:44.596Z" }, + { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912, upload-time = "2025-10-06T05:35:45.98Z" }, + { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046, upload-time = "2025-10-06T05:35:47.009Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119, upload-time = "2025-10-06T05:35:48.38Z" }, + { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067, upload-time = "2025-10-06T05:35:49.97Z" }, + { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160, upload-time = "2025-10-06T05:35:51.729Z" }, + { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544, upload-time = "2025-10-06T05:35:53.246Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797, upload-time = "2025-10-06T05:35:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923, upload-time = "2025-10-06T05:35:55.861Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886, upload-time = "2025-10-06T05:35:57.399Z" }, + { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731, upload-time = "2025-10-06T05:35:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544, upload-time = "2025-10-06T05:35:59.719Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806, upload-time = "2025-10-06T05:36:00.959Z" }, + { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382, upload-time = "2025-10-06T05:36:02.22Z" }, + { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647, upload-time = "2025-10-06T05:36:03.409Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064, upload-time = "2025-10-06T05:36:04.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937, upload-time = "2025-10-06T05:36:05.669Z" }, + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" }, + { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127, upload-time = "2025-10-06T05:37:08.438Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698, upload-time = "2025-10-06T05:37:09.48Z" }, + { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749, upload-time = "2025-10-06T05:37:10.569Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298, upload-time = "2025-10-06T05:37:11.993Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015, upload-time = "2025-10-06T05:37:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038, upload-time = "2025-10-06T05:37:14.577Z" }, + { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130, upload-time = "2025-10-06T05:37:15.781Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845, upload-time = "2025-10-06T05:37:17.037Z" }, + { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131, upload-time = "2025-10-06T05:37:18.221Z" }, + { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542, upload-time = "2025-10-06T05:37:19.771Z" }, + { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308, upload-time = "2025-10-06T05:37:20.969Z" }, + { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210, upload-time = "2025-10-06T05:37:22.252Z" }, + { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972, upload-time = "2025-10-06T05:37:23.5Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536, upload-time = "2025-10-06T05:37:25.581Z" }, + { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330, upload-time = "2025-10-06T05:37:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627, upload-time = "2025-10-06T05:37:28.075Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238, upload-time = "2025-10-06T05:37:29.373Z" }, + { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738, upload-time = "2025-10-06T05:37:30.792Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739, upload-time = "2025-10-06T05:37:32.127Z" }, + { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186, upload-time = "2025-10-06T05:37:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196, upload-time = "2025-10-06T05:37:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830, upload-time = "2025-10-06T05:37:37.663Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289, upload-time = "2025-10-06T05:37:39.261Z" }, + { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318, upload-time = "2025-10-06T05:37:43.213Z" }, + { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814, upload-time = "2025-10-06T05:37:45.337Z" }, + { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762, upload-time = "2025-10-06T05:37:46.657Z" }, + { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470, upload-time = "2025-10-06T05:37:47.946Z" }, + { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042, upload-time = "2025-10-06T05:37:49.499Z" }, + { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148, upload-time = "2025-10-06T05:37:50.745Z" }, + { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676, upload-time = "2025-10-06T05:37:52.222Z" }, + { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451, upload-time = "2025-10-06T05:37:53.425Z" }, + { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507, upload-time = "2025-10-06T05:37:54.513Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, +] + [[package]] name = "id" version = "1.5.0" @@ -448,6 +733,144 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, ] +[[package]] +name = "multidict" +version = "6.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/80/1e/5492c365f222f907de1039b91f922b93fa4f764c713ee858d235495d8f50/multidict-6.7.0.tar.gz", hash = "sha256:c6e99d9a65ca282e578dfea819cfa9c0a62b2499d8677392e09feaf305e9e6f5", size = 101834, upload-time = "2025-10-06T14:52:30.657Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/63/7bdd4adc330abcca54c85728db2327130e49e52e8c3ce685cec44e0f2e9f/multidict-6.7.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9f474ad5acda359c8758c8accc22032c6abe6dc87a8be2440d097785e27a9349", size = 77153, upload-time = "2025-10-06T14:48:26.409Z" }, + { url = "https://files.pythonhosted.org/packages/3f/bb/b6c35ff175ed1a3142222b78455ee31be71a8396ed3ab5280fbe3ebe4e85/multidict-6.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b7a9db5a870f780220e931d0002bbfd88fb53aceb6293251e2c839415c1b20e", size = 44993, upload-time = "2025-10-06T14:48:28.4Z" }, + { url = "https://files.pythonhosted.org/packages/e0/1f/064c77877c5fa6df6d346e68075c0f6998547afe952d6471b4c5f6a7345d/multidict-6.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:03ca744319864e92721195fa28c7a3b2bc7b686246b35e4078c1e4d0eb5466d3", size = 44607, upload-time = "2025-10-06T14:48:29.581Z" }, + { url = "https://files.pythonhosted.org/packages/04/7a/bf6aa92065dd47f287690000b3d7d332edfccb2277634cadf6a810463c6a/multidict-6.7.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f0e77e3c0008bc9316e662624535b88d360c3a5d3f81e15cf12c139a75250046", size = 241847, upload-time = "2025-10-06T14:48:32.107Z" }, + { url = "https://files.pythonhosted.org/packages/94/39/297a8de920f76eda343e4ce05f3b489f0ab3f9504f2576dfb37b7c08ca08/multidict-6.7.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08325c9e5367aa379a3496aa9a022fe8837ff22e00b94db256d3a1378c76ab32", size = 242616, upload-time = "2025-10-06T14:48:34.054Z" }, + { url = "https://files.pythonhosted.org/packages/39/3a/d0eee2898cfd9d654aea6cb8c4addc2f9756e9a7e09391cfe55541f917f7/multidict-6.7.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e2862408c99f84aa571ab462d25236ef9cb12a602ea959ba9c9009a54902fc73", size = 222333, upload-time = "2025-10-06T14:48:35.9Z" }, + { url = "https://files.pythonhosted.org/packages/05/48/3b328851193c7a4240815b71eea165b49248867bbb6153a0aee227a0bb47/multidict-6.7.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4d72a9a2d885f5c208b0cb91ff2ed43636bb7e345ec839ff64708e04f69a13cc", size = 253239, upload-time = "2025-10-06T14:48:37.302Z" }, + { url = "https://files.pythonhosted.org/packages/b1/ca/0706a98c8d126a89245413225ca4a3fefc8435014de309cf8b30acb68841/multidict-6.7.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:478cc36476687bac1514d651cbbaa94b86b0732fb6855c60c673794c7dd2da62", size = 251618, upload-time = "2025-10-06T14:48:38.963Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4f/9c7992f245554d8b173f6f0a048ad24b3e645d883f096857ec2c0822b8bd/multidict-6.7.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6843b28b0364dc605f21481c90fadb5f60d9123b442eb8a726bb74feef588a84", size = 241655, upload-time = "2025-10-06T14:48:40.312Z" }, + { url = "https://files.pythonhosted.org/packages/31/79/26a85991ae67efd1c0b1fc2e0c275b8a6aceeb155a68861f63f87a798f16/multidict-6.7.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23bfeee5316266e5ee2d625df2d2c602b829435fc3a235c2ba2131495706e4a0", size = 239245, upload-time = "2025-10-06T14:48:41.848Z" }, + { url = "https://files.pythonhosted.org/packages/14/1e/75fa96394478930b79d0302eaf9a6c69f34005a1a5251ac8b9c336486ec9/multidict-6.7.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:680878b9f3d45c31e1f730eef731f9b0bc1da456155688c6745ee84eb818e90e", size = 233523, upload-time = "2025-10-06T14:48:43.749Z" }, + { url = "https://files.pythonhosted.org/packages/b2/5e/085544cb9f9c4ad2b5d97467c15f856df8d9bac410cffd5c43991a5d878b/multidict-6.7.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:eb866162ef2f45063acc7a53a88ef6fe8bf121d45c30ea3c9cd87ce7e191a8d4", size = 243129, upload-time = "2025-10-06T14:48:45.225Z" }, + { url = "https://files.pythonhosted.org/packages/b9/c3/e9d9e2f20c9474e7a8fcef28f863c5cbd29bb5adce6b70cebe8bdad0039d/multidict-6.7.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:df0e3bf7993bdbeca5ac25aa859cf40d39019e015c9c91809ba7093967f7a648", size = 248999, upload-time = "2025-10-06T14:48:46.703Z" }, + { url = "https://files.pythonhosted.org/packages/b5/3f/df171b6efa3239ae33b97b887e42671cd1d94d460614bfb2c30ffdab3b95/multidict-6.7.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:661709cdcd919a2ece2234f9bae7174e5220c80b034585d7d8a755632d3e2111", size = 243711, upload-time = "2025-10-06T14:48:48.146Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2f/9b5564888c4e14b9af64c54acf149263721a283aaf4aa0ae89b091d5d8c1/multidict-6.7.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:096f52730c3fb8ed419db2d44391932b63891b2c5ed14850a7e215c0ba9ade36", size = 237504, upload-time = "2025-10-06T14:48:49.447Z" }, + { url = "https://files.pythonhosted.org/packages/6c/3a/0bd6ca0f7d96d790542d591c8c3354c1e1b6bfd2024d4d92dc3d87485ec7/multidict-6.7.0-cp310-cp310-win32.whl", hash = "sha256:afa8a2978ec65d2336305550535c9c4ff50ee527914328c8677b3973ade52b85", size = 41422, upload-time = "2025-10-06T14:48:50.789Z" }, + { url = "https://files.pythonhosted.org/packages/00/35/f6a637ea2c75f0d3b7c7d41b1189189acff0d9deeb8b8f35536bb30f5e33/multidict-6.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:b15b3afff74f707b9275d5ba6a91ae8f6429c3ffb29bbfd216b0b375a56f13d7", size = 46050, upload-time = "2025-10-06T14:48:51.938Z" }, + { url = "https://files.pythonhosted.org/packages/e7/b8/f7bf8329b39893d02d9d95cf610c75885d12fc0f402b1c894e1c8e01c916/multidict-6.7.0-cp310-cp310-win_arm64.whl", hash = "sha256:4b73189894398d59131a66ff157837b1fafea9974be486d036bb3d32331fdbf0", size = 43153, upload-time = "2025-10-06T14:48:53.146Z" }, + { url = "https://files.pythonhosted.org/packages/34/9e/5c727587644d67b2ed479041e4b1c58e30afc011e3d45d25bbe35781217c/multidict-6.7.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4d409aa42a94c0b3fa617708ef5276dfe81012ba6753a0370fcc9d0195d0a1fc", size = 76604, upload-time = "2025-10-06T14:48:54.277Z" }, + { url = "https://files.pythonhosted.org/packages/17/e4/67b5c27bd17c085a5ea8f1ec05b8a3e5cba0ca734bfcad5560fb129e70ca/multidict-6.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:14c9e076eede3b54c636f8ce1c9c252b5f057c62131211f0ceeec273810c9721", size = 44715, upload-time = "2025-10-06T14:48:55.445Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e1/866a5d77be6ea435711bef2a4291eed11032679b6b28b56b4776ab06ba3e/multidict-6.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c09703000a9d0fa3c3404b27041e574cc7f4df4c6563873246d0e11812a94b6", size = 44332, upload-time = "2025-10-06T14:48:56.706Z" }, + { url = "https://files.pythonhosted.org/packages/31/61/0c2d50241ada71ff61a79518db85ada85fdabfcf395d5968dae1cbda04e5/multidict-6.7.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a265acbb7bb33a3a2d626afbe756371dce0279e7b17f4f4eda406459c2b5ff1c", size = 245212, upload-time = "2025-10-06T14:48:58.042Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e0/919666a4e4b57fff1b57f279be1c9316e6cdc5de8a8b525d76f6598fefc7/multidict-6.7.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51cb455de290ae462593e5b1cb1118c5c22ea7f0d3620d9940bf695cea5a4bd7", size = 246671, upload-time = "2025-10-06T14:49:00.004Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cc/d027d9c5a520f3321b65adea289b965e7bcbd2c34402663f482648c716ce/multidict-6.7.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:db99677b4457c7a5c5a949353e125ba72d62b35f74e26da141530fbb012218a7", size = 225491, upload-time = "2025-10-06T14:49:01.393Z" }, + { url = "https://files.pythonhosted.org/packages/75/c4/bbd633980ce6155a28ff04e6a6492dd3335858394d7bb752d8b108708558/multidict-6.7.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f470f68adc395e0183b92a2f4689264d1ea4b40504a24d9882c27375e6662bb9", size = 257322, upload-time = "2025-10-06T14:49:02.745Z" }, + { url = "https://files.pythonhosted.org/packages/4c/6d/d622322d344f1f053eae47e033b0b3f965af01212de21b10bcf91be991fb/multidict-6.7.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0db4956f82723cc1c270de9c6e799b4c341d327762ec78ef82bb962f79cc07d8", size = 254694, upload-time = "2025-10-06T14:49:04.15Z" }, + { url = "https://files.pythonhosted.org/packages/a8/9f/78f8761c2705d4c6d7516faed63c0ebdac569f6db1bef95e0d5218fdc146/multidict-6.7.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e56d780c238f9e1ae66a22d2adf8d16f485381878250db8d496623cd38b22bd", size = 246715, upload-time = "2025-10-06T14:49:05.967Z" }, + { url = "https://files.pythonhosted.org/packages/78/59/950818e04f91b9c2b95aab3d923d9eabd01689d0dcd889563988e9ea0fd8/multidict-6.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d14baca2ee12c1a64740d4531356ba50b82543017f3ad6de0deb943c5979abb", size = 243189, upload-time = "2025-10-06T14:49:07.37Z" }, + { url = "https://files.pythonhosted.org/packages/7a/3d/77c79e1934cad2ee74991840f8a0110966d9599b3af95964c0cd79bb905b/multidict-6.7.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:295a92a76188917c7f99cda95858c822f9e4aae5824246bba9b6b44004ddd0a6", size = 237845, upload-time = "2025-10-06T14:49:08.759Z" }, + { url = "https://files.pythonhosted.org/packages/63/1b/834ce32a0a97a3b70f86437f685f880136677ac00d8bce0027e9fd9c2db7/multidict-6.7.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:39f1719f57adbb767ef592a50ae5ebb794220d1188f9ca93de471336401c34d2", size = 246374, upload-time = "2025-10-06T14:49:10.574Z" }, + { url = "https://files.pythonhosted.org/packages/23/ef/43d1c3ba205b5dec93dc97f3fba179dfa47910fc73aaaea4f7ceb41cec2a/multidict-6.7.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0a13fb8e748dfc94749f622de065dd5c1def7e0d2216dba72b1d8069a389c6ff", size = 253345, upload-time = "2025-10-06T14:49:12.331Z" }, + { url = "https://files.pythonhosted.org/packages/6b/03/eaf95bcc2d19ead522001f6a650ef32811aa9e3624ff0ad37c445c7a588c/multidict-6.7.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e3aa16de190d29a0ea1b48253c57d99a68492c8dd8948638073ab9e74dc9410b", size = 246940, upload-time = "2025-10-06T14:49:13.821Z" }, + { url = "https://files.pythonhosted.org/packages/e8/df/ec8a5fd66ea6cd6f525b1fcbb23511b033c3e9bc42b81384834ffa484a62/multidict-6.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a048ce45dcdaaf1defb76b2e684f997fb5abf74437b6cb7b22ddad934a964e34", size = 242229, upload-time = "2025-10-06T14:49:15.603Z" }, + { url = "https://files.pythonhosted.org/packages/8a/a2/59b405d59fd39ec86d1142630e9049243015a5f5291ba49cadf3c090c541/multidict-6.7.0-cp311-cp311-win32.whl", hash = "sha256:a90af66facec4cebe4181b9e62a68be65e45ac9b52b67de9eec118701856e7ff", size = 41308, upload-time = "2025-10-06T14:49:16.871Z" }, + { url = "https://files.pythonhosted.org/packages/32/0f/13228f26f8b882c34da36efa776c3b7348455ec383bab4a66390e42963ae/multidict-6.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:95b5ffa4349df2887518bb839409bcf22caa72d82beec453216802f475b23c81", size = 46037, upload-time = "2025-10-06T14:49:18.457Z" }, + { url = "https://files.pythonhosted.org/packages/84/1f/68588e31b000535a3207fd3c909ebeec4fb36b52c442107499c18a896a2a/multidict-6.7.0-cp311-cp311-win_arm64.whl", hash = "sha256:329aa225b085b6f004a4955271a7ba9f1087e39dcb7e65f6284a988264a63912", size = 43023, upload-time = "2025-10-06T14:49:19.648Z" }, + { url = "https://files.pythonhosted.org/packages/c2/9e/9f61ac18d9c8b475889f32ccfa91c9f59363480613fc807b6e3023d6f60b/multidict-6.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8a3862568a36d26e650a19bb5cbbba14b71789032aebc0423f8cc5f150730184", size = 76877, upload-time = "2025-10-06T14:49:20.884Z" }, + { url = "https://files.pythonhosted.org/packages/38/6f/614f09a04e6184f8824268fce4bc925e9849edfa654ddd59f0b64508c595/multidict-6.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:960c60b5849b9b4f9dcc9bea6e3626143c252c74113df2c1540aebce70209b45", size = 45467, upload-time = "2025-10-06T14:49:22.054Z" }, + { url = "https://files.pythonhosted.org/packages/b3/93/c4f67a436dd026f2e780c433277fff72be79152894d9fc36f44569cab1a6/multidict-6.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2049be98fb57a31b4ccf870bf377af2504d4ae35646a19037ec271e4c07998aa", size = 43834, upload-time = "2025-10-06T14:49:23.566Z" }, + { url = "https://files.pythonhosted.org/packages/7f/f5/013798161ca665e4a422afbc5e2d9e4070142a9ff8905e482139cd09e4d0/multidict-6.7.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0934f3843a1860dd465d38895c17fce1f1cb37295149ab05cd1b9a03afacb2a7", size = 250545, upload-time = "2025-10-06T14:49:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/71/2f/91dbac13e0ba94669ea5119ba267c9a832f0cb65419aca75549fcf09a3dc/multidict-6.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b3e34f3a1b8131ba06f1a73adab24f30934d148afcd5f5de9a73565a4404384e", size = 258305, upload-time = "2025-10-06T14:49:26.778Z" }, + { url = "https://files.pythonhosted.org/packages/ef/b0/754038b26f6e04488b48ac621f779c341338d78503fb45403755af2df477/multidict-6.7.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:efbb54e98446892590dc2458c19c10344ee9a883a79b5cec4bc34d6656e8d546", size = 242363, upload-time = "2025-10-06T14:49:28.562Z" }, + { url = "https://files.pythonhosted.org/packages/87/15/9da40b9336a7c9fa606c4cf2ed80a649dffeb42b905d4f63a1d7eb17d746/multidict-6.7.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a35c5fc61d4f51eb045061e7967cfe3123d622cd500e8868e7c0c592a09fedc4", size = 268375, upload-time = "2025-10-06T14:49:29.96Z" }, + { url = "https://files.pythonhosted.org/packages/82/72/c53fcade0cc94dfaad583105fd92b3a783af2091eddcb41a6d5a52474000/multidict-6.7.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29fe6740ebccba4175af1b9b87bf553e9c15cd5868ee967e010efcf94e4fd0f1", size = 269346, upload-time = "2025-10-06T14:49:31.404Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e2/9baffdae21a76f77ef8447f1a05a96ec4bc0a24dae08767abc0a2fe680b8/multidict-6.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:123e2a72e20537add2f33a79e605f6191fba2afda4cbb876e35c1a7074298a7d", size = 256107, upload-time = "2025-10-06T14:49:32.974Z" }, + { url = "https://files.pythonhosted.org/packages/3c/06/3f06f611087dc60d65ef775f1fb5aca7c6d61c6db4990e7cda0cef9b1651/multidict-6.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b284e319754366c1aee2267a2036248b24eeb17ecd5dc16022095e747f2f4304", size = 253592, upload-time = "2025-10-06T14:49:34.52Z" }, + { url = "https://files.pythonhosted.org/packages/20/24/54e804ec7945b6023b340c412ce9c3f81e91b3bf5fa5ce65558740141bee/multidict-6.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:803d685de7be4303b5a657b76e2f6d1240e7e0a8aa2968ad5811fa2285553a12", size = 251024, upload-time = "2025-10-06T14:49:35.956Z" }, + { url = "https://files.pythonhosted.org/packages/14/48/011cba467ea0b17ceb938315d219391d3e421dfd35928e5dbdc3f4ae76ef/multidict-6.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c04a328260dfd5db8c39538f999f02779012268f54614902d0afc775d44e0a62", size = 251484, upload-time = "2025-10-06T14:49:37.631Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2f/919258b43bb35b99fa127435cfb2d91798eb3a943396631ef43e3720dcf4/multidict-6.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8a19cdb57cd3df4cd865849d93ee14920fb97224300c88501f16ecfa2604b4e0", size = 263579, upload-time = "2025-10-06T14:49:39.502Z" }, + { url = "https://files.pythonhosted.org/packages/31/22/a0e884d86b5242b5a74cf08e876bdf299e413016b66e55511f7a804a366e/multidict-6.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b2fd74c52accced7e75de26023b7dccee62511a600e62311b918ec5c168fc2a", size = 259654, upload-time = "2025-10-06T14:49:41.32Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e5/17e10e1b5c5f5a40f2fcbb45953c9b215f8a4098003915e46a93f5fcaa8f/multidict-6.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3e8bfdd0e487acf992407a140d2589fe598238eaeffa3da8448d63a63cd363f8", size = 251511, upload-time = "2025-10-06T14:49:46.021Z" }, + { url = "https://files.pythonhosted.org/packages/e3/9a/201bb1e17e7af53139597069c375e7b0dcbd47594604f65c2d5359508566/multidict-6.7.0-cp312-cp312-win32.whl", hash = "sha256:dd32a49400a2c3d52088e120ee00c1e3576cbff7e10b98467962c74fdb762ed4", size = 41895, upload-time = "2025-10-06T14:49:48.718Z" }, + { url = "https://files.pythonhosted.org/packages/46/e2/348cd32faad84eaf1d20cce80e2bb0ef8d312c55bca1f7fa9865e7770aaf/multidict-6.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:92abb658ef2d7ef22ac9f8bb88e8b6c3e571671534e029359b6d9e845923eb1b", size = 46073, upload-time = "2025-10-06T14:49:50.28Z" }, + { url = "https://files.pythonhosted.org/packages/25/ec/aad2613c1910dce907480e0c3aa306905830f25df2e54ccc9dea450cb5aa/multidict-6.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:490dab541a6a642ce1a9d61a4781656b346a55c13038f0b1244653828e3a83ec", size = 43226, upload-time = "2025-10-06T14:49:52.304Z" }, + { url = "https://files.pythonhosted.org/packages/d2/86/33272a544eeb36d66e4d9a920602d1a2f57d4ebea4ef3cdfe5a912574c95/multidict-6.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bee7c0588aa0076ce77c0ea5d19a68d76ad81fcd9fe8501003b9a24f9d4000f6", size = 76135, upload-time = "2025-10-06T14:49:54.26Z" }, + { url = "https://files.pythonhosted.org/packages/91/1c/eb97db117a1ebe46d457a3d235a7b9d2e6dcab174f42d1b67663dd9e5371/multidict-6.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7ef6b61cad77091056ce0e7ce69814ef72afacb150b7ac6a3e9470def2198159", size = 45117, upload-time = "2025-10-06T14:49:55.82Z" }, + { url = "https://files.pythonhosted.org/packages/f1/d8/6c3442322e41fb1dd4de8bd67bfd11cd72352ac131f6368315617de752f1/multidict-6.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c0359b1ec12b1d6849c59f9d319610b7f20ef990a6d454ab151aa0e3b9f78ca", size = 43472, upload-time = "2025-10-06T14:49:57.048Z" }, + { url = "https://files.pythonhosted.org/packages/75/3f/e2639e80325af0b6c6febdf8e57cc07043ff15f57fa1ef808f4ccb5ac4cd/multidict-6.7.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cd240939f71c64bd658f186330603aac1a9a81bf6273f523fca63673cb7378a8", size = 249342, upload-time = "2025-10-06T14:49:58.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cc/84e0585f805cbeaa9cbdaa95f9a3d6aed745b9d25700623ac89a6ecff400/multidict-6.7.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60a4d75718a5efa473ebd5ab685786ba0c67b8381f781d1be14da49f1a2dc60", size = 257082, upload-time = "2025-10-06T14:49:59.89Z" }, + { url = "https://files.pythonhosted.org/packages/b0/9c/ac851c107c92289acbbf5cfb485694084690c1b17e555f44952c26ddc5bd/multidict-6.7.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53a42d364f323275126aff81fb67c5ca1b7a04fda0546245730a55c8c5f24bc4", size = 240704, upload-time = "2025-10-06T14:50:01.485Z" }, + { url = "https://files.pythonhosted.org/packages/50/cc/5f93e99427248c09da95b62d64b25748a5f5c98c7c2ab09825a1d6af0e15/multidict-6.7.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3b29b980d0ddbecb736735ee5bef69bb2ddca56eff603c86f3f29a1128299b4f", size = 266355, upload-time = "2025-10-06T14:50:02.955Z" }, + { url = "https://files.pythonhosted.org/packages/ec/0c/2ec1d883ceb79c6f7f6d7ad90c919c898f5d1c6ea96d322751420211e072/multidict-6.7.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f8a93b1c0ed2d04b97a5e9336fd2d33371b9a6e29ab7dd6503d63407c20ffbaf", size = 267259, upload-time = "2025-10-06T14:50:04.446Z" }, + { url = "https://files.pythonhosted.org/packages/c6/2d/f0b184fa88d6630aa267680bdb8623fb69cb0d024b8c6f0d23f9a0f406d3/multidict-6.7.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ff96e8815eecacc6645da76c413eb3b3d34cfca256c70b16b286a687d013c32", size = 254903, upload-time = "2025-10-06T14:50:05.98Z" }, + { url = "https://files.pythonhosted.org/packages/06/c9/11ea263ad0df7dfabcad404feb3c0dd40b131bc7f232d5537f2fb1356951/multidict-6.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7516c579652f6a6be0e266aec0acd0db80829ca305c3d771ed898538804c2036", size = 252365, upload-time = "2025-10-06T14:50:07.511Z" }, + { url = "https://files.pythonhosted.org/packages/41/88/d714b86ee2c17d6e09850c70c9d310abac3d808ab49dfa16b43aba9d53fd/multidict-6.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:040f393368e63fb0f3330e70c26bfd336656bed925e5cbe17c9da839a6ab13ec", size = 250062, upload-time = "2025-10-06T14:50:09.074Z" }, + { url = "https://files.pythonhosted.org/packages/15/fe/ad407bb9e818c2b31383f6131ca19ea7e35ce93cf1310fce69f12e89de75/multidict-6.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b3bc26a951007b1057a1c543af845f1c7e3e71cc240ed1ace7bf4484aa99196e", size = 249683, upload-time = "2025-10-06T14:50:10.714Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a4/a89abdb0229e533fb925e7c6e5c40201c2873efebc9abaf14046a4536ee6/multidict-6.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7b022717c748dd1992a83e219587aabe45980d88969f01b316e78683e6285f64", size = 261254, upload-time = "2025-10-06T14:50:12.28Z" }, + { url = "https://files.pythonhosted.org/packages/8d/aa/0e2b27bd88b40a4fb8dc53dd74eecac70edaa4c1dd0707eb2164da3675b3/multidict-6.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:9600082733859f00d79dee64effc7aef1beb26adb297416a4ad2116fd61374bd", size = 257967, upload-time = "2025-10-06T14:50:14.16Z" }, + { url = "https://files.pythonhosted.org/packages/d0/8e/0c67b7120d5d5f6d874ed85a085f9dc770a7f9d8813e80f44a9fec820bb7/multidict-6.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:94218fcec4d72bc61df51c198d098ce2b378e0ccbac41ddbed5ef44092913288", size = 250085, upload-time = "2025-10-06T14:50:15.639Z" }, + { url = "https://files.pythonhosted.org/packages/ba/55/b73e1d624ea4b8fd4dd07a3bb70f6e4c7c6c5d9d640a41c6ffe5cdbd2a55/multidict-6.7.0-cp313-cp313-win32.whl", hash = "sha256:a37bd74c3fa9d00be2d7b8eca074dc56bd8077ddd2917a839bd989612671ed17", size = 41713, upload-time = "2025-10-06T14:50:17.066Z" }, + { url = "https://files.pythonhosted.org/packages/32/31/75c59e7d3b4205075b4c183fa4ca398a2daf2303ddf616b04ae6ef55cffe/multidict-6.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:30d193c6cc6d559db42b6bcec8a5d395d34d60c9877a0b71ecd7c204fcf15390", size = 45915, upload-time = "2025-10-06T14:50:18.264Z" }, + { url = "https://files.pythonhosted.org/packages/31/2a/8987831e811f1184c22bc2e45844934385363ee61c0a2dcfa8f71b87e608/multidict-6.7.0-cp313-cp313-win_arm64.whl", hash = "sha256:ea3334cabe4d41b7ccd01e4d349828678794edbc2d3ae97fc162a3312095092e", size = 43077, upload-time = "2025-10-06T14:50:19.853Z" }, + { url = "https://files.pythonhosted.org/packages/e8/68/7b3a5170a382a340147337b300b9eb25a9ddb573bcdfff19c0fa3f31ffba/multidict-6.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ad9ce259f50abd98a1ca0aa6e490b58c316a0fce0617f609723e40804add2c00", size = 83114, upload-time = "2025-10-06T14:50:21.223Z" }, + { url = "https://files.pythonhosted.org/packages/55/5c/3fa2d07c84df4e302060f555bbf539310980362236ad49f50eeb0a1c1eb9/multidict-6.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07f5594ac6d084cbb5de2df218d78baf55ef150b91f0ff8a21cc7a2e3a5a58eb", size = 48442, upload-time = "2025-10-06T14:50:22.871Z" }, + { url = "https://files.pythonhosted.org/packages/fc/56/67212d33239797f9bd91962bb899d72bb0f4c35a8652dcdb8ed049bef878/multidict-6.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0591b48acf279821a579282444814a2d8d0af624ae0bc600aa4d1b920b6e924b", size = 46885, upload-time = "2025-10-06T14:50:24.258Z" }, + { url = "https://files.pythonhosted.org/packages/46/d1/908f896224290350721597a61a69cd19b89ad8ee0ae1f38b3f5cd12ea2ac/multidict-6.7.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:749a72584761531d2b9467cfbdfd29487ee21124c304c4b6cb760d8777b27f9c", size = 242588, upload-time = "2025-10-06T14:50:25.716Z" }, + { url = "https://files.pythonhosted.org/packages/ab/67/8604288bbd68680eee0ab568fdcb56171d8b23a01bcd5cb0c8fedf6e5d99/multidict-6.7.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b4c3d199f953acd5b446bf7c0de1fe25d94e09e79086f8dc2f48a11a129cdf1", size = 249966, upload-time = "2025-10-06T14:50:28.192Z" }, + { url = "https://files.pythonhosted.org/packages/20/33/9228d76339f1ba51e3efef7da3ebd91964d3006217aae13211653193c3ff/multidict-6.7.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9fb0211dfc3b51efea2f349ec92c114d7754dd62c01f81c3e32b765b70c45c9b", size = 228618, upload-time = "2025-10-06T14:50:29.82Z" }, + { url = "https://files.pythonhosted.org/packages/f8/2d/25d9b566d10cab1c42b3b9e5b11ef79c9111eaf4463b8c257a3bd89e0ead/multidict-6.7.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a027ec240fe73a8d6281872690b988eed307cd7d91b23998ff35ff577ca688b5", size = 257539, upload-time = "2025-10-06T14:50:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/b6/b1/8d1a965e6637fc33de3c0d8f414485c2b7e4af00f42cab3d84e7b955c222/multidict-6.7.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1d964afecdf3a8288789df2f5751dc0a8261138c3768d9af117ed384e538fad", size = 256345, upload-time = "2025-10-06T14:50:33.26Z" }, + { url = "https://files.pythonhosted.org/packages/ba/0c/06b5a8adbdeedada6f4fb8d8f193d44a347223b11939b42953eeb6530b6b/multidict-6.7.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:caf53b15b1b7df9fbd0709aa01409000a2b4dd03a5f6f5cc548183c7c8f8b63c", size = 247934, upload-time = "2025-10-06T14:50:34.808Z" }, + { url = "https://files.pythonhosted.org/packages/8f/31/b2491b5fe167ca044c6eb4b8f2c9f3b8a00b24c432c365358eadac5d7625/multidict-6.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:654030da3197d927f05a536a66186070e98765aa5142794c9904555d3a9d8fb5", size = 245243, upload-time = "2025-10-06T14:50:36.436Z" }, + { url = "https://files.pythonhosted.org/packages/61/1a/982913957cb90406c8c94f53001abd9eafc271cb3e70ff6371590bec478e/multidict-6.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:2090d3718829d1e484706a2f525e50c892237b2bf9b17a79b059cb98cddc2f10", size = 235878, upload-time = "2025-10-06T14:50:37.953Z" }, + { url = "https://files.pythonhosted.org/packages/be/c0/21435d804c1a1cf7a2608593f4d19bca5bcbd7a81a70b253fdd1c12af9c0/multidict-6.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d2cfeec3f6f45651b3d408c4acec0ebf3daa9bc8a112a084206f5db5d05b754", size = 243452, upload-time = "2025-10-06T14:50:39.574Z" }, + { url = "https://files.pythonhosted.org/packages/54/0a/4349d540d4a883863191be6eb9a928846d4ec0ea007d3dcd36323bb058ac/multidict-6.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:4ef089f985b8c194d341eb2c24ae6e7408c9a0e2e5658699c92f497437d88c3c", size = 252312, upload-time = "2025-10-06T14:50:41.612Z" }, + { url = "https://files.pythonhosted.org/packages/26/64/d5416038dbda1488daf16b676e4dbfd9674dde10a0cc8f4fc2b502d8125d/multidict-6.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e93a0617cd16998784bf4414c7e40f17a35d2350e5c6f0bd900d3a8e02bd3762", size = 246935, upload-time = "2025-10-06T14:50:43.972Z" }, + { url = "https://files.pythonhosted.org/packages/9f/8c/8290c50d14e49f35e0bd4abc25e1bc7711149ca9588ab7d04f886cdf03d9/multidict-6.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f0feece2ef8ebc42ed9e2e8c78fc4aa3cf455733b507c09ef7406364c94376c6", size = 243385, upload-time = "2025-10-06T14:50:45.648Z" }, + { url = "https://files.pythonhosted.org/packages/ef/a0/f83ae75e42d694b3fbad3e047670e511c138be747bc713cf1b10d5096416/multidict-6.7.0-cp313-cp313t-win32.whl", hash = "sha256:19a1d55338ec1be74ef62440ca9e04a2f001a04d0cc49a4983dc320ff0f3212d", size = 47777, upload-time = "2025-10-06T14:50:47.154Z" }, + { url = "https://files.pythonhosted.org/packages/dc/80/9b174a92814a3830b7357307a792300f42c9e94664b01dee8e457551fa66/multidict-6.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3da4fb467498df97e986af166b12d01f05d2e04f978a9c1c680ea1988e0bc4b6", size = 53104, upload-time = "2025-10-06T14:50:48.851Z" }, + { url = "https://files.pythonhosted.org/packages/cc/28/04baeaf0428d95bb7a7bea0e691ba2f31394338ba424fb0679a9ed0f4c09/multidict-6.7.0-cp313-cp313t-win_arm64.whl", hash = "sha256:b4121773c49a0776461f4a904cdf6264c88e42218aaa8407e803ca8025872792", size = 45503, upload-time = "2025-10-06T14:50:50.16Z" }, + { url = "https://files.pythonhosted.org/packages/e2/b1/3da6934455dd4b261d4c72f897e3a5728eba81db59959f3a639245891baa/multidict-6.7.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3bab1e4aff7adaa34410f93b1f8e57c4b36b9af0426a76003f441ee1d3c7e842", size = 75128, upload-time = "2025-10-06T14:50:51.92Z" }, + { url = "https://files.pythonhosted.org/packages/14/2c/f069cab5b51d175a1a2cb4ccdf7a2c2dabd58aa5bd933fa036a8d15e2404/multidict-6.7.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b8512bac933afc3e45fb2b18da8e59b78d4f408399a960339598374d4ae3b56b", size = 44410, upload-time = "2025-10-06T14:50:53.275Z" }, + { url = "https://files.pythonhosted.org/packages/42/e2/64bb41266427af6642b6b128e8774ed84c11b80a90702c13ac0a86bb10cc/multidict-6.7.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:79dcf9e477bc65414ebfea98ffd013cb39552b5ecd62908752e0e413d6d06e38", size = 43205, upload-time = "2025-10-06T14:50:54.911Z" }, + { url = "https://files.pythonhosted.org/packages/02/68/6b086fef8a3f1a8541b9236c594f0c9245617c29841f2e0395d979485cde/multidict-6.7.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:31bae522710064b5cbeddaf2e9f32b1abab70ac6ac91d42572502299e9953128", size = 245084, upload-time = "2025-10-06T14:50:56.369Z" }, + { url = "https://files.pythonhosted.org/packages/15/ee/f524093232007cd7a75c1d132df70f235cfd590a7c9eaccd7ff422ef4ae8/multidict-6.7.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a0df7ff02397bb63e2fd22af2c87dfa39e8c7f12947bc524dbdc528282c7e34", size = 252667, upload-time = "2025-10-06T14:50:57.991Z" }, + { url = "https://files.pythonhosted.org/packages/02/a5/eeb3f43ab45878f1895118c3ef157a480db58ede3f248e29b5354139c2c9/multidict-6.7.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7a0222514e8e4c514660e182d5156a415c13ef0aabbd71682fc714e327b95e99", size = 233590, upload-time = "2025-10-06T14:50:59.589Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1e/76d02f8270b97269d7e3dbd45644b1785bda457b474315f8cf999525a193/multidict-6.7.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2397ab4daaf2698eb51a76721e98db21ce4f52339e535725de03ea962b5a3202", size = 264112, upload-time = "2025-10-06T14:51:01.183Z" }, + { url = "https://files.pythonhosted.org/packages/76/0b/c28a70ecb58963847c2a8efe334904cd254812b10e535aefb3bcce513918/multidict-6.7.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8891681594162635948a636c9fe0ff21746aeb3dd5463f6e25d9bea3a8a39ca1", size = 261194, upload-time = "2025-10-06T14:51:02.794Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/2ab26e4209773223159b83aa32721b4021ffb08102f8ac7d689c943fded1/multidict-6.7.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18706cc31dbf402a7945916dd5cddf160251b6dab8a2c5f3d6d5a55949f676b3", size = 248510, upload-time = "2025-10-06T14:51:04.724Z" }, + { url = "https://files.pythonhosted.org/packages/93/cd/06c1fa8282af1d1c46fd55c10a7930af652afdce43999501d4d68664170c/multidict-6.7.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f844a1bbf1d207dd311a56f383f7eda2d0e134921d45751842d8235e7778965d", size = 248395, upload-time = "2025-10-06T14:51:06.306Z" }, + { url = "https://files.pythonhosted.org/packages/99/ac/82cb419dd6b04ccf9e7e61befc00c77614fc8134362488b553402ecd55ce/multidict-6.7.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d4393e3581e84e5645506923816b9cc81f5609a778c7e7534054091acc64d1c6", size = 239520, upload-time = "2025-10-06T14:51:08.091Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f3/a0f9bf09493421bd8716a362e0cd1d244f5a6550f5beffdd6b47e885b331/multidict-6.7.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:fbd18dc82d7bf274b37aa48d664534330af744e03bccf696d6f4c6042e7d19e7", size = 245479, upload-time = "2025-10-06T14:51:10.365Z" }, + { url = "https://files.pythonhosted.org/packages/8d/01/476d38fc73a212843f43c852b0eee266b6971f0e28329c2184a8df90c376/multidict-6.7.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:b6234e14f9314731ec45c42fc4554b88133ad53a09092cc48a88e771c125dadb", size = 258903, upload-time = "2025-10-06T14:51:12.466Z" }, + { url = "https://files.pythonhosted.org/packages/49/6d/23faeb0868adba613b817d0e69c5f15531b24d462af8012c4f6de4fa8dc3/multidict-6.7.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:08d4379f9744d8f78d98c8673c06e202ffa88296f009c71bbafe8a6bf847d01f", size = 252333, upload-time = "2025-10-06T14:51:14.48Z" }, + { url = "https://files.pythonhosted.org/packages/1e/cc/48d02ac22b30fa247f7dad82866e4b1015431092f4ba6ebc7e77596e0b18/multidict-6.7.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9fe04da3f79387f450fd0061d4dd2e45a72749d31bf634aecc9e27f24fdc4b3f", size = 243411, upload-time = "2025-10-06T14:51:16.072Z" }, + { url = "https://files.pythonhosted.org/packages/4a/03/29a8bf5a18abf1fe34535c88adbdfa88c9fb869b5a3b120692c64abe8284/multidict-6.7.0-cp314-cp314-win32.whl", hash = "sha256:fbafe31d191dfa7c4c51f7a6149c9fb7e914dcf9ffead27dcfd9f1ae382b3885", size = 40940, upload-time = "2025-10-06T14:51:17.544Z" }, + { url = "https://files.pythonhosted.org/packages/82/16/7ed27b680791b939de138f906d5cf2b4657b0d45ca6f5dd6236fdddafb1a/multidict-6.7.0-cp314-cp314-win_amd64.whl", hash = "sha256:2f67396ec0310764b9222a1728ced1ab638f61aadc6226f17a71dd9324f9a99c", size = 45087, upload-time = "2025-10-06T14:51:18.875Z" }, + { url = "https://files.pythonhosted.org/packages/cd/3c/e3e62eb35a1950292fe39315d3c89941e30a9d07d5d2df42965ab041da43/multidict-6.7.0-cp314-cp314-win_arm64.whl", hash = "sha256:ba672b26069957ee369cfa7fc180dde1fc6f176eaf1e6beaf61fbebbd3d9c000", size = 42368, upload-time = "2025-10-06T14:51:20.225Z" }, + { url = "https://files.pythonhosted.org/packages/8b/40/cd499bd0dbc5f1136726db3153042a735fffd0d77268e2ee20d5f33c010f/multidict-6.7.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:c1dcc7524066fa918c6a27d61444d4ee7900ec635779058571f70d042d86ed63", size = 82326, upload-time = "2025-10-06T14:51:21.588Z" }, + { url = "https://files.pythonhosted.org/packages/13/8a/18e031eca251c8df76daf0288e6790561806e439f5ce99a170b4af30676b/multidict-6.7.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:27e0b36c2d388dc7b6ced3406671b401e84ad7eb0656b8f3a2f46ed0ce483718", size = 48065, upload-time = "2025-10-06T14:51:22.93Z" }, + { url = "https://files.pythonhosted.org/packages/40/71/5e6701277470a87d234e433fb0a3a7deaf3bcd92566e421e7ae9776319de/multidict-6.7.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2a7baa46a22e77f0988e3b23d4ede5513ebec1929e34ee9495be535662c0dfe2", size = 46475, upload-time = "2025-10-06T14:51:24.352Z" }, + { url = "https://files.pythonhosted.org/packages/fe/6a/bab00cbab6d9cfb57afe1663318f72ec28289ea03fd4e8236bb78429893a/multidict-6.7.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7bf77f54997a9166a2f5675d1201520586439424c2511723a7312bdb4bcc034e", size = 239324, upload-time = "2025-10-06T14:51:25.822Z" }, + { url = "https://files.pythonhosted.org/packages/2a/5f/8de95f629fc22a7769ade8b41028e3e5a822c1f8904f618d175945a81ad3/multidict-6.7.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e011555abada53f1578d63389610ac8a5400fc70ce71156b0aa30d326f1a5064", size = 246877, upload-time = "2025-10-06T14:51:27.604Z" }, + { url = "https://files.pythonhosted.org/packages/23/b4/38881a960458f25b89e9f4a4fdcb02ac101cfa710190db6e5528841e67de/multidict-6.7.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:28b37063541b897fd6a318007373930a75ca6d6ac7c940dbe14731ffdd8d498e", size = 225824, upload-time = "2025-10-06T14:51:29.664Z" }, + { url = "https://files.pythonhosted.org/packages/1e/39/6566210c83f8a261575f18e7144736059f0c460b362e96e9cf797a24b8e7/multidict-6.7.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:05047ada7a2fde2631a0ed706f1fd68b169a681dfe5e4cf0f8e4cb6618bbc2cd", size = 253558, upload-time = "2025-10-06T14:51:31.684Z" }, + { url = "https://files.pythonhosted.org/packages/00/a3/67f18315100f64c269f46e6c0319fa87ba68f0f64f2b8e7fd7c72b913a0b/multidict-6.7.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:716133f7d1d946a4e1b91b1756b23c088881e70ff180c24e864c26192ad7534a", size = 252339, upload-time = "2025-10-06T14:51:33.699Z" }, + { url = "https://files.pythonhosted.org/packages/c8/2a/1cb77266afee2458d82f50da41beba02159b1d6b1f7973afc9a1cad1499b/multidict-6.7.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d1bed1b467ef657f2a0ae62844a607909ef1c6889562de5e1d505f74457d0b96", size = 244895, upload-time = "2025-10-06T14:51:36.189Z" }, + { url = "https://files.pythonhosted.org/packages/dd/72/09fa7dd487f119b2eb9524946ddd36e2067c08510576d43ff68469563b3b/multidict-6.7.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ca43bdfa5d37bd6aee89d85e1d0831fb86e25541be7e9d376ead1b28974f8e5e", size = 241862, upload-time = "2025-10-06T14:51:41.291Z" }, + { url = "https://files.pythonhosted.org/packages/65/92/bc1f8bd0853d8669300f732c801974dfc3702c3eeadae2f60cef54dc69d7/multidict-6.7.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:44b546bd3eb645fd26fb949e43c02a25a2e632e2ca21a35e2e132c8105dc8599", size = 232376, upload-time = "2025-10-06T14:51:43.55Z" }, + { url = "https://files.pythonhosted.org/packages/09/86/ac39399e5cb9d0c2ac8ef6e10a768e4d3bc933ac808d49c41f9dc23337eb/multidict-6.7.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:a6ef16328011d3f468e7ebc326f24c1445f001ca1dec335b2f8e66bed3006394", size = 240272, upload-time = "2025-10-06T14:51:45.265Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b6/fed5ac6b8563ec72df6cb1ea8dac6d17f0a4a1f65045f66b6d3bf1497c02/multidict-6.7.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:5aa873cbc8e593d361ae65c68f85faadd755c3295ea2c12040ee146802f23b38", size = 248774, upload-time = "2025-10-06T14:51:46.836Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8d/b954d8c0dc132b68f760aefd45870978deec6818897389dace00fcde32ff/multidict-6.7.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:3d7b6ccce016e29df4b7ca819659f516f0bc7a4b3efa3bb2012ba06431b044f9", size = 242731, upload-time = "2025-10-06T14:51:48.541Z" }, + { url = "https://files.pythonhosted.org/packages/16/9d/a2dac7009125d3540c2f54e194829ea18ac53716c61b655d8ed300120b0f/multidict-6.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:171b73bd4ee683d307599b66793ac80981b06f069b62eea1c9e29c9241aa66b0", size = 240193, upload-time = "2025-10-06T14:51:50.355Z" }, + { url = "https://files.pythonhosted.org/packages/39/ca/c05f144128ea232ae2178b008d5011d4e2cea86e4ee8c85c2631b1b94802/multidict-6.7.0-cp314-cp314t-win32.whl", hash = "sha256:b2d7f80c4e1fd010b07cb26820aae86b7e73b681ee4889684fb8d2d4537aab13", size = 48023, upload-time = "2025-10-06T14:51:51.883Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8f/0a60e501584145588be1af5cc829265701ba3c35a64aec8e07cbb71d39bb/multidict-6.7.0-cp314-cp314t-win_amd64.whl", hash = "sha256:09929cab6fcb68122776d575e03c6cc64ee0b8fca48d17e135474b042ce515cd", size = 53507, upload-time = "2025-10-06T14:51:53.672Z" }, + { url = "https://files.pythonhosted.org/packages/7f/ae/3148b988a9c6239903e786eac19c889fab607c31d6efa7fb2147e5680f23/multidict-6.7.0-cp314-cp314t-win_arm64.whl", hash = "sha256:cc41db090ed742f32bd2d2c721861725e6109681eddf835d0a82bd3a5c382827", size = 44804, upload-time = "2025-10-06T14:51:55.415Z" }, + { url = "https://files.pythonhosted.org/packages/b7/da/7d22601b625e241d4f23ef1ebff8acfc60da633c9e7e7922e24d10f592b3/multidict-6.7.0-py3-none-any.whl", hash = "sha256:394fc5c42a333c9ffc3e421a4c85e08580d990e08b99f6bf35b4132114c5dcb3", size = 12317, upload-time = "2025-10-06T14:52:29.272Z" }, +] + [[package]] name = "nh3" version = "0.3.2" @@ -613,6 +1036,120 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "propcache" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442, upload-time = "2025-10-08T19:49:02.291Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/0e/934b541323035566a9af292dba85a195f7b78179114f2c6ebb24551118a9/propcache-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db", size = 79534, upload-time = "2025-10-08T19:46:02.083Z" }, + { url = "https://files.pythonhosted.org/packages/a1/6b/db0d03d96726d995dc7171286c6ba9d8d14251f37433890f88368951a44e/propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8", size = 45526, upload-time = "2025-10-08T19:46:03.884Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c3/82728404aea669e1600f304f2609cde9e665c18df5a11cdd57ed73c1dceb/propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925", size = 47263, upload-time = "2025-10-08T19:46:05.405Z" }, + { url = "https://files.pythonhosted.org/packages/df/1b/39313ddad2bf9187a1432654c38249bab4562ef535ef07f5eb6eb04d0b1b/propcache-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21", size = 201012, upload-time = "2025-10-08T19:46:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/5b/01/f1d0b57d136f294a142acf97f4ed58c8e5b974c21e543000968357115011/propcache-0.4.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5", size = 209491, upload-time = "2025-10-08T19:46:08.909Z" }, + { url = "https://files.pythonhosted.org/packages/a1/c8/038d909c61c5bb039070b3fb02ad5cccdb1dde0d714792e251cdb17c9c05/propcache-0.4.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db", size = 215319, upload-time = "2025-10-08T19:46:10.7Z" }, + { url = "https://files.pythonhosted.org/packages/08/57/8c87e93142b2c1fa2408e45695205a7ba05fb5db458c0bf5c06ba0e09ea6/propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7", size = 196856, upload-time = "2025-10-08T19:46:12.003Z" }, + { url = "https://files.pythonhosted.org/packages/42/df/5615fec76aa561987a534759b3686008a288e73107faa49a8ae5795a9f7a/propcache-0.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4", size = 193241, upload-time = "2025-10-08T19:46:13.495Z" }, + { url = "https://files.pythonhosted.org/packages/d5/21/62949eb3a7a54afe8327011c90aca7e03547787a88fb8bd9726806482fea/propcache-0.4.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60", size = 190552, upload-time = "2025-10-08T19:46:14.938Z" }, + { url = "https://files.pythonhosted.org/packages/30/ee/ab4d727dd70806e5b4de96a798ae7ac6e4d42516f030ee60522474b6b332/propcache-0.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f", size = 200113, upload-time = "2025-10-08T19:46:16.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/0b/38b46208e6711b016aa8966a3ac793eee0d05c7159d8342aa27fc0bc365e/propcache-0.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900", size = 200778, upload-time = "2025-10-08T19:46:18.023Z" }, + { url = "https://files.pythonhosted.org/packages/cf/81/5abec54355ed344476bee711e9f04815d4b00a311ab0535599204eecc257/propcache-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c", size = 193047, upload-time = "2025-10-08T19:46:19.449Z" }, + { url = "https://files.pythonhosted.org/packages/ec/b6/1f237c04e32063cb034acd5f6ef34ef3a394f75502e72703545631ab1ef6/propcache-0.4.1-cp310-cp310-win32.whl", hash = "sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb", size = 38093, upload-time = "2025-10-08T19:46:20.643Z" }, + { url = "https://files.pythonhosted.org/packages/a6/67/354aac4e0603a15f76439caf0427781bcd6797f370377f75a642133bc954/propcache-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37", size = 41638, upload-time = "2025-10-08T19:46:21.935Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e1/74e55b9fd1a4c209ff1a9a824bf6c8b3d1fc5a1ac3eabe23462637466785/propcache-0.4.1-cp310-cp310-win_arm64.whl", hash = "sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581", size = 38229, upload-time = "2025-10-08T19:46:23.368Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d4/4e2c9aaf7ac2242b9358f98dccd8f90f2605402f5afeff6c578682c2c491/propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf", size = 80208, upload-time = "2025-10-08T19:46:24.597Z" }, + { url = "https://files.pythonhosted.org/packages/c2/21/d7b68e911f9c8e18e4ae43bdbc1e1e9bbd971f8866eb81608947b6f585ff/propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5", size = 45777, upload-time = "2025-10-08T19:46:25.733Z" }, + { url = "https://files.pythonhosted.org/packages/d3/1d/11605e99ac8ea9435651ee71ab4cb4bf03f0949586246476a25aadfec54a/propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e", size = 47647, upload-time = "2025-10-08T19:46:27.304Z" }, + { url = "https://files.pythonhosted.org/packages/58/1a/3c62c127a8466c9c843bccb503d40a273e5cc69838805f322e2826509e0d/propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566", size = 214929, upload-time = "2025-10-08T19:46:28.62Z" }, + { url = "https://files.pythonhosted.org/packages/56/b9/8fa98f850960b367c4b8fe0592e7fc341daa7a9462e925228f10a60cf74f/propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165", size = 221778, upload-time = "2025-10-08T19:46:30.358Z" }, + { url = "https://files.pythonhosted.org/packages/46/a6/0ab4f660eb59649d14b3d3d65c439421cf2f87fe5dd68591cbe3c1e78a89/propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc", size = 228144, upload-time = "2025-10-08T19:46:32.607Z" }, + { url = "https://files.pythonhosted.org/packages/52/6a/57f43e054fb3d3a56ac9fc532bc684fc6169a26c75c353e65425b3e56eef/propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48", size = 210030, upload-time = "2025-10-08T19:46:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/40/e2/27e6feebb5f6b8408fa29f5efbb765cd54c153ac77314d27e457a3e993b7/propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570", size = 208252, upload-time = "2025-10-08T19:46:35.309Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f8/91c27b22ccda1dbc7967f921c42825564fa5336a01ecd72eb78a9f4f53c2/propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85", size = 202064, upload-time = "2025-10-08T19:46:36.993Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/7f00bd6bd1adba5aafe5f4a66390f243acab58eab24ff1a08bebb2ef9d40/propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e", size = 212429, upload-time = "2025-10-08T19:46:38.398Z" }, + { url = "https://files.pythonhosted.org/packages/84/89/fd108ba7815c1117ddca79c228f3f8a15fc82a73bca8b142eb5de13b2785/propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757", size = 216727, upload-time = "2025-10-08T19:46:39.732Z" }, + { url = "https://files.pythonhosted.org/packages/79/37/3ec3f7e3173e73f1d600495d8b545b53802cbf35506e5732dd8578db3724/propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f", size = 205097, upload-time = "2025-10-08T19:46:41.025Z" }, + { url = "https://files.pythonhosted.org/packages/61/b0/b2631c19793f869d35f47d5a3a56fb19e9160d3c119f15ac7344fc3ccae7/propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1", size = 38084, upload-time = "2025-10-08T19:46:42.693Z" }, + { url = "https://files.pythonhosted.org/packages/f4/78/6cce448e2098e9f3bfc91bb877f06aa24b6ccace872e39c53b2f707c4648/propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6", size = 41637, upload-time = "2025-10-08T19:46:43.778Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e9/754f180cccd7f51a39913782c74717c581b9cc8177ad0e949f4d51812383/propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239", size = 38064, upload-time = "2025-10-08T19:46:44.872Z" }, + { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061, upload-time = "2025-10-08T19:46:46.075Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037, upload-time = "2025-10-08T19:46:47.23Z" }, + { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324, upload-time = "2025-10-08T19:46:48.384Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505, upload-time = "2025-10-08T19:46:50.055Z" }, + { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242, upload-time = "2025-10-08T19:46:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474, upload-time = "2025-10-08T19:46:53.208Z" }, + { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575, upload-time = "2025-10-08T19:46:54.511Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736, upload-time = "2025-10-08T19:46:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019, upload-time = "2025-10-08T19:46:57.595Z" }, + { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376, upload-time = "2025-10-08T19:46:59.067Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988, upload-time = "2025-10-08T19:47:00.544Z" }, + { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615, upload-time = "2025-10-08T19:47:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066, upload-time = "2025-10-08T19:47:03.503Z" }, + { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655, upload-time = "2025-10-08T19:47:04.973Z" }, + { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789, upload-time = "2025-10-08T19:47:06.077Z" }, + { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750, upload-time = "2025-10-08T19:47:07.648Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780, upload-time = "2025-10-08T19:47:08.851Z" }, + { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308, upload-time = "2025-10-08T19:47:09.982Z" }, + { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182, upload-time = "2025-10-08T19:47:11.319Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215, upload-time = "2025-10-08T19:47:13.146Z" }, + { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112, upload-time = "2025-10-08T19:47:14.913Z" }, + { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442, upload-time = "2025-10-08T19:47:16.277Z" }, + { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398, upload-time = "2025-10-08T19:47:17.962Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920, upload-time = "2025-10-08T19:47:19.355Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748, upload-time = "2025-10-08T19:47:21.338Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877, upload-time = "2025-10-08T19:47:23.059Z" }, + { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437, upload-time = "2025-10-08T19:47:24.445Z" }, + { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586, upload-time = "2025-10-08T19:47:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790, upload-time = "2025-10-08T19:47:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158, upload-time = "2025-10-08T19:47:27.961Z" }, + { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451, upload-time = "2025-10-08T19:47:29.445Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374, upload-time = "2025-10-08T19:47:30.579Z" }, + { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396, upload-time = "2025-10-08T19:47:31.79Z" }, + { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950, upload-time = "2025-10-08T19:47:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856, upload-time = "2025-10-08T19:47:34.906Z" }, + { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420, upload-time = "2025-10-08T19:47:36.338Z" }, + { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254, upload-time = "2025-10-08T19:47:37.692Z" }, + { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205, upload-time = "2025-10-08T19:47:39.659Z" }, + { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873, upload-time = "2025-10-08T19:47:41.084Z" }, + { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739, upload-time = "2025-10-08T19:47:42.51Z" }, + { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514, upload-time = "2025-10-08T19:47:43.927Z" }, + { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781, upload-time = "2025-10-08T19:47:45.448Z" }, + { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396, upload-time = "2025-10-08T19:47:47.202Z" }, + { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897, upload-time = "2025-10-08T19:47:48.336Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789, upload-time = "2025-10-08T19:47:49.876Z" }, + { url = "https://files.pythonhosted.org/packages/8e/5c/bca52d654a896f831b8256683457ceddd490ec18d9ec50e97dfd8fc726a8/propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12", size = 78152, upload-time = "2025-10-08T19:47:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/65/9b/03b04e7d82a5f54fb16113d839f5ea1ede58a61e90edf515f6577c66fa8f/propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c", size = 44869, upload-time = "2025-10-08T19:47:52.594Z" }, + { url = "https://files.pythonhosted.org/packages/b2/fa/89a8ef0468d5833a23fff277b143d0573897cf75bd56670a6d28126c7d68/propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded", size = 46596, upload-time = "2025-10-08T19:47:54.073Z" }, + { url = "https://files.pythonhosted.org/packages/86/bd/47816020d337f4a746edc42fe8d53669965138f39ee117414c7d7a340cfe/propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641", size = 206981, upload-time = "2025-10-08T19:47:55.715Z" }, + { url = "https://files.pythonhosted.org/packages/df/f6/c5fa1357cc9748510ee55f37173eb31bfde6d94e98ccd9e6f033f2fc06e1/propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4", size = 211490, upload-time = "2025-10-08T19:47:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/80/1e/e5889652a7c4a3846683401a48f0f2e5083ce0ec1a8a5221d8058fbd1adf/propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44", size = 215371, upload-time = "2025-10-08T19:47:59.317Z" }, + { url = "https://files.pythonhosted.org/packages/b2/f2/889ad4b2408f72fe1a4f6a19491177b30ea7bf1a0fd5f17050ca08cfc882/propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d", size = 201424, upload-time = "2025-10-08T19:48:00.67Z" }, + { url = "https://files.pythonhosted.org/packages/27/73/033d63069b57b0812c8bd19f311faebeceb6ba31b8f32b73432d12a0b826/propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b", size = 197566, upload-time = "2025-10-08T19:48:02.604Z" }, + { url = "https://files.pythonhosted.org/packages/dc/89/ce24f3dc182630b4e07aa6d15f0ff4b14ed4b9955fae95a0b54c58d66c05/propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e", size = 193130, upload-time = "2025-10-08T19:48:04.499Z" }, + { url = "https://files.pythonhosted.org/packages/a9/24/ef0d5fd1a811fb5c609278d0209c9f10c35f20581fcc16f818da959fc5b4/propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f", size = 202625, upload-time = "2025-10-08T19:48:06.213Z" }, + { url = "https://files.pythonhosted.org/packages/f5/02/98ec20ff5546f68d673df2f7a69e8c0d076b5abd05ca882dc7ee3a83653d/propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49", size = 204209, upload-time = "2025-10-08T19:48:08.432Z" }, + { url = "https://files.pythonhosted.org/packages/a0/87/492694f76759b15f0467a2a93ab68d32859672b646aa8a04ce4864e7932d/propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144", size = 197797, upload-time = "2025-10-08T19:48:09.968Z" }, + { url = "https://files.pythonhosted.org/packages/ee/36/66367de3575db1d2d3f3d177432bd14ee577a39d3f5d1b3d5df8afe3b6e2/propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f", size = 38140, upload-time = "2025-10-08T19:48:11.232Z" }, + { url = "https://files.pythonhosted.org/packages/0c/2a/a758b47de253636e1b8aef181c0b4f4f204bf0dd964914fb2af90a95b49b/propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153", size = 41257, upload-time = "2025-10-08T19:48:12.707Z" }, + { url = "https://files.pythonhosted.org/packages/34/5e/63bd5896c3fec12edcbd6f12508d4890d23c265df28c74b175e1ef9f4f3b/propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992", size = 38097, upload-time = "2025-10-08T19:48:13.923Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/9ff785d787ccf9bbb3f3106f79884a130951436f58392000231b4c737c80/propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f", size = 81455, upload-time = "2025-10-08T19:48:15.16Z" }, + { url = "https://files.pythonhosted.org/packages/90/85/2431c10c8e7ddb1445c1f7c4b54d886e8ad20e3c6307e7218f05922cad67/propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393", size = 46372, upload-time = "2025-10-08T19:48:16.424Z" }, + { url = "https://files.pythonhosted.org/packages/01/20/b0972d902472da9bcb683fa595099911f4d2e86e5683bcc45de60dd05dc3/propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0", size = 48411, upload-time = "2025-10-08T19:48:17.577Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e3/7dc89f4f21e8f99bad3d5ddb3a3389afcf9da4ac69e3deb2dcdc96e74169/propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a", size = 275712, upload-time = "2025-10-08T19:48:18.901Z" }, + { url = "https://files.pythonhosted.org/packages/20/67/89800c8352489b21a8047c773067644e3897f02ecbbd610f4d46b7f08612/propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be", size = 273557, upload-time = "2025-10-08T19:48:20.762Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a1/b52b055c766a54ce6d9c16d9aca0cad8059acd9637cdf8aa0222f4a026ef/propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc", size = 280015, upload-time = "2025-10-08T19:48:22.592Z" }, + { url = "https://files.pythonhosted.org/packages/48/c8/33cee30bd890672c63743049f3c9e4be087e6780906bfc3ec58528be59c1/propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a", size = 262880, upload-time = "2025-10-08T19:48:23.947Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b1/8f08a143b204b418285c88b83d00edbd61afbc2c6415ffafc8905da7038b/propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89", size = 260938, upload-time = "2025-10-08T19:48:25.656Z" }, + { url = "https://files.pythonhosted.org/packages/cf/12/96e4664c82ca2f31e1c8dff86afb867348979eb78d3cb8546a680287a1e9/propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726", size = 247641, upload-time = "2025-10-08T19:48:27.207Z" }, + { url = "https://files.pythonhosted.org/packages/18/ed/e7a9cfca28133386ba52278136d42209d3125db08d0a6395f0cba0c0285c/propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367", size = 262510, upload-time = "2025-10-08T19:48:28.65Z" }, + { url = "https://files.pythonhosted.org/packages/f5/76/16d8bf65e8845dd62b4e2b57444ab81f07f40caa5652b8969b87ddcf2ef6/propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36", size = 263161, upload-time = "2025-10-08T19:48:30.133Z" }, + { url = "https://files.pythonhosted.org/packages/e7/70/c99e9edb5d91d5ad8a49fa3c1e8285ba64f1476782fed10ab251ff413ba1/propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455", size = 257393, upload-time = "2025-10-08T19:48:31.567Z" }, + { url = "https://files.pythonhosted.org/packages/08/02/87b25304249a35c0915d236575bc3574a323f60b47939a2262b77632a3ee/propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85", size = 42546, upload-time = "2025-10-08T19:48:32.872Z" }, + { url = "https://files.pythonhosted.org/packages/cb/ef/3c6ecf8b317aa982f309835e8f96987466123c6e596646d4e6a1dfcd080f/propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1", size = 46259, upload-time = "2025-10-08T19:48:34.226Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2d/346e946d4951f37eca1e4f55be0f0174c52cd70720f84029b02f296f4a38/propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9", size = 40428, upload-time = "2025-10-08T19:48:35.441Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" }, +] + [[package]] name = "pycparser" version = "2.23" @@ -803,6 +1340,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/67/e6/a350a4509e06f7dcde0448357bba14de99fa97b39580a681151262ed65ae/PySide6_Essentials-6.6.0-cp38-abi3-win_amd64.whl", hash = "sha256:97bbe33f584a09cef6a3fbc1295fb0fd7acaac345bc0f5601bf45d41c91683ac", size = 76703502, upload-time = "2023-10-17T09:41:39.751Z" }, ] +[[package]] +name = "pyside6-qtads" +version = "4.1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyside6-essentials" }, + { name = "shiboken6" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/30/60e1561d5ddbaa2869b9f52f41c80ca3b9f090357fa52bf44cb02d12e3ac/PySide6-QtAds-4.1.0.2.tar.gz", hash = "sha256:41c6d5ec8ef18b14a525d760622c53f41c5c400abdd80102c692dc9d366c6d0a", size = 21476162, upload-time = "2023-11-15T17:17:38.567Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/c2/040b9c5cd5de48d7831b9914ff78357cfcea4a63539b82e49dd0a2fd6851/PySide6_QtAds-4.1.0.2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:9fc49cf2458641299e81686ec1c2efe2e99b331a77dd08ec54a69601ccbc5c36", size = 723812, upload-time = "2023-11-15T17:17:32.176Z" }, + { url = "https://files.pythonhosted.org/packages/5f/74/5bf1b9c2df40795a3ceecd1c19b2c285878ce2faa9a8580c67ae4dbcb280/PySide6_QtAds-4.1.0.2-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:ada43fd4a352257fd8d61059b42352c3396634dadbe65dfa762ed4352269fb7a", size = 729188, upload-time = "2023-11-15T17:17:33.779Z" }, + { url = "https://files.pythonhosted.org/packages/04/60/622c5f60b2ee9e8377e5e6c16e684ad9495dd7a623aada5e0f8faa59afff/PySide6_QtAds-4.1.0.2-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3532658190aa31ddcbb2e15e21a866eb638a3dfc34e562ddabb8daec89d31704", size = 783987, upload-time = "2023-11-15T17:17:35.592Z" }, + { url = "https://files.pythonhosted.org/packages/8e/20/1749225bd14071335608ff4bba485e0b66db7cccf08d8e21a04eecb8ed74/PySide6_QtAds-4.1.0.2-cp38-abi3-win_amd64.whl", hash = "sha256:c84ddbf19bbc7c8cd4af6d50d0a96b9711933be134fe6131604591d7a8711f33", size = 453184, upload-time = "2023-11-15T17:17:37.006Z" }, +] + [[package]] name = "pytest" version = "9.0.1" @@ -1090,6 +1643,132 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, ] +[[package]] +name = "yarl" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169, upload-time = "2025-10-06T14:12:55.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/43/a2204825342f37c337f5edb6637040fa14e365b2fcc2346960201d457579/yarl-1.22.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c7bd6683587567e5a49ee6e336e0612bec8329be1b7d4c8af5687dcdeb67ee1e", size = 140517, upload-time = "2025-10-06T14:08:42.494Z" }, + { url = "https://files.pythonhosted.org/packages/44/6f/674f3e6f02266428c56f704cd2501c22f78e8b2eeb23f153117cc86fb28a/yarl-1.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cdac20da754f3a723cceea5b3448e1a2074866406adeb4ef35b469d089adb8f", size = 93495, upload-time = "2025-10-06T14:08:46.2Z" }, + { url = "https://files.pythonhosted.org/packages/b8/12/5b274d8a0f30c07b91b2f02cba69152600b47830fcfb465c108880fcee9c/yarl-1.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07a524d84df0c10f41e3ee918846e1974aba4ec017f990dc735aad487a0bdfdf", size = 94400, upload-time = "2025-10-06T14:08:47.855Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7f/df1b6949b1fa1aa9ff6de6e2631876ad4b73c4437822026e85d8acb56bb1/yarl-1.22.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b329cb8146d7b736677a2440e422eadd775d1806a81db2d4cded80a48efc1a", size = 347545, upload-time = "2025-10-06T14:08:49.683Z" }, + { url = "https://files.pythonhosted.org/packages/84/09/f92ed93bd6cd77872ab6c3462df45ca45cd058d8f1d0c9b4f54c1704429f/yarl-1.22.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75976c6945d85dbb9ee6308cd7ff7b1fb9409380c82d6119bd778d8fcfe2931c", size = 319598, upload-time = "2025-10-06T14:08:51.215Z" }, + { url = "https://files.pythonhosted.org/packages/c3/97/ac3f3feae7d522cf7ccec3d340bb0b2b61c56cb9767923df62a135092c6b/yarl-1.22.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:80ddf7a5f8c86cb3eb4bc9028b07bbbf1f08a96c5c0bc1244be5e8fefcb94147", size = 363893, upload-time = "2025-10-06T14:08:53.144Z" }, + { url = "https://files.pythonhosted.org/packages/06/49/f3219097403b9c84a4d079b1d7bda62dd9b86d0d6e4428c02d46ab2c77fc/yarl-1.22.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d332fc2e3c94dad927f2112395772a4e4fedbcf8f80efc21ed7cdfae4d574fdb", size = 371240, upload-time = "2025-10-06T14:08:55.036Z" }, + { url = "https://files.pythonhosted.org/packages/35/9f/06b765d45c0e44e8ecf0fe15c9eacbbde342bb5b7561c46944f107bfb6c3/yarl-1.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0cf71bf877efeac18b38d3930594c0948c82b64547c1cf420ba48722fe5509f6", size = 346965, upload-time = "2025-10-06T14:08:56.722Z" }, + { url = "https://files.pythonhosted.org/packages/c5/69/599e7cea8d0fcb1694323b0db0dda317fa3162f7b90166faddecf532166f/yarl-1.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:663e1cadaddae26be034a6ab6072449a8426ddb03d500f43daf952b74553bba0", size = 342026, upload-time = "2025-10-06T14:08:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/95/6f/9dfd12c8bc90fea9eab39832ee32ea48f8e53d1256252a77b710c065c89f/yarl-1.22.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6dcbb0829c671f305be48a7227918cfcd11276c2d637a8033a99a02b67bf9eda", size = 335637, upload-time = "2025-10-06T14:09:00.506Z" }, + { url = "https://files.pythonhosted.org/packages/57/2e/34c5b4eb9b07e16e873db5b182c71e5f06f9b5af388cdaa97736d79dd9a6/yarl-1.22.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f0d97c18dfd9a9af4490631905a3f131a8e4c9e80a39353919e2cfed8f00aedc", size = 359082, upload-time = "2025-10-06T14:09:01.936Z" }, + { url = "https://files.pythonhosted.org/packages/31/71/fa7e10fb772d273aa1f096ecb8ab8594117822f683bab7d2c5a89914c92a/yarl-1.22.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:437840083abe022c978470b942ff832c3940b2ad3734d424b7eaffcd07f76737", size = 357811, upload-time = "2025-10-06T14:09:03.445Z" }, + { url = "https://files.pythonhosted.org/packages/26/da/11374c04e8e1184a6a03cf9c8f5688d3e5cec83ed6f31ad3481b3207f709/yarl-1.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a899cbd98dce6f5d8de1aad31cb712ec0a530abc0a86bd6edaa47c1090138467", size = 351223, upload-time = "2025-10-06T14:09:05.401Z" }, + { url = "https://files.pythonhosted.org/packages/82/8f/e2d01f161b0c034a30410e375e191a5d27608c1f8693bab1a08b089ca096/yarl-1.22.0-cp310-cp310-win32.whl", hash = "sha256:595697f68bd1f0c1c159fcb97b661fc9c3f5db46498043555d04805430e79bea", size = 82118, upload-time = "2025-10-06T14:09:11.148Z" }, + { url = "https://files.pythonhosted.org/packages/62/46/94c76196642dbeae634c7a61ba3da88cd77bed875bf6e4a8bed037505aa6/yarl-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:cb95a9b1adaa48e41815a55ae740cfda005758104049a640a398120bf02515ca", size = 86852, upload-time = "2025-10-06T14:09:12.958Z" }, + { url = "https://files.pythonhosted.org/packages/af/af/7df4f179d3b1a6dcb9a4bd2ffbc67642746fcafdb62580e66876ce83fff4/yarl-1.22.0-cp310-cp310-win_arm64.whl", hash = "sha256:b85b982afde6df99ecc996990d4ad7ccbdbb70e2a4ba4de0aecde5922ba98a0b", size = 82012, upload-time = "2025-10-06T14:09:14.664Z" }, + { url = "https://files.pythonhosted.org/packages/4d/27/5ab13fc84c76a0250afd3d26d5936349a35be56ce5785447d6c423b26d92/yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511", size = 141607, upload-time = "2025-10-06T14:09:16.298Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a1/d065d51d02dc02ce81501d476b9ed2229d9a990818332242a882d5d60340/yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6", size = 94027, upload-time = "2025-10-06T14:09:17.786Z" }, + { url = "https://files.pythonhosted.org/packages/c1/da/8da9f6a53f67b5106ffe902c6fa0164e10398d4e150d85838b82f424072a/yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028", size = 94963, upload-time = "2025-10-06T14:09:19.662Z" }, + { url = "https://files.pythonhosted.org/packages/68/fe/2c1f674960c376e29cb0bec1249b117d11738db92a6ccc4a530b972648db/yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d", size = 368406, upload-time = "2025-10-06T14:09:21.402Z" }, + { url = "https://files.pythonhosted.org/packages/95/26/812a540e1c3c6418fec60e9bbd38e871eaba9545e94fa5eff8f4a8e28e1e/yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503", size = 336581, upload-time = "2025-10-06T14:09:22.98Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f5/5777b19e26fdf98563985e481f8be3d8a39f8734147a6ebf459d0dab5a6b/yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65", size = 388924, upload-time = "2025-10-06T14:09:24.655Z" }, + { url = "https://files.pythonhosted.org/packages/86/08/24bd2477bd59c0bbd994fe1d93b126e0472e4e3df5a96a277b0a55309e89/yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e", size = 392890, upload-time = "2025-10-06T14:09:26.617Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/71b90ed48e895667ecfb1eaab27c1523ee2fa217433ed77a73b13205ca4b/yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d", size = 365819, upload-time = "2025-10-06T14:09:28.544Z" }, + { url = "https://files.pythonhosted.org/packages/30/2d/f715501cae832651d3282387c6a9236cd26bd00d0ff1e404b3dc52447884/yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7", size = 363601, upload-time = "2025-10-06T14:09:30.568Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f9/a678c992d78e394e7126ee0b0e4e71bd2775e4334d00a9278c06a6cce96a/yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967", size = 358072, upload-time = "2025-10-06T14:09:32.528Z" }, + { url = "https://files.pythonhosted.org/packages/2c/d1/b49454411a60edb6fefdcad4f8e6dbba7d8019e3a508a1c5836cba6d0781/yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed", size = 385311, upload-time = "2025-10-06T14:09:34.634Z" }, + { url = "https://files.pythonhosted.org/packages/87/e5/40d7a94debb8448c7771a916d1861d6609dddf7958dc381117e7ba36d9e8/yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6", size = 381094, upload-time = "2025-10-06T14:09:36.268Z" }, + { url = "https://files.pythonhosted.org/packages/35/d8/611cc282502381ad855448643e1ad0538957fc82ae83dfe7762c14069e14/yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e", size = 370944, upload-time = "2025-10-06T14:09:37.872Z" }, + { url = "https://files.pythonhosted.org/packages/2d/df/fadd00fb1c90e1a5a8bd731fa3d3de2e165e5a3666a095b04e31b04d9cb6/yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca", size = 81804, upload-time = "2025-10-06T14:09:39.359Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f7/149bb6f45f267cb5c074ac40c01c6b3ea6d8a620d34b337f6321928a1b4d/yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b", size = 86858, upload-time = "2025-10-06T14:09:41.068Z" }, + { url = "https://files.pythonhosted.org/packages/2b/13/88b78b93ad3f2f0b78e13bfaaa24d11cbc746e93fe76d8c06bf139615646/yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376", size = 81637, upload-time = "2025-10-06T14:09:42.712Z" }, + { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000, upload-time = "2025-10-06T14:09:44.631Z" }, + { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338, upload-time = "2025-10-06T14:09:46.372Z" }, + { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909, upload-time = "2025-10-06T14:09:48.648Z" }, + { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940, upload-time = "2025-10-06T14:09:50.089Z" }, + { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825, upload-time = "2025-10-06T14:09:52.142Z" }, + { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705, upload-time = "2025-10-06T14:09:54.128Z" }, + { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518, upload-time = "2025-10-06T14:09:55.762Z" }, + { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267, upload-time = "2025-10-06T14:09:57.958Z" }, + { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797, upload-time = "2025-10-06T14:09:59.527Z" }, + { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535, upload-time = "2025-10-06T14:10:01.139Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324, upload-time = "2025-10-06T14:10:02.756Z" }, + { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803, upload-time = "2025-10-06T14:10:04.552Z" }, + { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220, upload-time = "2025-10-06T14:10:06.489Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589, upload-time = "2025-10-06T14:10:09.254Z" }, + { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213, upload-time = "2025-10-06T14:10:11.369Z" }, + { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330, upload-time = "2025-10-06T14:10:13.112Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980, upload-time = "2025-10-06T14:10:14.601Z" }, + { url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424, upload-time = "2025-10-06T14:10:16.115Z" }, + { url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821, upload-time = "2025-10-06T14:10:17.993Z" }, + { url = "https://files.pythonhosted.org/packages/61/3a/caf4e25036db0f2da4ca22a353dfeb3c9d3c95d2761ebe9b14df8fc16eb0/yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601", size = 373243, upload-time = "2025-10-06T14:10:19.44Z" }, + { url = "https://files.pythonhosted.org/packages/6e/9e/51a77ac7516e8e7803b06e01f74e78649c24ee1021eca3d6a739cb6ea49c/yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a", size = 342361, upload-time = "2025-10-06T14:10:21.124Z" }, + { url = "https://files.pythonhosted.org/packages/d4/f8/33b92454789dde8407f156c00303e9a891f1f51a0330b0fad7c909f87692/yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df", size = 387036, upload-time = "2025-10-06T14:10:22.902Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9a/c5db84ea024f76838220280f732970aa4ee154015d7f5c1bfb60a267af6f/yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2", size = 397671, upload-time = "2025-10-06T14:10:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/11/c9/cd8538dc2e7727095e0c1d867bad1e40c98f37763e6d995c1939f5fdc7b1/yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b", size = 377059, upload-time = "2025-10-06T14:10:26.406Z" }, + { url = "https://files.pythonhosted.org/packages/a1/b9/ab437b261702ced75122ed78a876a6dec0a1b0f5e17a4ac7a9a2482d8abe/yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273", size = 365356, upload-time = "2025-10-06T14:10:28.461Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9d/8e1ae6d1d008a9567877b08f0ce4077a29974c04c062dabdb923ed98e6fe/yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a", size = 361331, upload-time = "2025-10-06T14:10:30.541Z" }, + { url = "https://files.pythonhosted.org/packages/ca/5a/09b7be3905962f145b73beb468cdd53db8aa171cf18c80400a54c5b82846/yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d", size = 382590, upload-time = "2025-10-06T14:10:33.352Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7f/59ec509abf90eda5048b0bc3e2d7b5099dffdb3e6b127019895ab9d5ef44/yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02", size = 385316, upload-time = "2025-10-06T14:10:35.034Z" }, + { url = "https://files.pythonhosted.org/packages/e5/84/891158426bc8036bfdfd862fabd0e0fa25df4176ec793e447f4b85cf1be4/yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67", size = 374431, upload-time = "2025-10-06T14:10:37.76Z" }, + { url = "https://files.pythonhosted.org/packages/bb/49/03da1580665baa8bef5e8ed34c6df2c2aca0a2f28bf397ed238cc1bbc6f2/yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95", size = 81555, upload-time = "2025-10-06T14:10:39.649Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ee/450914ae11b419eadd067c6183ae08381cfdfcb9798b90b2b713bbebddda/yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d", size = 86965, upload-time = "2025-10-06T14:10:41.313Z" }, + { url = "https://files.pythonhosted.org/packages/98/4d/264a01eae03b6cf629ad69bae94e3b0e5344741e929073678e84bf7a3e3b/yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b", size = 81205, upload-time = "2025-10-06T14:10:43.167Z" }, + { url = "https://files.pythonhosted.org/packages/88/fc/6908f062a2f77b5f9f6d69cecb1747260831ff206adcbc5b510aff88df91/yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10", size = 146209, upload-time = "2025-10-06T14:10:44.643Z" }, + { url = "https://files.pythonhosted.org/packages/65/47/76594ae8eab26210b4867be6f49129861ad33da1f1ebdf7051e98492bf62/yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3", size = 95966, upload-time = "2025-10-06T14:10:46.554Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ce/05e9828a49271ba6b5b038b15b3934e996980dd78abdfeb52a04cfb9467e/yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9", size = 97312, upload-time = "2025-10-06T14:10:48.007Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c5/7dffad5e4f2265b29c9d7ec869c369e4223166e4f9206fc2243ee9eea727/yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f", size = 361967, upload-time = "2025-10-06T14:10:49.997Z" }, + { url = "https://files.pythonhosted.org/packages/50/b2/375b933c93a54bff7fc041e1a6ad2c0f6f733ffb0c6e642ce56ee3b39970/yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0", size = 323949, upload-time = "2025-10-06T14:10:52.004Z" }, + { url = "https://files.pythonhosted.org/packages/66/50/bfc2a29a1d78644c5a7220ce2f304f38248dc94124a326794e677634b6cf/yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e", size = 361818, upload-time = "2025-10-06T14:10:54.078Z" }, + { url = "https://files.pythonhosted.org/packages/46/96/f3941a46af7d5d0f0498f86d71275696800ddcdd20426298e572b19b91ff/yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708", size = 372626, upload-time = "2025-10-06T14:10:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/c1/42/8b27c83bb875cd89448e42cd627e0fb971fa1675c9ec546393d18826cb50/yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f", size = 341129, upload-time = "2025-10-06T14:10:57.985Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/99ca3122201b382a3cf7cc937b95235b0ac944f7e9f2d5331d50821ed352/yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d", size = 346776, upload-time = "2025-10-06T14:10:59.633Z" }, + { url = "https://files.pythonhosted.org/packages/85/b4/47328bf996acd01a4c16ef9dcd2f59c969f495073616586f78cd5f2efb99/yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8", size = 334879, upload-time = "2025-10-06T14:11:01.454Z" }, + { url = "https://files.pythonhosted.org/packages/c2/ad/b77d7b3f14a4283bffb8e92c6026496f6de49751c2f97d4352242bba3990/yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5", size = 350996, upload-time = "2025-10-06T14:11:03.452Z" }, + { url = "https://files.pythonhosted.org/packages/81/c8/06e1d69295792ba54d556f06686cbd6a7ce39c22307100e3fb4a2c0b0a1d/yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f", size = 356047, upload-time = "2025-10-06T14:11:05.115Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b8/4c0e9e9f597074b208d18cef227d83aac36184bfbc6eab204ea55783dbc5/yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62", size = 342947, upload-time = "2025-10-06T14:11:08.137Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e5/11f140a58bf4c6ad7aca69a892bff0ee638c31bea4206748fc0df4ebcb3a/yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03", size = 86943, upload-time = "2025-10-06T14:11:10.284Z" }, + { url = "https://files.pythonhosted.org/packages/31/74/8b74bae38ed7fe6793d0c15a0c8207bbb819cf287788459e5ed230996cdd/yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249", size = 93715, upload-time = "2025-10-06T14:11:11.739Z" }, + { url = "https://files.pythonhosted.org/packages/69/66/991858aa4b5892d57aef7ee1ba6b4d01ec3b7eb3060795d34090a3ca3278/yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b", size = 83857, upload-time = "2025-10-06T14:11:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/e20ef504049f1a1c54a814b4b9bed96d1ac0e0610c3b4da178f87209db05/yarl-1.22.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:34b36c2c57124530884d89d50ed2c1478697ad7473efd59cfd479945c95650e4", size = 140520, upload-time = "2025-10-06T14:11:15.465Z" }, + { url = "https://files.pythonhosted.org/packages/e4/04/3532d990fdbab02e5ede063676b5c4260e7f3abea2151099c2aa745acc4c/yarl-1.22.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:0dd9a702591ca2e543631c2a017e4a547e38a5c0f29eece37d9097e04a7ac683", size = 93504, upload-time = "2025-10-06T14:11:17.106Z" }, + { url = "https://files.pythonhosted.org/packages/11/63/ff458113c5c2dac9a9719ac68ee7c947cb621432bcf28c9972b1c0e83938/yarl-1.22.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:594fcab1032e2d2cc3321bb2e51271e7cd2b516c7d9aee780ece81b07ff8244b", size = 94282, upload-time = "2025-10-06T14:11:19.064Z" }, + { url = "https://files.pythonhosted.org/packages/a7/bc/315a56aca762d44a6aaaf7ad253f04d996cb6b27bad34410f82d76ea8038/yarl-1.22.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d7a87a78d46a2e3d5b72587ac14b4c16952dd0887dbb051451eceac774411e", size = 372080, upload-time = "2025-10-06T14:11:20.996Z" }, + { url = "https://files.pythonhosted.org/packages/3f/3f/08e9b826ec2e099ea6e7c69a61272f4f6da62cb5b1b63590bb80ca2e4a40/yarl-1.22.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:852863707010316c973162e703bddabec35e8757e67fcb8ad58829de1ebc8590", size = 338696, upload-time = "2025-10-06T14:11:22.847Z" }, + { url = "https://files.pythonhosted.org/packages/e3/9f/90360108e3b32bd76789088e99538febfea24a102380ae73827f62073543/yarl-1.22.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:131a085a53bfe839a477c0845acf21efc77457ba2bcf5899618136d64f3303a2", size = 387121, upload-time = "2025-10-06T14:11:24.889Z" }, + { url = "https://files.pythonhosted.org/packages/98/92/ab8d4657bd5b46a38094cfaea498f18bb70ce6b63508fd7e909bd1f93066/yarl-1.22.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:078a8aefd263f4d4f923a9677b942b445a2be970ca24548a8102689a3a8ab8da", size = 394080, upload-time = "2025-10-06T14:11:27.307Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e7/d8c5a7752fef68205296201f8ec2bf718f5c805a7a7e9880576c67600658/yarl-1.22.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca03b91c323036913993ff5c738d0842fc9c60c4648e5c8d98331526df89784", size = 372661, upload-time = "2025-10-06T14:11:29.387Z" }, + { url = "https://files.pythonhosted.org/packages/b6/2e/f4d26183c8db0bb82d491b072f3127fb8c381a6206a3a56332714b79b751/yarl-1.22.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:68986a61557d37bb90d3051a45b91fa3d5c516d177dfc6dd6f2f436a07ff2b6b", size = 364645, upload-time = "2025-10-06T14:11:31.423Z" }, + { url = "https://files.pythonhosted.org/packages/80/7c/428e5812e6b87cd00ee8e898328a62c95825bf37c7fa87f0b6bb2ad31304/yarl-1.22.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4792b262d585ff0dff6bcb787f8492e40698443ec982a3568c2096433660c694", size = 355361, upload-time = "2025-10-06T14:11:33.055Z" }, + { url = "https://files.pythonhosted.org/packages/ec/2a/249405fd26776f8b13c067378ef4d7dd49c9098d1b6457cdd152a99e96a9/yarl-1.22.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ebd4549b108d732dba1d4ace67614b9545b21ece30937a63a65dd34efa19732d", size = 381451, upload-time = "2025-10-06T14:11:35.136Z" }, + { url = "https://files.pythonhosted.org/packages/67/a8/fb6b1adbe98cf1e2dd9fad71003d3a63a1bc22459c6e15f5714eb9323b93/yarl-1.22.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f87ac53513d22240c7d59203f25cc3beac1e574c6cd681bbfd321987b69f95fd", size = 383814, upload-time = "2025-10-06T14:11:37.094Z" }, + { url = "https://files.pythonhosted.org/packages/d9/f9/3aa2c0e480fb73e872ae2814c43bc1e734740bb0d54e8cb2a95925f98131/yarl-1.22.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:22b029f2881599e2f1b06f8f1db2ee63bd309e2293ba2d566e008ba12778b8da", size = 370799, upload-time = "2025-10-06T14:11:38.83Z" }, + { url = "https://files.pythonhosted.org/packages/50/3c/af9dba3b8b5eeb302f36f16f92791f3ea62e3f47763406abf6d5a4a3333b/yarl-1.22.0-cp314-cp314-win32.whl", hash = "sha256:6a635ea45ba4ea8238463b4f7d0e721bad669f80878b7bfd1f89266e2ae63da2", size = 82990, upload-time = "2025-10-06T14:11:40.624Z" }, + { url = "https://files.pythonhosted.org/packages/ac/30/ac3a0c5bdc1d6efd1b41fa24d4897a4329b3b1e98de9449679dd327af4f0/yarl-1.22.0-cp314-cp314-win_amd64.whl", hash = "sha256:0d6e6885777af0f110b0e5d7e5dda8b704efed3894da26220b7f3d887b839a79", size = 88292, upload-time = "2025-10-06T14:11:42.578Z" }, + { url = "https://files.pythonhosted.org/packages/df/0a/227ab4ff5b998a1b7410abc7b46c9b7a26b0ca9e86c34ba4b8d8bc7c63d5/yarl-1.22.0-cp314-cp314-win_arm64.whl", hash = "sha256:8218f4e98d3c10d683584cb40f0424f4b9fd6e95610232dd75e13743b070ee33", size = 82888, upload-time = "2025-10-06T14:11:44.863Z" }, + { url = "https://files.pythonhosted.org/packages/06/5e/a15eb13db90abd87dfbefb9760c0f3f257ac42a5cac7e75dbc23bed97a9f/yarl-1.22.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:45c2842ff0e0d1b35a6bf1cd6c690939dacb617a70827f715232b2e0494d55d1", size = 146223, upload-time = "2025-10-06T14:11:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/18/82/9665c61910d4d84f41a5bf6837597c89e665fa88aa4941080704645932a9/yarl-1.22.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d947071e6ebcf2e2bee8fce76e10faca8f7a14808ca36a910263acaacef08eca", size = 95981, upload-time = "2025-10-06T14:11:48.845Z" }, + { url = "https://files.pythonhosted.org/packages/5d/9a/2f65743589809af4d0a6d3aa749343c4b5f4c380cc24a8e94a3c6625a808/yarl-1.22.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:334b8721303e61b00019474cc103bdac3d7b1f65e91f0bfedeec2d56dfe74b53", size = 97303, upload-time = "2025-10-06T14:11:50.897Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ab/5b13d3e157505c43c3b43b5a776cbf7b24a02bc4cccc40314771197e3508/yarl-1.22.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e7ce67c34138a058fd092f67d07a72b8e31ff0c9236e751957465a24b28910c", size = 361820, upload-time = "2025-10-06T14:11:52.549Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/242a5ef4677615cf95330cfc1b4610e78184400699bdda0acb897ef5e49a/yarl-1.22.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d77e1b2c6d04711478cb1c4ab90db07f1609ccf06a287d5607fcd90dc9863acf", size = 323203, upload-time = "2025-10-06T14:11:54.225Z" }, + { url = "https://files.pythonhosted.org/packages/8c/96/475509110d3f0153b43d06164cf4195c64d16999e0c7e2d8a099adcd6907/yarl-1.22.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4647674b6150d2cae088fc07de2738a84b8bcedebef29802cf0b0a82ab6face", size = 363173, upload-time = "2025-10-06T14:11:56.069Z" }, + { url = "https://files.pythonhosted.org/packages/c9/66/59db471aecfbd559a1fd48aedd954435558cd98c7d0da8b03cc6c140a32c/yarl-1.22.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efb07073be061c8f79d03d04139a80ba33cbd390ca8f0297aae9cce6411e4c6b", size = 373562, upload-time = "2025-10-06T14:11:58.783Z" }, + { url = "https://files.pythonhosted.org/packages/03/1f/c5d94abc91557384719da10ff166b916107c1b45e4d0423a88457071dd88/yarl-1.22.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51ac5435758ba97ad69617e13233da53908beccc6cfcd6c34bbed8dcbede486", size = 339828, upload-time = "2025-10-06T14:12:00.686Z" }, + { url = "https://files.pythonhosted.org/packages/5f/97/aa6a143d3afba17b6465733681c70cf175af89f76ec8d9286e08437a7454/yarl-1.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33e32a0dd0c8205efa8e83d04fc9f19313772b78522d1bdc7d9aed706bfd6138", size = 347551, upload-time = "2025-10-06T14:12:02.628Z" }, + { url = "https://files.pythonhosted.org/packages/43/3c/45a2b6d80195959239a7b2a8810506d4eea5487dce61c2a3393e7fc3c52e/yarl-1.22.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:bf4a21e58b9cde0e401e683ebd00f6ed30a06d14e93f7c8fd059f8b6e8f87b6a", size = 334512, upload-time = "2025-10-06T14:12:04.871Z" }, + { url = "https://files.pythonhosted.org/packages/86/a0/c2ab48d74599c7c84cb104ebd799c5813de252bea0f360ffc29d270c2caa/yarl-1.22.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:e4b582bab49ac33c8deb97e058cd67c2c50dac0dd134874106d9c774fd272529", size = 352400, upload-time = "2025-10-06T14:12:06.624Z" }, + { url = "https://files.pythonhosted.org/packages/32/75/f8919b2eafc929567d3d8411f72bdb1a2109c01caaab4ebfa5f8ffadc15b/yarl-1.22.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0b5bcc1a9c4839e7e30b7b30dd47fe5e7e44fb7054ec29b5bb8d526aa1041093", size = 357140, upload-time = "2025-10-06T14:12:08.362Z" }, + { url = "https://files.pythonhosted.org/packages/cf/72/6a85bba382f22cf78add705d8c3731748397d986e197e53ecc7835e76de7/yarl-1.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c0232bce2170103ec23c454e54a57008a9a72b5d1c3105dc2496750da8cfa47c", size = 341473, upload-time = "2025-10-06T14:12:10.994Z" }, + { url = "https://files.pythonhosted.org/packages/35/18/55e6011f7c044dc80b98893060773cefcfdbf60dfefb8cb2f58b9bacbd83/yarl-1.22.0-cp314-cp314t-win32.whl", hash = "sha256:8009b3173bcd637be650922ac455946197d858b3630b6d8787aa9e5c4564533e", size = 89056, upload-time = "2025-10-06T14:12:13.317Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/0f0dccb6e59a9e7f122c5afd43568b1d31b8ab7dda5f1b01fb5c7025c9a9/yarl-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9fb17ea16e972c63d25d4a97f016d235c78dd2344820eb35bc034bc32012ee27", size = 96292, upload-time = "2025-10-06T14:12:15.398Z" }, + { url = "https://files.pythonhosted.org/packages/48/b7/503c98092fb3b344a179579f55814b613c1fbb1c23b3ec14a7b008a66a6e/yarl-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9f6d73c1436b934e3f01df1e1b21ff765cd1d28c77dfb9ace207f746d4610ee1", size = 85171, upload-time = "2025-10-06T14:12:16.935Z" }, + { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814, upload-time = "2025-10-06T14:12:53.872Z" }, +] + [[package]] name = "zipp" version = "3.23.0"