Spaces:
Sleeping
Sleeping
Jac-Zac commited on
Commit ·
0ba2e45
1
Parent(s): dc186e4
Adding support for 3d plot
Browse files- pyproject.toml +1 -1
- tabs/compare.py +20 -4
- utils/helpers.py +2 -2
- uv.lock +97 -87
pyproject.toml
CHANGED
|
@@ -5,7 +5,7 @@ description = "Streamlit UI for persona-vectors"
|
|
| 5 |
readme = "README.md"
|
| 6 |
requires-python = ">=3.12"
|
| 7 |
dependencies = [
|
| 8 |
-
"persona-vectors>=0.6.
|
| 9 |
"persona-data>=0.4.2",
|
| 10 |
"streamlit>=1.44.0",
|
| 11 |
"plotly>=6.6.0",
|
|
|
|
| 5 |
readme = "README.md"
|
| 6 |
requires-python = ">=3.12"
|
| 7 |
dependencies = [
|
| 8 |
+
"persona-vectors>=0.6.4",
|
| 9 |
"persona-data>=0.4.2",
|
| 10 |
"streamlit>=1.44.0",
|
| 11 |
"plotly>=6.6.0",
|
tabs/compare.py
CHANGED
|
@@ -434,6 +434,7 @@ def _render_layered_figure_analysis(
|
|
| 434 |
button_label: str,
|
| 435 |
title_fn: Callable[[str], str],
|
| 436 |
include_pair_trajectories: bool = False,
|
|
|
|
| 437 |
) -> None:
|
| 438 |
"""Render a single-variant layered analysis: select → button → figure(s).
|
| 439 |
|
|
@@ -452,11 +453,12 @@ def _render_layered_figure_analysis(
|
|
| 452 |
store.model_name,
|
| 453 |
mask_strategy.value,
|
| 454 |
figure_kind,
|
|
|
|
| 455 |
variant,
|
| 456 |
"persona_vector",
|
| 457 |
persona_key,
|
| 458 |
)
|
| 459 |
-
filename = scope
|
| 460 |
|
| 461 |
if st.button(button_label, type="primary"):
|
| 462 |
try:
|
|
@@ -466,11 +468,15 @@ def _render_layered_figure_analysis(
|
|
| 466 |
mask_strategy=mask_strategy,
|
| 467 |
persona_ids=persona_ids,
|
| 468 |
)
|
|
|
|
|
|
|
|
|
|
| 469 |
main_fig = build_layered_figure(
|
| 470 |
samples,
|
| 471 |
figure_kind,
|
| 472 |
layers=selected_layers,
|
| 473 |
title=title_fn(variant),
|
|
|
|
| 474 |
)
|
| 475 |
if figure_kind in {"umap", "pca"}:
|
| 476 |
main_fig.update_layout(height=700)
|
|
@@ -577,13 +583,23 @@ def render_compare_tab(model_name: str) -> None:
|
|
| 577 |
)
|
| 578 |
return
|
| 579 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 580 |
_render_layered_figure_analysis(
|
| 581 |
store,
|
| 582 |
mask_strategy,
|
| 583 |
-
scope=analysis_mode.lower(),
|
| 584 |
figure_kind=analysis_mode.lower(),
|
| 585 |
-
button_label=f"Generate {analysis_mode} projection",
|
| 586 |
title_fn=lambda v: (
|
| 587 |
-
f"{analysis_mode} - {prompt_variant_label(v)} - persona vectors"
|
| 588 |
),
|
|
|
|
| 589 |
)
|
|
|
|
| 434 |
button_label: str,
|
| 435 |
title_fn: Callable[[str], str],
|
| 436 |
include_pair_trajectories: bool = False,
|
| 437 |
+
n_components: int = 2,
|
| 438 |
) -> None:
|
| 439 |
"""Render a single-variant layered analysis: select → button → figure(s).
|
| 440 |
|
|
|
|
| 453 |
store.model_name,
|
| 454 |
mask_strategy.value,
|
| 455 |
figure_kind,
|
| 456 |
+
str(n_components),
|
| 457 |
variant,
|
| 458 |
"persona_vector",
|
| 459 |
persona_key,
|
| 460 |
)
|
| 461 |
+
filename = scope if n_components == 2 else f"{scope}_3d"
|
| 462 |
|
| 463 |
if st.button(button_label, type="primary"):
|
| 464 |
try:
|
|
|
|
| 468 |
mask_strategy=mask_strategy,
|
| 469 |
persona_ids=persona_ids,
|
| 470 |
)
|
| 471 |
+
build_kwargs = {}
|
| 472 |
+
if figure_kind in {"umap", "pca"}:
|
| 473 |
+
build_kwargs["n_components"] = n_components
|
| 474 |
main_fig = build_layered_figure(
|
| 475 |
samples,
|
| 476 |
figure_kind,
|
| 477 |
layers=selected_layers,
|
| 478 |
title=title_fn(variant),
|
| 479 |
+
**build_kwargs,
|
| 480 |
)
|
| 481 |
if figure_kind in {"umap", "pca"}:
|
| 482 |
main_fig.update_layout(height=700)
|
|
|
|
| 583 |
)
|
| 584 |
return
|
| 585 |
|
| 586 |
+
dimension_choice = st.segmented_control(
|
| 587 |
+
"Projection dimensions",
|
| 588 |
+
options=["2D", "3D"],
|
| 589 |
+
default="2D",
|
| 590 |
+
key=widget_key("load", "projection_dims", analysis_mode),
|
| 591 |
+
label_visibility="collapsed",
|
| 592 |
+
)
|
| 593 |
+
n_components = 3 if dimension_choice == "3D" else 2
|
| 594 |
+
dim_suffix = "" if n_components == 2 else " (3D)"
|
| 595 |
_render_layered_figure_analysis(
|
| 596 |
store,
|
| 597 |
mask_strategy,
|
| 598 |
+
scope=f"{analysis_mode.lower()}{'_3d' if n_components == 3 else ''}",
|
| 599 |
figure_kind=analysis_mode.lower(),
|
| 600 |
+
button_label=f"Generate {analysis_mode}{dim_suffix} projection",
|
| 601 |
title_fn=lambda v: (
|
| 602 |
+
f"{analysis_mode}{dim_suffix} - {prompt_variant_label(v)} - persona vectors"
|
| 603 |
),
|
| 604 |
+
n_components=n_components,
|
| 605 |
)
|
utils/helpers.py
CHANGED
|
@@ -27,8 +27,8 @@ ANALYSIS_MODES = ["Cosine similarity", "Similarity matrix", "PCA", "UMAP"]
|
|
| 27 |
ANALYSIS_HELP_TEXT = {
|
| 28 |
"Cosine similarity": "Compare layer-wise alignment between variants.",
|
| 29 |
"Similarity matrix": "Compare centered pairwise similarity between persona vectors by layer, with pair trajectories across layers.",
|
| 30 |
-
"PCA": "Project per-persona vectors into a 2D global view.",
|
| 31 |
-
"UMAP": "Project per-persona vectors into a 2D local-neighborhood view.",
|
| 32 |
}
|
| 33 |
|
| 34 |
NDIF_STATUS_ICONS = {
|
|
|
|
| 27 |
ANALYSIS_HELP_TEXT = {
|
| 28 |
"Cosine similarity": "Compare layer-wise alignment between variants.",
|
| 29 |
"Similarity matrix": "Compare centered pairwise similarity between persona vectors by layer, with pair trajectories across layers.",
|
| 30 |
+
"PCA": "Project per-persona vectors into a 2D or 3D global view.",
|
| 31 |
+
"UMAP": "Project per-persona vectors into a 2D or 3D local-neighborhood view.",
|
| 32 |
}
|
| 33 |
|
| 34 |
NDIF_STATUS_ICONS = {
|
uv.lock
CHANGED
|
@@ -974,14 +974,14 @@ wheels = [
|
|
| 974 |
|
| 975 |
[[package]]
|
| 976 |
name = "matplotlib-inline"
|
| 977 |
-
version = "0.2.
|
| 978 |
source = { registry = "https://pypi.org/simple" }
|
| 979 |
dependencies = [
|
| 980 |
{ name = "traitlets" },
|
| 981 |
]
|
| 982 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 983 |
wheels = [
|
| 984 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 985 |
]
|
| 986 |
|
| 987 |
[[package]]
|
|
@@ -1579,7 +1579,7 @@ dependencies = [
|
|
| 1579 |
[package.metadata]
|
| 1580 |
requires-dist = [
|
| 1581 |
{ name = "persona-data", specifier = ">=0.4.2" },
|
| 1582 |
-
{ name = "persona-vectors", specifier = ">=0.6.
|
| 1583 |
{ name = "plotly", specifier = ">=6.6.0" },
|
| 1584 |
{ name = "python-dotenv", specifier = ">=1.2.2" },
|
| 1585 |
{ name = "streamlit", specifier = ">=1.44.0" },
|
|
@@ -1587,7 +1587,7 @@ requires-dist = [
|
|
| 1587 |
|
| 1588 |
[[package]]
|
| 1589 |
name = "persona-vectors"
|
| 1590 |
-
version = "0.6.
|
| 1591 |
source = { registry = "https://pypi.org/simple" }
|
| 1592 |
dependencies = [
|
| 1593 |
{ name = "datasets" },
|
|
@@ -1606,9 +1606,9 @@ dependencies = [
|
|
| 1606 |
{ name = "transformers" },
|
| 1607 |
{ name = "umap-learn" },
|
| 1608 |
]
|
| 1609 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1610 |
wheels = [
|
| 1611 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1612 |
]
|
| 1613 |
|
| 1614 |
[[package]]
|
|
@@ -1728,86 +1728,96 @@ wheels = [
|
|
| 1728 |
|
| 1729 |
[[package]]
|
| 1730 |
name = "propcache"
|
| 1731 |
-
version = "0.
|
| 1732 |
-
source = { registry = "https://pypi.org/simple" }
|
| 1733 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1734 |
-
wheels = [
|
| 1735 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1736 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1737 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1738 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1739 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1740 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1741 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1742 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1743 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1744 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1745 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1746 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1747 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1748 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1749 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1750 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1751 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1752 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1753 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1754 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1755 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1756 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1757 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1758 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1759 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1760 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1761 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1762 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1763 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1764 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1765 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1766 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1767 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1768 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1769 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1770 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1771 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1772 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1773 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1774 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1775 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1776 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1777 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1778 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1779 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1780 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1781 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1782 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1783 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1784 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1785 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1786 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1787 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1788 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1789 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1790 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1791 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1792 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1793 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1794 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1795 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1796 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1797 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1798 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1799 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1800 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1801 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1802 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1803 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1804 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1805 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1806 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1807 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1808 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1809 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1810 |
-
{ url = "https://files.pythonhosted.org/packages/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1811 |
]
|
| 1812 |
|
| 1813 |
[[package]]
|
|
|
|
| 974 |
|
| 975 |
[[package]]
|
| 976 |
name = "matplotlib-inline"
|
| 977 |
+
version = "0.2.2"
|
| 978 |
source = { registry = "https://pypi.org/simple" }
|
| 979 |
dependencies = [
|
| 980 |
{ name = "traitlets" },
|
| 981 |
]
|
| 982 |
+
sdist = { url = "https://files.pythonhosted.org/packages/bd/c0/9f7c9a46090390368a4d7bcb76bb87a4a36c421e4c0792cdb53486ffac7a/matplotlib_inline-0.2.2.tar.gz", hash = "sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79", size = 8150, upload-time = "2026-05-08T17:33:33.49Z" }
|
| 983 |
wheels = [
|
| 984 |
+
{ url = "https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl", hash = "sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6", size = 9534, upload-time = "2026-05-08T17:33:32.055Z" },
|
| 985 |
]
|
| 986 |
|
| 987 |
[[package]]
|
|
|
|
| 1579 |
[package.metadata]
|
| 1580 |
requires-dist = [
|
| 1581 |
{ name = "persona-data", specifier = ">=0.4.2" },
|
| 1582 |
+
{ name = "persona-vectors", specifier = ">=0.6.4" },
|
| 1583 |
{ name = "plotly", specifier = ">=6.6.0" },
|
| 1584 |
{ name = "python-dotenv", specifier = ">=1.2.2" },
|
| 1585 |
{ name = "streamlit", specifier = ">=1.44.0" },
|
|
|
|
| 1587 |
|
| 1588 |
[[package]]
|
| 1589 |
name = "persona-vectors"
|
| 1590 |
+
version = "0.6.4"
|
| 1591 |
source = { registry = "https://pypi.org/simple" }
|
| 1592 |
dependencies = [
|
| 1593 |
{ name = "datasets" },
|
|
|
|
| 1606 |
{ name = "transformers" },
|
| 1607 |
{ name = "umap-learn" },
|
| 1608 |
]
|
| 1609 |
+
sdist = { url = "https://files.pythonhosted.org/packages/4d/72/86e352f285e7154e94ef2783d60af28b852db670d6de12bd869e8ca90d1e/persona_vectors-0.6.4.tar.gz", hash = "sha256:c8fc3e44210e30ec4d310b0f35cea8d709e899734cd0ff8b7d74c2024f7502f4", size = 25104, upload-time = "2026-05-09T20:31:23.194Z" }
|
| 1610 |
wheels = [
|
| 1611 |
+
{ url = "https://files.pythonhosted.org/packages/41/80/fa8365b4e3fecc23e78291b9e066de109cd427804b8406e2a851b4e71ab4/persona_vectors-0.6.4-py3-none-any.whl", hash = "sha256:493249e6cdcdab29d4850f1d57b3c5af9bbb7be3635289332ff41ffe4ee76c14", size = 29945, upload-time = "2026-05-09T20:31:24.203Z" },
|
| 1612 |
]
|
| 1613 |
|
| 1614 |
[[package]]
|
|
|
|
| 1728 |
|
| 1729 |
[[package]]
|
| 1730 |
name = "propcache"
|
| 1731 |
+
version = "0.5.2"
|
| 1732 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1733 |
+
sdist = { url = "https://files.pythonhosted.org/packages/ec/44/c87281c333769159c50594f22610f77398a47ccbfbbf23074e744e86f87c/propcache-0.5.2.tar.gz", hash = "sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427", size = 50208, upload-time = "2026-05-08T21:02:12.199Z" }
|
| 1734 |
+
wheels = [
|
| 1735 |
+
{ url = "https://files.pythonhosted.org/packages/4a/cb/e27bc2b2737a0bb49962b275efa051e8f1c35a936df7d5139b6b658b7dc9/propcache-0.5.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba", size = 95887, upload-time = "2026-05-08T21:00:11.277Z" },
|
| 1736 |
+
{ url = "https://files.pythonhosted.org/packages/e6/13/b8ae04c59392f8d11c6cd9fb4011d1dc7c86b81225c770280300e259ffe1/propcache-0.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a", size = 54654, upload-time = "2026-05-08T21:00:12.604Z" },
|
| 1737 |
+
{ url = "https://files.pythonhosted.org/packages/2c/7d/49777a3e20b55863d4794384a38acd460c04157b0a00f8602b0d508b8431/propcache-0.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf", size = 55190, upload-time = "2026-05-08T21:00:13.935Z" },
|
| 1738 |
+
{ url = "https://files.pythonhosted.org/packages/44/c7/085d0cd63062e84044e3f05797749c3f8e3938ff3aeb0eb2f69d43fafc91/propcache-0.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144", size = 59995, upload-time = "2026-05-08T21:00:15.526Z" },
|
| 1739 |
+
{ url = "https://files.pythonhosted.org/packages/9c/42/32cf8e3009e92b2645cf1e944f701e8ea4e924dffde1ee26db860bcbf7e4/propcache-0.5.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9", size = 63422, upload-time = "2026-05-08T21:00:16.824Z" },
|
| 1740 |
+
{ url = "https://files.pythonhosted.org/packages/9e/1b/f112433f99fc979431b87a39ef169e3f8df070d99a72792c56d6937ac48b/propcache-0.5.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42", size = 64342, upload-time = "2026-05-08T21:00:18.362Z" },
|
| 1741 |
+
{ url = "https://files.pythonhosted.org/packages/14/15/5574111ae50dd6e879456888c0eadd4c5a869959775854e18e18a6b345f3/propcache-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476", size = 61639, upload-time = "2026-05-08T21:00:19.692Z" },
|
| 1742 |
+
{ url = "https://files.pythonhosted.org/packages/cc/da/4d775080b1490c0ae604acda868bd71aabe3a89ed16f2aa4339eb8a283e7/propcache-0.5.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba", size = 61588, upload-time = "2026-05-08T21:00:21.155Z" },
|
| 1743 |
+
{ url = "https://files.pythonhosted.org/packages/04/ac/f076982cbe2195ee9cf32de5a1e46951d9fb399fc207f390562dd0fd8fb2/propcache-0.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a", size = 60029, upload-time = "2026-05-08T21:00:22.713Z" },
|
| 1744 |
+
{ url = "https://files.pythonhosted.org/packages/70/60/189be62e0dd898dce3b331e1b8c7a543cd3a405ac0c81fe8ee8a9d5d77e1/propcache-0.5.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64", size = 56774, upload-time = "2026-05-08T21:00:24.001Z" },
|
| 1745 |
+
{ url = "https://files.pythonhosted.org/packages/ea/9e/93377b9c7939c1ffae98f878dee955efadfd638078bc86dbc21f9d52f651/propcache-0.5.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913", size = 63532, upload-time = "2026-05-08T21:00:25.545Z" },
|
| 1746 |
+
{ url = "https://files.pythonhosted.org/packages/14/f9/590ef6cfb9b8028d516d287812ece32bb0bc5f11fbb9c8bf6b2e6313fec8/propcache-0.5.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1", size = 61592, upload-time = "2026-05-08T21:00:27.186Z" },
|
| 1747 |
+
{ url = "https://files.pythonhosted.org/packages/b4/5e/70958b3034c297a630bba2f17ca7abc2d5f39a803ad7e370ab79d1ecd022/propcache-0.5.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33", size = 64788, upload-time = "2026-05-08T21:00:28.8Z" },
|
| 1748 |
+
{ url = "https://files.pythonhosted.org/packages/12/fd/77fe5936d8c3086ca9048f7f415f122ed82e53884a9ec193646b42deef06/propcache-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a", size = 62514, upload-time = "2026-05-08T21:00:30.098Z" },
|
| 1749 |
+
{ url = "https://files.pythonhosted.org/packages/cf/74/66bd798b5b3be70aa1b391f5cc9d6a0a5532d7fd3b19ec0b213e72e6ad9d/propcache-0.5.2-cp312-cp312-win32.whl", hash = "sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031", size = 39018, upload-time = "2026-05-08T21:00:31.622Z" },
|
| 1750 |
+
{ url = "https://files.pythonhosted.org/packages/61/7c/5c0d34aa3024694d6dcb9271cdbdd08c4e47c1c0ad95ec7e7bc74cdea145/propcache-0.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42", size = 42322, upload-time = "2026-05-08T21:00:32.918Z" },
|
| 1751 |
+
{ url = "https://files.pythonhosted.org/packages/4d/91/875812f1a3feb20ceba818ef39fbe4d92f1081e04ac815c822496d0d038b/propcache-0.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84", size = 38172, upload-time = "2026-05-08T21:00:35.124Z" },
|
| 1752 |
+
{ url = "https://files.pythonhosted.org/packages/c5/09/f049e45385503fe67db75a6b6186a7b9f0c3930366dc960522c312a825b1/propcache-0.5.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a", size = 94457, upload-time = "2026-05-08T21:00:36.355Z" },
|
| 1753 |
+
{ url = "https://files.pythonhosted.org/packages/6b/65/83d1d05655baf63113731bd5a1008435e14f8d1e5a06cbe4ec5b23ad7a31/propcache-0.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117", size = 53835, upload-time = "2026-05-08T21:00:38.072Z" },
|
| 1754 |
+
{ url = "https://files.pythonhosted.org/packages/a9/12/a6ba6482bb5ea3260c000c9b20881c95fa11c6b30173715668259f844ed7/propcache-0.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098", size = 54545, upload-time = "2026-05-08T21:00:39.319Z" },
|
| 1755 |
+
{ url = "https://files.pythonhosted.org/packages/a9/19/7fa086f5764c59ec8a8e157cd93aa8497acc00aba9dcdec56bfffb32602d/propcache-0.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4", size = 59886, upload-time = "2026-05-08T21:00:40.621Z" },
|
| 1756 |
+
{ url = "https://files.pythonhosted.org/packages/a1/e4/5d7663dc8235956c8f5281698a3af1d351d8820341ddd890f59d9a9127f2/propcache-0.5.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e", size = 63261, upload-time = "2026-05-08T21:00:41.775Z" },
|
| 1757 |
+
{ url = "https://files.pythonhosted.org/packages/4a/4a/15a03adee24d6350da4292caeac44c34c033d2afe5e87eb370f38854560f/propcache-0.5.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7", size = 64184, upload-time = "2026-05-08T21:00:43.018Z" },
|
| 1758 |
+
{ url = "https://files.pythonhosted.org/packages/8b/c6/979176efdaa3d239e36d503d5af63a0a773b36662ed8f52e5b6a6d9fd40e/propcache-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d", size = 61534, upload-time = "2026-05-08T21:00:44.507Z" },
|
| 1759 |
+
{ url = "https://files.pythonhosted.org/packages/c8/22/63e8cd1bae4c2d2be6493b6b7d10566ddafad88137cfbc99964a1119853c/propcache-0.5.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a", size = 61500, upload-time = "2026-05-08T21:00:45.796Z" },
|
| 1760 |
+
{ url = "https://files.pythonhosted.org/packages/60/5a/28e5d9acbac1cc9ccb67045e8c1b943aa8d79fdf39c93bd73cacd68008ea/propcache-0.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2", size = 59994, upload-time = "2026-05-08T21:00:47.093Z" },
|
| 1761 |
+
{ url = "https://files.pythonhosted.org/packages/f3/40/db650677f554a95b9c01a7c9d93d629e93a15562f5deb4573c9ee136fed2/propcache-0.5.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa", size = 56884, upload-time = "2026-05-08T21:00:48.376Z" },
|
| 1762 |
+
{ url = "https://files.pythonhosted.org/packages/80/45/70b39b89516ff8b96bf732fa6fded8cef20f293cb1508690101c3c07ec51/propcache-0.5.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853", size = 63464, upload-time = "2026-05-08T21:00:49.954Z" },
|
| 1763 |
+
{ url = "https://files.pythonhosted.org/packages/f9/e2/fa59d3a89eac5534293124af4f1d0d0ada091ce4a0ab4610ce03fd2bdd8d/propcache-0.5.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a", size = 61588, upload-time = "2026-05-08T21:00:51.281Z" },
|
| 1764 |
+
{ url = "https://files.pythonhosted.org/packages/0b/97/efb547a55c4bc7381cfb202d6a2239ac621045277bc1ea5dfd3a7f0516c0/propcache-0.5.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704", size = 64667, upload-time = "2026-05-08T21:00:52.602Z" },
|
| 1765 |
+
{ url = "https://files.pythonhosted.org/packages/92/56/f5c7d9b4b7595d5127da38974d791b2153f3d1eae6c674af3583ace92ad3/propcache-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4", size = 62463, upload-time = "2026-05-08T21:00:54.303Z" },
|
| 1766 |
+
{ url = "https://files.pythonhosted.org/packages/bd/3b/484a3a65fc9f9f60c41dcd17b428bace5389544e2c680994534a20755066/propcache-0.5.2-cp313-cp313-win32.whl", hash = "sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d", size = 38621, upload-time = "2026-05-08T21:00:55.808Z" },
|
| 1767 |
+
{ url = "https://files.pythonhosted.org/packages/1c/fd/3f0f10dba4dabad3bf53102be007abf55481067952bde0fdddff439e7c61/propcache-0.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757", size = 41649, upload-time = "2026-05-08T21:00:57.061Z" },
|
| 1768 |
+
{ url = "https://files.pythonhosted.org/packages/90/ec/6ce619cc32bb500a482f811f9cd509368b4e58e638d13f2c68f370d6b475/propcache-0.5.2-cp313-cp313-win_arm64.whl", hash = "sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f", size = 37636, upload-time = "2026-05-08T21:00:58.646Z" },
|
| 1769 |
+
{ url = "https://files.pythonhosted.org/packages/1b/82/c1d268bbbf2ef981c5bf0fbbe746db617c66e3bcefe431a1aa8943fbe23a/propcache-0.5.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d", size = 98872, upload-time = "2026-05-08T21:00:59.889Z" },
|
| 1770 |
+
{ url = "https://files.pythonhosted.org/packages/f4/d4/52c871e73e864e6b34c0e2d58ac1ec5ccd149497ddc7ad2137ae98323a35/propcache-0.5.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa", size = 56257, upload-time = "2026-05-08T21:01:01.195Z" },
|
| 1771 |
+
{ url = "https://files.pythonhosted.org/packages/67/f0/9b90ca2a210b3d09bcfcd96ecd0f55545c091535abce2a45de2775cfd357/propcache-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94", size = 56696, upload-time = "2026-05-08T21:01:02.941Z" },
|
| 1772 |
+
{ url = "https://files.pythonhosted.org/packages/9d/0e/6e9d4ba07c8e56e21ddec1e75f12148142b21ca83a51871babce095334f4/propcache-0.5.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164", size = 62378, upload-time = "2026-05-08T21:01:04.475Z" },
|
| 1773 |
+
{ url = "https://files.pythonhosted.org/packages/65/19/c10badaa463dde8a27ce884f8ee2ec37e6035b7c9f5ff0c8f74f06f08dac/propcache-0.5.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f", size = 65283, upload-time = "2026-05-08T21:01:05.959Z" },
|
| 1774 |
+
{ url = "https://files.pythonhosted.org/packages/b0/b6/93bea99ca80e19cef6512a8580e5b7857bbe09422d9daa7fd4ef5723306c/propcache-0.5.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c", size = 66616, upload-time = "2026-05-08T21:01:07.228Z" },
|
| 1775 |
+
{ url = "https://files.pythonhosted.org/packages/83/e4/5c7462e50625f051f37fb38b8224f7639f667184bbd34424ec83819bb1b7/propcache-0.5.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc", size = 63773, upload-time = "2026-05-08T21:01:08.514Z" },
|
| 1776 |
+
{ url = "https://files.pythonhosted.org/packages/ca/b6/99238894047b13c823be25027e736626cd414a52a5e30d2c3347c2733529/propcache-0.5.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f", size = 63664, upload-time = "2026-05-08T21:01:09.874Z" },
|
| 1777 |
+
{ url = "https://files.pythonhosted.org/packages/85/1e/a3a1a63116a2b8edb415a8bb9a6f0c34bd03830b1e18e8ce2904e1dc1cf4/propcache-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb", size = 62643, upload-time = "2026-05-08T21:01:11.132Z" },
|
| 1778 |
+
{ url = "https://files.pythonhosted.org/packages/e4/03/893cf147de2fc6543c5eaa07ad833170e7e2a2385725bbebe8c0503723bb/propcache-0.5.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751", size = 59595, upload-time = "2026-05-08T21:01:12.387Z" },
|
| 1779 |
+
{ url = "https://files.pythonhosted.org/packages/86/3b/04c1a2e12c57766568ba75ba72b3bf2042818d4c1425fab6fc07155c7cff/propcache-0.5.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836", size = 65711, upload-time = "2026-05-08T21:01:13.676Z" },
|
| 1780 |
+
{ url = "https://files.pythonhosted.org/packages/1c/34/80f8d0099f8d6bacc4de1624c85672681c8cd1149ca2da0e38fd120b817f/propcache-0.5.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f", size = 64247, upload-time = "2026-05-08T21:01:14.936Z" },
|
| 1781 |
+
{ url = "https://files.pythonhosted.org/packages/f3/1a/8b08f3a5f1037e9e370c55883ceeeee0f6dd0416fb2d2d67b8bfc91f2a79/propcache-0.5.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55", size = 67102, upload-time = "2026-05-08T21:01:16.281Z" },
|
| 1782 |
+
{ url = "https://files.pythonhosted.org/packages/34/68/8bdb7bb7756d76e005490649d10e4a8369e610c74d619f71e1aedf889e9c/propcache-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568", size = 64964, upload-time = "2026-05-08T21:01:17.57Z" },
|
| 1783 |
+
{ url = "https://files.pythonhosted.org/packages/0a/aa/50fb0b5d3968b61a510926ff8b8465f1d6e976b3ab74496d7a4b9fc42515/propcache-0.5.2-cp313-cp313t-win32.whl", hash = "sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191", size = 42546, upload-time = "2026-05-08T21:01:18.946Z" },
|
| 1784 |
+
{ url = "https://files.pythonhosted.org/packages/ae/4c/0ddbae64321bd4a95bcbfc19307238016b5b1fee645c84626c8d539e5b74/propcache-0.5.2-cp313-cp313t-win_amd64.whl", hash = "sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7", size = 46330, upload-time = "2026-05-08T21:01:20.162Z" },
|
| 1785 |
+
{ url = "https://files.pythonhosted.org/packages/00/d9/9cddc8efb78d8af264c5ec9f6d10b62f57c515feda8d321595f56010fb23/propcache-0.5.2-cp313-cp313t-win_arm64.whl", hash = "sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96", size = 40521, upload-time = "2026-05-08T21:01:21.399Z" },
|
| 1786 |
+
{ url = "https://files.pythonhosted.org/packages/e2/ea/23ee535d90ce8bcc465a3028eb3cc0ce3bd1005f4bb27710b30587de798d/propcache-0.5.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999", size = 94662, upload-time = "2026-05-08T21:01:22.683Z" },
|
| 1787 |
+
{ url = "https://files.pythonhosted.org/packages/b5/06/c5a52f419b5d8972f8d46a7577476090d8e3263ff589ce40b5ca4968d5be/propcache-0.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e", size = 53928, upload-time = "2026-05-08T21:01:23.986Z" },
|
| 1788 |
+
{ url = "https://files.pythonhosted.org/packages/63/b1/4260d67d6bd85e58a66b72d54ce15d5de789b6f3870cc6bedf8ff9667401/propcache-0.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539", size = 54650, upload-time = "2026-05-08T21:01:25.305Z" },
|
| 1789 |
+
{ url = "https://files.pythonhosted.org/packages/70/06/2f46c318e3307cd7a6a7481def374ce838c0fe20084b39dd54b0879d0e99/propcache-0.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e", size = 59912, upload-time = "2026-05-08T21:01:26.545Z" },
|
| 1790 |
+
{ url = "https://files.pythonhosted.org/packages/4c/29/fe1aebec2ce57ab985a9c382bded1124431f85078113aa222c5d278430d4/propcache-0.5.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979", size = 63300, upload-time = "2026-05-08T21:01:27.937Z" },
|
| 1791 |
+
{ url = "https://files.pythonhosted.org/packages/b4/18/2334b26768b6c82be8c69e83671b767d5ef426aa09b0cba6c2ea47816774/propcache-0.5.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80", size = 64208, upload-time = "2026-05-08T21:01:29.484Z" },
|
| 1792 |
+
{ url = "https://files.pythonhosted.org/packages/2b/76/7f1bfd6afff4c5e38e36a3c6d68eb5f4b7311ea80baf693db78d95b603c4/propcache-0.5.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825", size = 61633, upload-time = "2026-05-08T21:01:31.068Z" },
|
| 1793 |
+
{ url = "https://files.pythonhosted.org/packages/c4/46/b3ff8aba2b4953a3e50de2cf72f1b5748b8eca93b15f3dc2c84339084c09/propcache-0.5.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39", size = 61724, upload-time = "2026-05-08T21:01:32.374Z" },
|
| 1794 |
+
{ url = "https://files.pythonhosted.org/packages/c5/01/814cfcafbcff954f94c01cf30e097ddc88a076b5440fbcf4570753437d40/propcache-0.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4", size = 60069, upload-time = "2026-05-08T21:01:33.67Z" },
|
| 1795 |
+
{ url = "https://files.pythonhosted.org/packages/da/68/5c6f7622d510cc666a300687e06fd060c1a43361c0c9b20d284f06d8096a/propcache-0.5.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5", size = 57099, upload-time = "2026-05-08T21:01:34.915Z" },
|
| 1796 |
+
{ url = "https://files.pythonhosted.org/packages/55/27/9cb0b4c679124085327957d42521c99dba04c88c90c3e55a6f0b633ebccc/propcache-0.5.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702", size = 63391, upload-time = "2026-05-08T21:01:36.231Z" },
|
| 1797 |
+
{ url = "https://files.pythonhosted.org/packages/f0/9d/7258aaa5bdf60fc6f27591eef6fe52768cb0beda7140be477c8b12c9794a/propcache-0.5.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3", size = 61626, upload-time = "2026-05-08T21:01:37.545Z" },
|
| 1798 |
+
{ url = "https://files.pythonhosted.org/packages/8e/0d/41c602003e8a9b16fe1e7eadf62c7bfba9d5474370b24200bf48b315f45f/propcache-0.5.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5", size = 64781, upload-time = "2026-05-08T21:01:38.83Z" },
|
| 1799 |
+
{ url = "https://files.pythonhosted.org/packages/8b/f3/38e66b1856e9bd079deea015bc4a55f7767c0e4db2f7dcf69e7e680ba4ce/propcache-0.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4", size = 62570, upload-time = "2026-05-08T21:01:40.415Z" },
|
| 1800 |
+
{ url = "https://files.pythonhosted.org/packages/95/ca/bbfe9b910ce57dde8bb4876b4520fc02a4e89497c10de26be936758a3aaa/propcache-0.5.2-cp314-cp314-win32.whl", hash = "sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0", size = 39436, upload-time = "2026-05-08T21:01:41.654Z" },
|
| 1801 |
+
{ url = "https://files.pythonhosted.org/packages/61/d2/45c9defbaa1ea297035d9d4cce9e8f80daafbf19319c6007f157c6256ea9/propcache-0.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c", size = 42373, upload-time = "2026-05-08T21:01:43.041Z" },
|
| 1802 |
+
{ url = "https://files.pythonhosted.org/packages/44/68/9ea5103f41d5217d7d6ec24db90018e23aebec070c3f9a6e54d12b841fd8/propcache-0.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0", size = 38554, upload-time = "2026-05-08T21:01:44.336Z" },
|
| 1803 |
+
{ url = "https://files.pythonhosted.org/packages/8a/81/fadf555f42d3b762eea8a53950b0489fdc0aa9da5f8ed9e10ce0a4e01b48/propcache-0.5.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb", size = 99395, upload-time = "2026-05-08T21:01:45.883Z" },
|
| 1804 |
+
{ url = "https://files.pythonhosted.org/packages/f5/c9/c61e134a686949cf7971af3a390148b1156f7be81c73bc0cd12c873e2d48/propcache-0.5.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078", size = 56653, upload-time = "2026-05-08T21:01:47.307Z" },
|
| 1805 |
+
{ url = "https://files.pythonhosted.org/packages/cb/73/daf935ea7048ddd7ec8eec5345b4a40b619d2d178b3c0a0900796bc3c794/propcache-0.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa", size = 56914, upload-time = "2026-05-08T21:01:48.573Z" },
|
| 1806 |
+
{ url = "https://files.pythonhosted.org/packages/79/9f/aba959b435ea18617edd7cf0a7ad0b9c574b8fc7e3d2cd55fb59cb255d33/propcache-0.5.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917", size = 62567, upload-time = "2026-05-08T21:01:49.903Z" },
|
| 1807 |
+
{ url = "https://files.pythonhosted.org/packages/6c/a1/859942de9a791ff42f6141736f5b37749b8f53e65edfa49638c67dd67e6a/propcache-0.5.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe", size = 65542, upload-time = "2026-05-08T21:01:51.204Z" },
|
| 1808 |
+
{ url = "https://files.pythonhosted.org/packages/b5/61/315bc0fd6c0fc7f80a528b8afd209e5fc4a875ea79571b91b8f50f442907/propcache-0.5.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03", size = 66845, upload-time = "2026-05-08T21:01:52.539Z" },
|
| 1809 |
+
{ url = "https://files.pythonhosted.org/packages/47/f7/9f8122e3132e8e354ac41975ef8f1099be7d5a16bc7ae562734e993665c0/propcache-0.5.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335", size = 63985, upload-time = "2026-05-08T21:01:53.847Z" },
|
| 1810 |
+
{ url = "https://files.pythonhosted.org/packages/c8/54/c317819ec157cbf6f35df9df9657a6f82daf34d5faf15948b2f639c2192e/propcache-0.5.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285", size = 63999, upload-time = "2026-05-08T21:01:55.179Z" },
|
| 1811 |
+
{ url = "https://files.pythonhosted.org/packages/5a/56/387e3f7dfce0a9233df41fb888aa1c30222cb4bbbf09537c02dd9bd85fe2/propcache-0.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837", size = 62779, upload-time = "2026-05-08T21:01:57.489Z" },
|
| 1812 |
+
{ url = "https://files.pythonhosted.org/packages/a1/9c/596784cb5824ed61ee960d3f8655a3f0993e107c6e98ab6c818b7fb92ccb/propcache-0.5.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8", size = 59796, upload-time = "2026-05-08T21:01:58.736Z" },
|
| 1813 |
+
{ url = "https://files.pythonhosted.org/packages/c2/3d/1a6cfa1726a48542c1e8784a0761421476a5b68e09b7f36bf95eb954aaba/propcache-0.5.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366", size = 66023, upload-time = "2026-05-08T21:02:00.228Z" },
|
| 1814 |
+
{ url = "https://files.pythonhosted.org/packages/e4/0e/05fd6990369477076e4e280bcb970de760fddf0161a46e988bc95f7940ec/propcache-0.5.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56", size = 64448, upload-time = "2026-05-08T21:02:01.888Z" },
|
| 1815 |
+
{ url = "https://files.pythonhosted.org/packages/cd/86/5f8da315a4309c62c10c0b2516b17492d5d3bbe1bb862b96604db67e2a37/propcache-0.5.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d", size = 67329, upload-time = "2026-05-08T21:02:03.484Z" },
|
| 1816 |
+
{ url = "https://files.pythonhosted.org/packages/da/d3/3368efe79ab21f0cdf86ef49895811c9cc933131d4cde1f28a624e22e712/propcache-0.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2", size = 65172, upload-time = "2026-05-08T21:02:04.745Z" },
|
| 1817 |
+
{ url = "https://files.pythonhosted.org/packages/d5/07/127e8b0bacfb325396196f9d976a22453049b89b9b2b08477cc3145faa44/propcache-0.5.2-cp314-cp314t-win32.whl", hash = "sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821", size = 43813, upload-time = "2026-05-08T21:02:06.025Z" },
|
| 1818 |
+
{ url = "https://files.pythonhosted.org/packages/88/fb/46dad6c0ae49ed230ab1b16c890c2b6314e2403e6c412976f4a72d64a527/propcache-0.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370", size = 47764, upload-time = "2026-05-08T21:02:07.353Z" },
|
| 1819 |
+
{ url = "https://files.pythonhosted.org/packages/e7/c4/a47d0a63aa309d10d59ede6e9d4cff03a344a79d1f0f4cd0cd74997b53e0/propcache-0.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6", size = 41140, upload-time = "2026-05-08T21:02:09.065Z" },
|
| 1820 |
+
{ url = "https://files.pythonhosted.org/packages/3a/ed/1cdcab6ba3d6ab7feca11fc14f0eeea80755bb53ef4e892079f31b10a25f/propcache-0.5.2-py3-none-any.whl", hash = "sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe", size = 14036, upload-time = "2026-05-08T21:02:10.673Z" },
|
| 1821 |
]
|
| 1822 |
|
| 1823 |
[[package]]
|