Spaces:
Sleeping
Sleeping
Jac-Zac commited on
Commit ·
e75684b
1
Parent(s): b0d9629
Updated to new versions
Browse files- .gitignore +2 -0
- README.md +1 -1
- pyproject.toml +3 -3
- tabs/chat.py +2 -1
- tabs/compare_chat.py +10 -2
- tabs/extract.py +58 -30
- utils/chat_export.py +15 -1
- utils/datasets.py +31 -1
- utils/helpers.py +6 -1
- uv.lock +148 -125
.gitignore
CHANGED
|
@@ -61,4 +61,6 @@ artifacts/
|
|
| 61 |
# Tmp to avoid pushing things I'm testing
|
| 62 |
__marimo__/
|
| 63 |
AGENTS.md
|
|
|
|
|
|
|
| 64 |
# notebook_marimo.py
|
|
|
|
| 61 |
# Tmp to avoid pushing things I'm testing
|
| 62 |
__marimo__/
|
| 63 |
AGENTS.md
|
| 64 |
+
CLAUDE.md
|
| 65 |
+
todo/
|
| 66 |
# notebook_marimo.py
|
README.md
CHANGED
|
@@ -21,7 +21,7 @@ A web app built on top of [persona-vectors](../persona-vectors) that provides th
|
|
| 21 |
|
| 22 |
- **Chat** — interactive conversations with a model using persona-based system prompts (templated or biography)
|
| 23 |
- **Compare** — load saved activations and explore layer-wise cosine similarity, PCA, and UMAP projections
|
| 24 |
-
- **Extract** — run activation extraction from HuggingFace or a local JSONL dataset directly from the browser
|
| 25 |
|
| 26 |
## Repository Layout
|
| 27 |
|
|
|
|
| 21 |
|
| 22 |
- **Chat** — interactive conversations with a model using persona-based system prompts (templated or biography)
|
| 23 |
- **Compare** — load saved activations and explore layer-wise cosine similarity, PCA, and UMAP projections
|
| 24 |
+
- **Extract** — run activation extraction from HuggingFace persona datasets or a local JSONL dataset directly from the browser
|
| 25 |
|
| 26 |
## Repository Layout
|
| 27 |
|
pyproject.toml
CHANGED
|
@@ -5,8 +5,8 @@ description = "Streamlit UI for persona-vectors"
|
|
| 5 |
readme = "README.md"
|
| 6 |
requires-python = ">=3.12"
|
| 7 |
dependencies = [
|
| 8 |
-
"persona-vectors>=0.
|
| 9 |
-
"persona-data>=0.
|
| 10 |
"streamlit>=1.44.0",
|
| 11 |
"plotly>=6.6.0",
|
| 12 |
"python-dotenv>=1.2.2",
|
|
@@ -16,7 +16,7 @@ dependencies = [
|
|
| 16 |
# Local development:
|
| 17 |
# [tool.uv.sources]
|
| 18 |
# persona-vectors = { path = "../persona-vectors", editable = true }
|
| 19 |
-
# persona-
|
| 20 |
|
| 21 |
# [build-system]
|
| 22 |
# requires = ["uv_build>=0.11.3,<0.12"]
|
|
|
|
| 5 |
readme = "README.md"
|
| 6 |
requires-python = ">=3.12"
|
| 7 |
dependencies = [
|
| 8 |
+
"persona-vectors>=0.3.0",
|
| 9 |
+
"persona-data>=0.2.0",
|
| 10 |
"streamlit>=1.44.0",
|
| 11 |
"plotly>=6.6.0",
|
| 12 |
"python-dotenv>=1.2.2",
|
|
|
|
| 16 |
# Local development:
|
| 17 |
# [tool.uv.sources]
|
| 18 |
# persona-vectors = { path = "../persona-vectors", editable = true }
|
| 19 |
+
# persona-data = { path = "../persona-data", editable = true }
|
| 20 |
|
| 21 |
# [build-system]
|
| 22 |
# requires = ["uv_build>=0.11.3,<0.12"]
|
tabs/chat.py
CHANGED
|
@@ -133,6 +133,7 @@ def _render_editable_message(
|
|
| 133 |
msg_col, edit_col = st.columns(
|
| 134 |
list(column_ratio), gap="xsmall", vertical_alignment="center"
|
| 135 |
)
|
|
|
|
| 136 |
with msg_col:
|
| 137 |
with st.chat_message(role):
|
| 138 |
if tc is not None:
|
|
@@ -261,7 +262,7 @@ def _render_generation_settings(context_key: str, remote: bool) -> tuple[dict, b
|
|
| 261 |
"""Render the Advanced generation settings expander.
|
| 262 |
|
| 263 |
Returns ``(gen_kwargs, advanced_generation)`` where ``advanced_generation``
|
| 264 |
-
is True when any setting differs from its default.
|
| 265 |
"""
|
| 266 |
with st.expander("Advanced", expanded=False):
|
| 267 |
config_col1, config_col2 = st.columns([2, 1])
|
|
|
|
| 133 |
msg_col, edit_col = st.columns(
|
| 134 |
list(column_ratio), gap="xsmall", vertical_alignment="center"
|
| 135 |
)
|
| 136 |
+
|
| 137 |
with msg_col:
|
| 138 |
with st.chat_message(role):
|
| 139 |
if tc is not None:
|
|
|
|
| 262 |
"""Render the Advanced generation settings expander.
|
| 263 |
|
| 264 |
Returns ``(gen_kwargs, advanced_generation)`` where ``advanced_generation``
|
| 265 |
+
is True when any generation setting differs from its default.
|
| 266 |
"""
|
| 267 |
with st.expander("Advanced", expanded=False):
|
| 268 |
config_col1, config_col2 = st.columns([2, 1])
|
tabs/compare_chat.py
CHANGED
|
@@ -64,6 +64,14 @@ def render_compare_mode(
|
|
| 64 |
advanced_generation: bool,
|
| 65 |
) -> None:
|
| 66 |
"""Render the full side-by-side comparison UI."""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
contrast_key = widget_key(context_key, "token_contrast")
|
| 68 |
contrast_enabled = st.toggle(
|
| 69 |
"Token contrast",
|
|
@@ -176,7 +184,7 @@ def render_compare_mode(
|
|
| 176 |
if st.session_state.pop(p_pending, False)
|
| 177 |
]
|
| 178 |
if regen_panels:
|
| 179 |
-
model =
|
| 180 |
|
| 181 |
results: list[ChatReply | Exception] = []
|
| 182 |
with st.spinner("Regenerating..."):
|
|
@@ -219,7 +227,7 @@ def render_compare_mode(
|
|
| 219 |
if msg.get("_needs_contrast") and msg.get("role") == "assistant"
|
| 220 |
]
|
| 221 |
if pending_edits:
|
| 222 |
-
model =
|
| 223 |
label_a = persona_label(left_persona)
|
| 224 |
label_b = persona_label(right_persona)
|
| 225 |
with st.spinner("Recomputing token contrast…"):
|
|
|
|
| 64 |
advanced_generation: bool,
|
| 65 |
) -> None:
|
| 66 |
"""Render the full side-by-side comparison UI."""
|
| 67 |
+
model: StandardizedTransformer | None = None
|
| 68 |
+
|
| 69 |
+
def _get_model() -> StandardizedTransformer:
|
| 70 |
+
nonlocal model
|
| 71 |
+
if model is None:
|
| 72 |
+
model = cached_model(model_name=model_name, remote=remote)
|
| 73 |
+
return model
|
| 74 |
+
|
| 75 |
contrast_key = widget_key(context_key, "token_contrast")
|
| 76 |
contrast_enabled = st.toggle(
|
| 77 |
"Token contrast",
|
|
|
|
| 184 |
if st.session_state.pop(p_pending, False)
|
| 185 |
]
|
| 186 |
if regen_panels:
|
| 187 |
+
model = _get_model()
|
| 188 |
|
| 189 |
results: list[ChatReply | Exception] = []
|
| 190 |
with st.spinner("Regenerating..."):
|
|
|
|
| 227 |
if msg.get("_needs_contrast") and msg.get("role") == "assistant"
|
| 228 |
]
|
| 229 |
if pending_edits:
|
| 230 |
+
model = _get_model()
|
| 231 |
label_a = persona_label(left_persona)
|
| 232 |
label_b = persona_label(right_persona)
|
| 233 |
with st.spinner("Recomputing token contrast…"):
|
tabs/extract.py
CHANGED
|
@@ -41,53 +41,74 @@ def _extract_widget_key(
|
|
| 41 |
_TOKEN_LEGEND = (
|
| 42 |
'<div style="display:flex;gap:12px;flex-wrap:wrap;font-size:0.8em;margin-bottom:8px">'
|
| 43 |
'<span style="background:#86efac;color:black;padding:1px 6px;border-radius:3px">masked</span>'
|
|
|
|
| 44 |
'<span style="color:#22d3ee;padding:1px 6px">response</span>'
|
| 45 |
'<span style="color:#d946ef;font-weight:bold;padding:1px 6px">special</span>'
|
| 46 |
-
'<span style="color:#9ca3af;padding:1px 6px">
|
| 47 |
"</div>"
|
| 48 |
)
|
| 49 |
|
| 50 |
_MAX_PREVIEW_SAMPLES = 3
|
| 51 |
|
| 52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
def _render_sample_tokens_html(
|
| 54 |
p: PreparedInput, tokenizer, *, max_tokens: int = 200
|
| 55 |
) -> str:
|
| 56 |
-
"""Build an HTML token sequence
|
| 57 |
special_ids = set(tokenizer.all_special_ids)
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
if
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
|
| 70 |
spans: list[str] = []
|
| 71 |
for idx in indices:
|
| 72 |
if idx is None:
|
| 73 |
spans.append('<span style="color:#9ca3af"> … </span>')
|
| 74 |
continue
|
| 75 |
-
|
|
|
|
|
|
|
|
|
|
| 76 |
escaped = html.escape(raw)
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
style = "color:#d946ef;font-weight:bold"
|
| 81 |
-
elif idx >= p.answer_start:
|
| 82 |
-
style = "color:#22d3ee"
|
| 83 |
-
else:
|
| 84 |
-
style = "color:#9ca3af"
|
| 85 |
-
spans.append(f'<span style="{style}">{escaped}</span>')
|
| 86 |
|
| 87 |
return (
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
f"{''.join(spans)}</pre>"
|
| 92 |
)
|
| 93 |
|
|
@@ -148,6 +169,10 @@ def render_extract_tab(remote: bool, model_name: str, dataset_source: str) -> No
|
|
| 148 |
)
|
| 149 |
return
|
| 150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 151 |
personas = list(dataset)
|
| 152 |
if not personas:
|
| 153 |
st.warning("No personas found in the selected dataset.")
|
|
@@ -218,7 +243,7 @@ def render_extract_tab(remote: bool, model_name: str, dataset_source: str) -> No
|
|
| 218 |
|
| 219 |
st.caption("Extraction settings")
|
| 220 |
last_strategy = st.session_state.get(
|
| 221 |
-
_LAST_MASK_STRATEGY_KEY, MaskStrategy.
|
| 222 |
)
|
| 223 |
strategy_options = list(MaskStrategy)
|
| 224 |
strategy_index = next(
|
|
@@ -284,9 +309,12 @@ def render_extract_tab(remote: bool, model_name: str, dataset_source: str) -> No
|
|
| 284 |
st.markdown(_TOKEN_LEGEND, unsafe_allow_html=True)
|
| 285 |
for persona, qa_pairs in runs:
|
| 286 |
for variant in selected_variants:
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
|
|
|
|
|
|
|
|
|
| 290 |
prepared = prepare_inputs(
|
| 291 |
tokenizer=model.tokenizer,
|
| 292 |
system_prompt=system_prompt,
|
|
|
|
| 41 |
_TOKEN_LEGEND = (
|
| 42 |
'<div style="display:flex;gap:12px;flex-wrap:wrap;font-size:0.8em;margin-bottom:8px">'
|
| 43 |
'<span style="background:#86efac;color:black;padding:1px 6px;border-radius:3px">masked</span>'
|
| 44 |
+
'<span style="color:#fde047;padding:1px 6px">question</span>'
|
| 45 |
'<span style="color:#22d3ee;padding:1px 6px">response</span>'
|
| 46 |
'<span style="color:#d946ef;font-weight:bold;padding:1px 6px">special</span>'
|
| 47 |
+
'<span style="color:#9ca3af;padding:1px 6px">template</span>'
|
| 48 |
"</div>"
|
| 49 |
)
|
| 50 |
|
| 51 |
_MAX_PREVIEW_SAMPLES = 3
|
| 52 |
|
| 53 |
|
| 54 |
+
def _token_style_for_index(
|
| 55 |
+
p: PreparedInput, token_idx: int, special_ids: set[int]
|
| 56 |
+
) -> str:
|
| 57 |
+
if p.spans.response.token_start <= token_idx < p.spans.response.token_end:
|
| 58 |
+
style = "color:#22d3ee"
|
| 59 |
+
elif p.spans.question.token_start <= token_idx < p.spans.question.token_end:
|
| 60 |
+
style = "color:#fde047"
|
| 61 |
+
elif p.spans.template.token_start <= token_idx < p.spans.template.token_end:
|
| 62 |
+
style = "color:#9ca3af"
|
| 63 |
+
else:
|
| 64 |
+
style = "color:#9ca3af"
|
| 65 |
+
|
| 66 |
+
if int(p.input_ids[token_idx]) in special_ids:
|
| 67 |
+
style = "color:#d946ef;font-weight:bold"
|
| 68 |
+
if p.token_mask[token_idx]:
|
| 69 |
+
style = f"{style};background:#86efac;border-radius:2px;padding:0 1px"
|
| 70 |
+
return style
|
| 71 |
+
|
| 72 |
+
|
| 73 |
def _render_sample_tokens_html(
|
| 74 |
p: PreparedInput, tokenizer, *, max_tokens: int = 200
|
| 75 |
) -> str:
|
| 76 |
+
"""Build an HTML token sequence using the persona-vectors preview layout."""
|
| 77 |
special_ids = set(tokenizer.all_special_ids)
|
| 78 |
+
seq_len = int(p.input_ids.shape[0])
|
| 79 |
+
head = max_tokens if max_tokens > 0 else seq_len
|
| 80 |
+
tail = 8 if max_tokens <= 0 else max(8, max_tokens // 4)
|
| 81 |
+
answer_extra = 8 if max_tokens <= 0 else max(8, max_tokens // 4)
|
| 82 |
+
|
| 83 |
+
prefix_end = min(p.spans.template.token_start + head, seq_len)
|
| 84 |
+
tail_start = min(max(prefix_end, p.spans.template.token_end - tail), seq_len)
|
| 85 |
+
answer_end = min(seq_len, p.spans.response.token_end + answer_extra)
|
| 86 |
+
|
| 87 |
+
indices: list[int | None] = list(range(0, prefix_end))
|
| 88 |
+
if prefix_end < tail_start:
|
| 89 |
+
indices.append(None)
|
| 90 |
+
indices.extend(range(tail_start, answer_end))
|
| 91 |
+
if answer_end < seq_len:
|
| 92 |
+
indices.append(None)
|
| 93 |
|
| 94 |
spans: list[str] = []
|
| 95 |
for idx in indices:
|
| 96 |
if idx is None:
|
| 97 |
spans.append('<span style="color:#9ca3af"> … </span>')
|
| 98 |
continue
|
| 99 |
+
char_start, char_end = p.offset_mapping[idx]
|
| 100 |
+
raw = p.prompt_text[char_start:char_end]
|
| 101 |
+
if not raw:
|
| 102 |
+
raw = tokenizer.convert_ids_to_tokens([int(p.input_ids[idx])])[0]
|
| 103 |
escaped = html.escape(raw)
|
| 104 |
+
spans.append(
|
| 105 |
+
f'<span style="{_token_style_for_index(p, idx, special_ids)}">{escaped}</span>'
|
| 106 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
|
| 108 |
return (
|
| 109 |
+
'<pre style="white-space:pre-wrap;font-size:0.82em;line-height:1.5;'
|
| 110 |
+
"background:#0e1117;padding:8px 10px;border-radius:6px;"
|
| 111 |
+
'border:1px solid #333;margin:0">'
|
| 112 |
f"{''.join(spans)}</pre>"
|
| 113 |
)
|
| 114 |
|
|
|
|
| 169 |
)
|
| 170 |
return
|
| 171 |
|
| 172 |
+
if not getattr(dataset, "supports_qa", True):
|
| 173 |
+
st.info("This dataset is persona-only for now. Use Chat to browse personas.")
|
| 174 |
+
return
|
| 175 |
+
|
| 176 |
personas = list(dataset)
|
| 177 |
if not personas:
|
| 178 |
st.warning("No personas found in the selected dataset.")
|
|
|
|
| 243 |
|
| 244 |
st.caption("Extraction settings")
|
| 245 |
last_strategy = st.session_state.get(
|
| 246 |
+
_LAST_MASK_STRATEGY_KEY, MaskStrategy.ANSWER_MEAN.value
|
| 247 |
)
|
| 248 |
strategy_options = list(MaskStrategy)
|
| 249 |
strategy_index = next(
|
|
|
|
| 309 |
st.markdown(_TOKEN_LEGEND, unsafe_allow_html=True)
|
| 310 |
for persona, qa_pairs in runs:
|
| 311 |
for variant in selected_variants:
|
| 312 |
+
if variant == "baseline":
|
| 313 |
+
system_prompt = format_roleplay_prompt()
|
| 314 |
+
else:
|
| 315 |
+
system_prompt = format_roleplay_prompt(
|
| 316 |
+
getattr(persona, f"{variant}_view")
|
| 317 |
+
)
|
| 318 |
prepared = prepare_inputs(
|
| 319 |
tokenizer=model.tokenizer,
|
| 320 |
system_prompt=system_prompt,
|
utils/chat_export.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
| 1 |
import json
|
|
|
|
| 2 |
from datetime import datetime, timezone
|
| 3 |
from pathlib import Path
|
| 4 |
|
|
@@ -7,6 +8,19 @@ from persona_data.environment import get_artifacts_dir
|
|
| 7 |
from utils.helpers import slugify
|
| 8 |
|
| 9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
def save_chat_export(
|
| 11 |
*,
|
| 12 |
model_name: str,
|
|
@@ -49,7 +63,7 @@ def save_chat_export(
|
|
| 49 |
"messages": (
|
| 50 |
[{"role": "system", "content": system_prompt}] if system_prompt else []
|
| 51 |
)
|
| 52 |
-
+ messages,
|
| 53 |
}
|
| 54 |
|
| 55 |
export_dir = (
|
|
|
|
| 1 |
import json
|
| 2 |
+
from dataclasses import asdict, is_dataclass
|
| 3 |
from datetime import datetime, timezone
|
| 4 |
from pathlib import Path
|
| 5 |
|
|
|
|
| 8 |
from utils.helpers import slugify
|
| 9 |
|
| 10 |
|
| 11 |
+
def _serialise_message(message: dict[str, object]) -> dict[str, object]:
|
| 12 |
+
payload: dict[str, object] = {
|
| 13 |
+
"role": message["role"],
|
| 14 |
+
"content": message["content"],
|
| 15 |
+
}
|
| 16 |
+
for key in ("_contrast",):
|
| 17 |
+
value = message.get(key)
|
| 18 |
+
if value is None:
|
| 19 |
+
continue
|
| 20 |
+
payload[key] = asdict(value) if is_dataclass(value) else value
|
| 21 |
+
return payload
|
| 22 |
+
|
| 23 |
+
|
| 24 |
def save_chat_export(
|
| 25 |
*,
|
| 26 |
model_name: str,
|
|
|
|
| 63 |
"messages": (
|
| 64 |
[{"role": "system", "content": system_prompt}] if system_prompt else []
|
| 65 |
)
|
| 66 |
+
+ [_serialise_message(message) for message in messages],
|
| 67 |
}
|
| 68 |
|
| 69 |
export_dir = (
|
utils/datasets.py
CHANGED
|
@@ -6,6 +6,10 @@ from tempfile import mkdtemp
|
|
| 6 |
from typing import Any
|
| 7 |
|
| 8 |
import streamlit as st
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
from persona_data.synth_persona import PersonaDataset as LocalPersonaDataset
|
| 10 |
from persona_data.synth_persona import SynthPersonaDataset
|
| 11 |
|
|
@@ -19,6 +23,20 @@ def cached_hf_dataset() -> SynthPersonaDataset:
|
|
| 19 |
return SynthPersonaDataset()
|
| 20 |
|
| 21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
def _upload_cache_dir() -> Path:
|
| 23 |
cache_dir = st.session_state.get("_upload_cache_dir")
|
| 24 |
if cache_dir is None:
|
|
@@ -46,12 +64,24 @@ def load_dataset(
|
|
| 46 |
dataset_source: str,
|
| 47 |
personas_file: Any = None,
|
| 48 |
qa_file: Any = None,
|
| 49 |
-
) -> tuple[
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
"""Load the selected dataset source for the UI."""
|
| 51 |
|
| 52 |
if dataset_source == DATASET_SOURCES[0]:
|
| 53 |
return cached_hf_dataset(), "SynthPersona"
|
| 54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
if personas_file is None or qa_file is None:
|
| 56 |
raise ValueError("Upload both personas.jsonl and qa.jsonl files")
|
| 57 |
|
|
|
|
| 6 |
from typing import Any
|
| 7 |
|
| 8 |
import streamlit as st
|
| 9 |
+
from persona_data.nemotron_personas import (
|
| 10 |
+
NemotronPersonasFranceDataset,
|
| 11 |
+
NemotronPersonasUSADataset,
|
| 12 |
+
)
|
| 13 |
from persona_data.synth_persona import PersonaDataset as LocalPersonaDataset
|
| 14 |
from persona_data.synth_persona import SynthPersonaDataset
|
| 15 |
|
|
|
|
| 23 |
return SynthPersonaDataset()
|
| 24 |
|
| 25 |
|
| 26 |
+
@st.cache_resource(show_spinner=False)
|
| 27 |
+
def cached_nemotron_dataset() -> NemotronPersonasFranceDataset:
|
| 28 |
+
"""Load the Nemotron France HuggingFace dataset once."""
|
| 29 |
+
|
| 30 |
+
return NemotronPersonasFranceDataset()
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
@st.cache_resource(show_spinner=False)
|
| 34 |
+
def cached_nemotron_usa_dataset() -> NemotronPersonasUSADataset:
|
| 35 |
+
"""Load the Nemotron USA HuggingFace dataset once."""
|
| 36 |
+
|
| 37 |
+
return NemotronPersonasUSADataset()
|
| 38 |
+
|
| 39 |
+
|
| 40 |
def _upload_cache_dir() -> Path:
|
| 41 |
cache_dir = st.session_state.get("_upload_cache_dir")
|
| 42 |
if cache_dir is None:
|
|
|
|
| 64 |
dataset_source: str,
|
| 65 |
personas_file: Any = None,
|
| 66 |
qa_file: Any = None,
|
| 67 |
+
) -> tuple[
|
| 68 |
+
SynthPersonaDataset
|
| 69 |
+
| NemotronPersonasFranceDataset
|
| 70 |
+
| NemotronPersonasUSADataset
|
| 71 |
+
| LocalPersonaDataset,
|
| 72 |
+
str,
|
| 73 |
+
]:
|
| 74 |
"""Load the selected dataset source for the UI."""
|
| 75 |
|
| 76 |
if dataset_source == DATASET_SOURCES[0]:
|
| 77 |
return cached_hf_dataset(), "SynthPersona"
|
| 78 |
|
| 79 |
+
if dataset_source == DATASET_SOURCES[1]:
|
| 80 |
+
return cached_nemotron_dataset(), "Nemotron France"
|
| 81 |
+
|
| 82 |
+
if dataset_source == DATASET_SOURCES[2]:
|
| 83 |
+
return cached_nemotron_usa_dataset(), "Nemotron USA"
|
| 84 |
+
|
| 85 |
if personas_file is None or qa_file is None:
|
| 86 |
raise ValueError("Upload both personas.jsonl and qa.jsonl files")
|
| 87 |
|
utils/helpers.py
CHANGED
|
@@ -16,7 +16,12 @@ MODE_LABELS = list(VARIANT_LABELS.values())
|
|
| 16 |
# Reverse lookup: label -> key
|
| 17 |
MODE_LABEL_TO_KEY = {v: k for k, v in VARIANT_LABELS.items()}
|
| 18 |
|
| 19 |
-
DATASET_SOURCES = [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
ANALYSIS_MODES = ["Cosine similarity", "PCA", "UMAP"]
|
| 21 |
|
| 22 |
ANALYSIS_HELP_TEXT = {
|
|
|
|
| 16 |
# Reverse lookup: label -> key
|
| 17 |
MODE_LABEL_TO_KEY = {v: k for k, v in VARIANT_LABELS.items()}
|
| 18 |
|
| 19 |
+
DATASET_SOURCES = [
|
| 20 |
+
"HuggingFace: synth-persona",
|
| 21 |
+
"HuggingFace: nemotron-france",
|
| 22 |
+
"HuggingFace: nemotron-usa",
|
| 23 |
+
"Local JSONL upload",
|
| 24 |
+
]
|
| 25 |
ANALYSIS_MODES = ["Cosine similarity", "PCA", "UMAP"]
|
| 26 |
|
| 27 |
ANALYSIS_HELP_TEXT = {
|
uv.lock
CHANGED
|
@@ -274,10 +274,10 @@ wheels = [
|
|
| 274 |
|
| 275 |
[[package]]
|
| 276 |
name = "cuda-pathfinder"
|
| 277 |
-
version = "1.5.
|
| 278 |
source = { registry = "https://pypi.org/simple" }
|
| 279 |
wheels = [
|
| 280 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 281 |
]
|
| 282 |
|
| 283 |
[[package]]
|
|
@@ -343,11 +343,11 @@ wheels = [
|
|
| 343 |
|
| 344 |
[[package]]
|
| 345 |
name = "filelock"
|
| 346 |
-
version = "3.
|
| 347 |
source = { registry = "https://pypi.org/simple" }
|
| 348 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 349 |
wheels = [
|
| 350 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 351 |
]
|
| 352 |
|
| 353 |
[[package]]
|
|
@@ -454,7 +454,7 @@ wheels = [
|
|
| 454 |
|
| 455 |
[[package]]
|
| 456 |
name = "huggingface-hub"
|
| 457 |
-
version = "1.
|
| 458 |
source = { registry = "https://pypi.org/simple" }
|
| 459 |
dependencies = [
|
| 460 |
{ name = "filelock" },
|
|
@@ -467,9 +467,9 @@ dependencies = [
|
|
| 467 |
{ name = "typer" },
|
| 468 |
{ name = "typing-extensions" },
|
| 469 |
]
|
| 470 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 471 |
wheels = [
|
| 472 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 473 |
]
|
| 474 |
|
| 475 |
[[package]]
|
|
@@ -739,11 +739,11 @@ wheels = [
|
|
| 739 |
|
| 740 |
[[package]]
|
| 741 |
name = "narwhals"
|
| 742 |
-
version = "2.
|
| 743 |
source = { registry = "https://pypi.org/simple" }
|
| 744 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 745 |
wheels = [
|
| 746 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 747 |
]
|
| 748 |
|
| 749 |
[[package]]
|
|
@@ -1099,11 +1099,11 @@ wheels = [
|
|
| 1099 |
|
| 1100 |
[[package]]
|
| 1101 |
name = "packaging"
|
| 1102 |
-
version = "26.
|
| 1103 |
source = { registry = "https://pypi.org/simple" }
|
| 1104 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1105 |
wheels = [
|
| 1106 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1107 |
]
|
| 1108 |
|
| 1109 |
[[package]]
|
|
@@ -1169,17 +1169,18 @@ wheels = [
|
|
| 1169 |
|
| 1170 |
[[package]]
|
| 1171 |
name = "persona-data"
|
| 1172 |
-
version = "0.
|
| 1173 |
source = { registry = "https://pypi.org/simple" }
|
| 1174 |
dependencies = [
|
| 1175 |
{ name = "huggingface-hub" },
|
| 1176 |
{ name = "numpy" },
|
|
|
|
| 1177 |
{ name = "python-dotenv" },
|
| 1178 |
{ name = "torch" },
|
| 1179 |
]
|
| 1180 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1181 |
wheels = [
|
| 1182 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1183 |
]
|
| 1184 |
|
| 1185 |
[[package]]
|
|
@@ -1197,8 +1198,8 @@ dependencies = [
|
|
| 1197 |
|
| 1198 |
[package.metadata]
|
| 1199 |
requires-dist = [
|
| 1200 |
-
{ name = "persona-data", specifier = ">=0.
|
| 1201 |
-
{ name = "persona-vectors", specifier = ">=0.
|
| 1202 |
{ name = "plotly", specifier = ">=6.6.0" },
|
| 1203 |
{ name = "python-dotenv", specifier = ">=1.2.2" },
|
| 1204 |
{ name = "streamlit", specifier = ">=1.44.0" },
|
|
@@ -1207,7 +1208,7 @@ requires-dist = [
|
|
| 1207 |
|
| 1208 |
[[package]]
|
| 1209 |
name = "persona-vectors"
|
| 1210 |
-
version = "0.
|
| 1211 |
source = { registry = "https://pypi.org/simple" }
|
| 1212 |
dependencies = [
|
| 1213 |
{ name = "kaleido" },
|
|
@@ -1224,9 +1225,9 @@ dependencies = [
|
|
| 1224 |
{ name = "transformers" },
|
| 1225 |
{ name = "umap-learn" },
|
| 1226 |
]
|
| 1227 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1228 |
wheels = [
|
| 1229 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1230 |
]
|
| 1231 |
|
| 1232 |
[[package]]
|
|
@@ -1450,7 +1451,7 @@ wheels = [
|
|
| 1450 |
|
| 1451 |
[[package]]
|
| 1452 |
name = "pydantic"
|
| 1453 |
-
version = "2.
|
| 1454 |
source = { registry = "https://pypi.org/simple" }
|
| 1455 |
dependencies = [
|
| 1456 |
{ name = "annotated-types" },
|
|
@@ -1458,93 +1459,97 @@ dependencies = [
|
|
| 1458 |
{ name = "typing-extensions" },
|
| 1459 |
{ name = "typing-inspection" },
|
| 1460 |
]
|
| 1461 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1462 |
wheels = [
|
| 1463 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1464 |
]
|
| 1465 |
|
| 1466 |
[[package]]
|
| 1467 |
name = "pydantic-core"
|
| 1468 |
-
version = "2.
|
| 1469 |
source = { registry = "https://pypi.org/simple" }
|
| 1470 |
dependencies = [
|
| 1471 |
{ name = "typing-extensions" },
|
| 1472 |
]
|
| 1473 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1474 |
-
wheels = [
|
| 1475 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1476 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1477 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1478 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1479 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1480 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1481 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1482 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1483 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1484 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1485 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1486 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1487 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1488 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1489 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1490 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1491 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1492 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1493 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1494 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1495 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1496 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1497 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1498 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1499 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1500 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1501 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1502 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1503 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1504 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1505 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1506 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1507 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1508 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1509 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1510 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1511 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1512 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1513 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1514 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1515 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1516 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1517 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1518 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1519 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1520 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1521 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1522 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1523 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1524 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1525 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1526 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1527 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1528 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1529 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1530 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1531 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1532 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1533 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1534 |
-
{ url = "https://files.pythonhosted.org/packages/
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1535 |
]
|
| 1536 |
|
| 1537 |
[[package]]
|
| 1538 |
name = "pydeck"
|
| 1539 |
-
version = "0.9.
|
| 1540 |
source = { registry = "https://pypi.org/simple" }
|
| 1541 |
dependencies = [
|
| 1542 |
{ name = "jinja2" },
|
| 1543 |
{ name = "numpy" },
|
| 1544 |
]
|
| 1545 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 1546 |
wheels = [
|
| 1547 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 1548 |
]
|
| 1549 |
|
| 1550 |
[[package]]
|
|
@@ -2068,37 +2073,55 @@ wheels = [
|
|
| 2068 |
|
| 2069 |
[[package]]
|
| 2070 |
name = "simplejson"
|
| 2071 |
-
version = "
|
| 2072 |
-
source = { registry = "https://pypi.org/simple" }
|
| 2073 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 2074 |
-
wheels = [
|
| 2075 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2076 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2077 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2078 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2079 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2080 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2081 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2082 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2083 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2084 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2085 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2086 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2087 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2088 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2089 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2090 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2091 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2092 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2093 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2094 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2095 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2096 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2097 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2098 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2099 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2100 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2101 |
-
{ url = "https://files.pythonhosted.org/packages/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2102 |
]
|
| 2103 |
|
| 2104 |
[[package]]
|
|
@@ -2342,7 +2365,7 @@ wheels = [
|
|
| 2342 |
|
| 2343 |
[[package]]
|
| 2344 |
name = "transformers"
|
| 2345 |
-
version = "5.5.
|
| 2346 |
source = { registry = "https://pypi.org/simple" }
|
| 2347 |
dependencies = [
|
| 2348 |
{ name = "huggingface-hub" },
|
|
@@ -2355,9 +2378,9 @@ dependencies = [
|
|
| 2355 |
{ name = "tqdm" },
|
| 2356 |
{ name = "typer" },
|
| 2357 |
]
|
| 2358 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 2359 |
wheels = [
|
| 2360 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 2361 |
]
|
| 2362 |
|
| 2363 |
[[package]]
|
|
|
|
| 274 |
|
| 275 |
[[package]]
|
| 276 |
name = "cuda-pathfinder"
|
| 277 |
+
version = "1.5.3"
|
| 278 |
source = { registry = "https://pypi.org/simple" }
|
| 279 |
wheels = [
|
| 280 |
+
{ url = "https://files.pythonhosted.org/packages/d3/d6/ac63065d33dd700fee7ebd7d287332401b54e31b9346e142f871e1f0b116/cuda_pathfinder-1.5.3-py3-none-any.whl", hash = "sha256:dff021123aedbb4117cc7ec81717bbfe198fb4e8b5f1ee57e0e084fec5c8577d", size = 49991, upload-time = "2026-04-14T20:09:27.037Z" },
|
| 281 |
]
|
| 282 |
|
| 283 |
[[package]]
|
|
|
|
| 343 |
|
| 344 |
[[package]]
|
| 345 |
name = "filelock"
|
| 346 |
+
version = "3.29.0"
|
| 347 |
source = { registry = "https://pypi.org/simple" }
|
| 348 |
+
sdist = { url = "https://files.pythonhosted.org/packages/b5/fe/997687a931ab51049acce6fa1f23e8f01216374ea81374ddee763c493db5/filelock-3.29.0.tar.gz", hash = "sha256:69974355e960702e789734cb4871f884ea6fe50bd8404051a3530bc07809cf90", size = 57571, upload-time = "2026-04-19T15:39:10.068Z" }
|
| 349 |
wheels = [
|
| 350 |
+
{ url = "https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl", hash = "sha256:96f5f6344709aa1572bbf631c640e4ebeeb519e08da902c39a001882f30ac258", size = 39812, upload-time = "2026-04-19T15:39:08.752Z" },
|
| 351 |
]
|
| 352 |
|
| 353 |
[[package]]
|
|
|
|
| 454 |
|
| 455 |
[[package]]
|
| 456 |
name = "huggingface-hub"
|
| 457 |
+
version = "1.11.0"
|
| 458 |
source = { registry = "https://pypi.org/simple" }
|
| 459 |
dependencies = [
|
| 460 |
{ name = "filelock" },
|
|
|
|
| 467 |
{ name = "typer" },
|
| 468 |
{ name = "typing-extensions" },
|
| 469 |
]
|
| 470 |
+
sdist = { url = "https://files.pythonhosted.org/packages/dc/89/e7aa12d8a6b9259bed10671abb25ae6fa437c0f88a86ecbf59617bae7759/huggingface_hub-1.11.0.tar.gz", hash = "sha256:15fb3713c7f9cdff7b808a94fd91664f661ab142796bb48c9cd9493e8d166278", size = 761749, upload-time = "2026-04-16T13:07:39.73Z" }
|
| 471 |
wheels = [
|
| 472 |
+
{ url = "https://files.pythonhosted.org/packages/37/02/4f3f8997d1ea7fe0146b343e5e14bd065fa87af790d07e5576d31b31cc18/huggingface_hub-1.11.0-py3-none-any.whl", hash = "sha256:42a6de0afbfeb5e022222d36398f029679db4eb4778801aafda32257ae9131ab", size = 645499, upload-time = "2026-04-16T13:07:37.716Z" },
|
| 473 |
]
|
| 474 |
|
| 475 |
[[package]]
|
|
|
|
| 739 |
|
| 740 |
[[package]]
|
| 741 |
name = "narwhals"
|
| 742 |
+
version = "2.20.0"
|
| 743 |
source = { registry = "https://pypi.org/simple" }
|
| 744 |
+
sdist = { url = "https://files.pythonhosted.org/packages/e9/f3/257adc69a71011b4c8cda321b00f02c5bf1980ae38ffd05a58d9632d4de8/narwhals-2.20.0.tar.gz", hash = "sha256:c10994975fa7dc5a68c2cffcddbd5908fc8ebb2d463c5bab085309c0ee1f551e", size = 627848, upload-time = "2026-04-20T12:11:45.427Z" }
|
| 745 |
wheels = [
|
| 746 |
+
{ url = "https://files.pythonhosted.org/packages/d0/69/f24d3d1c38ad69e256138b4ec2452a8c7cf66be49dc214771ae99dd4f0a0/narwhals-2.20.0-py3-none-any.whl", hash = "sha256:16e750ea5507d4ba6e8d03455b5f93a535e0405976561baea235bca5dc9f475d", size = 449373, upload-time = "2026-04-20T12:11:43.596Z" },
|
| 747 |
]
|
| 748 |
|
| 749 |
[[package]]
|
|
|
|
| 1099 |
|
| 1100 |
[[package]]
|
| 1101 |
name = "packaging"
|
| 1102 |
+
version = "26.1"
|
| 1103 |
source = { registry = "https://pypi.org/simple" }
|
| 1104 |
+
sdist = { url = "https://files.pythonhosted.org/packages/df/de/0d2b39fb4af88a0258f3bac87dfcbb48e73fbdea4a2ed0e2213f9a4c2f9a/packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de", size = 215519, upload-time = "2026-04-14T21:12:49.362Z" }
|
| 1105 |
wheels = [
|
| 1106 |
+
{ url = "https://files.pythonhosted.org/packages/7a/c2/920ef838e2f0028c8262f16101ec09ebd5969864e5a64c4c05fad0617c56/packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f", size = 95831, upload-time = "2026-04-14T21:12:47.56Z" },
|
| 1107 |
]
|
| 1108 |
|
| 1109 |
[[package]]
|
|
|
|
| 1169 |
|
| 1170 |
[[package]]
|
| 1171 |
name = "persona-data"
|
| 1172 |
+
version = "0.2.1"
|
| 1173 |
source = { registry = "https://pypi.org/simple" }
|
| 1174 |
dependencies = [
|
| 1175 |
{ name = "huggingface-hub" },
|
| 1176 |
{ name = "numpy" },
|
| 1177 |
+
{ name = "pyarrow" },
|
| 1178 |
{ name = "python-dotenv" },
|
| 1179 |
{ name = "torch" },
|
| 1180 |
]
|
| 1181 |
+
sdist = { url = "https://files.pythonhosted.org/packages/68/62/dfe9a54e24f09af9015c5ae12541b62dac9820f5cdb5f0f957f7b294f6e2/persona_data-0.2.1.tar.gz", hash = "sha256:48fce145af708ee808c87f7f9359b141b4b1f7046fab195abce234d5edccb123", size = 8368, upload-time = "2026-04-20T13:16:04.34Z" }
|
| 1182 |
wheels = [
|
| 1183 |
+
{ url = "https://files.pythonhosted.org/packages/b3/8b/5d6c165bb70ace1036eaa0fd7650e721c999a2ba63708768c9281f960d04/persona_data-0.2.1-py3-none-any.whl", hash = "sha256:6d143abba0a20ca973867eeb76388c84b336c17319be0141b95b544ec43033e0", size = 11012, upload-time = "2026-04-20T13:16:03.41Z" },
|
| 1184 |
]
|
| 1185 |
|
| 1186 |
[[package]]
|
|
|
|
| 1198 |
|
| 1199 |
[package.metadata]
|
| 1200 |
requires-dist = [
|
| 1201 |
+
{ name = "persona-data", specifier = ">=0.2.0" },
|
| 1202 |
+
{ name = "persona-vectors", specifier = ">=0.3.0" },
|
| 1203 |
{ name = "plotly", specifier = ">=6.6.0" },
|
| 1204 |
{ name = "python-dotenv", specifier = ">=1.2.2" },
|
| 1205 |
{ name = "streamlit", specifier = ">=1.44.0" },
|
|
|
|
| 1208 |
|
| 1209 |
[[package]]
|
| 1210 |
name = "persona-vectors"
|
| 1211 |
+
version = "0.3.0"
|
| 1212 |
source = { registry = "https://pypi.org/simple" }
|
| 1213 |
dependencies = [
|
| 1214 |
{ name = "kaleido" },
|
|
|
|
| 1225 |
{ name = "transformers" },
|
| 1226 |
{ name = "umap-learn" },
|
| 1227 |
]
|
| 1228 |
+
sdist = { url = "https://files.pythonhosted.org/packages/bb/5c/fc8902745013ef8565859f3cec86b92518ad82da0dca2348490fbc9ed639/persona_vectors-0.3.0.tar.gz", hash = "sha256:95fc8bba9f356e4a793f77622366503f7c88e34e38fbe3d6c86e08fa4c5d7ad3", size = 15491, upload-time = "2026-04-20T14:04:11.808Z" }
|
| 1229 |
wheels = [
|
| 1230 |
+
{ url = "https://files.pythonhosted.org/packages/8e/0d/8274beae02b7d5ec571c24a3e9b963d3fc3e87512f1b9245fe048908a5f7/persona_vectors-0.3.0-py3-none-any.whl", hash = "sha256:ea20f6fa35d5ebfdd2c0cc6db35cb92893e3355f94ad700589f0a4156d16aa6d", size = 19006, upload-time = "2026-04-20T14:04:10.871Z" },
|
| 1231 |
]
|
| 1232 |
|
| 1233 |
[[package]]
|
|
|
|
| 1451 |
|
| 1452 |
[[package]]
|
| 1453 |
name = "pydantic"
|
| 1454 |
+
version = "2.13.2"
|
| 1455 |
source = { registry = "https://pypi.org/simple" }
|
| 1456 |
dependencies = [
|
| 1457 |
{ name = "annotated-types" },
|
|
|
|
| 1459 |
{ name = "typing-extensions" },
|
| 1460 |
{ name = "typing-inspection" },
|
| 1461 |
]
|
| 1462 |
+
sdist = { url = "https://files.pythonhosted.org/packages/09/e5/06d23afac9973109d1e3c8ad38e1547a12e860610e327c05ee686827dc37/pydantic-2.13.2.tar.gz", hash = "sha256:b418196607e61081c3226dcd4f0672f2a194828abb9109e9cfb84026564df2d1", size = 843836, upload-time = "2026-04-17T09:31:59.636Z" }
|
| 1463 |
wheels = [
|
| 1464 |
+
{ url = "https://files.pythonhosted.org/packages/77/ca/b45c378e6e8d0b90577288b533e04e95b7afd61bb1d51b6c263176435489/pydantic-2.13.2-py3-none-any.whl", hash = "sha256:a525087f4c03d7e7456a3de89b64cd693d2229933bb1068b9af6befd5563694e", size = 471947, upload-time = "2026-04-17T09:31:57.541Z" },
|
| 1465 |
]
|
| 1466 |
|
| 1467 |
[[package]]
|
| 1468 |
name = "pydantic-core"
|
| 1469 |
+
version = "2.46.2"
|
| 1470 |
source = { registry = "https://pypi.org/simple" }
|
| 1471 |
dependencies = [
|
| 1472 |
{ name = "typing-extensions" },
|
| 1473 |
]
|
| 1474 |
+
sdist = { url = "https://files.pythonhosted.org/packages/43/bb/4742f05b739b2478459bb16fa8470549518c802e06ddcf3f106c5081315e/pydantic_core-2.46.2.tar.gz", hash = "sha256:37bb079f9ee3f1a519392b73fda2a96379b31f2013c6b467fe693e7f2987f596", size = 471269, upload-time = "2026-04-17T09:10:07.017Z" }
|
| 1475 |
+
wheels = [
|
| 1476 |
+
{ url = "https://files.pythonhosted.org/packages/97/ec/2fafa4c86f5d2a69372c7cddef30925fd0e370b1efaf556609c1a0196d8a/pydantic_core-2.46.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ea1ad8c89da31512fe2d249cf0638fb666925bda341901541bc5f3311c6fcc9e", size = 2101729, upload-time = "2026-04-17T09:12:30.042Z" },
|
| 1477 |
+
{ url = "https://files.pythonhosted.org/packages/cf/55/be5386c2c4b49af346e8a26b748194ff25757bbb6cf544130854e997af7a/pydantic_core-2.46.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b308da17b92481e0587244631c5529e5d91d04cb2b08194825627b1eca28e21e", size = 1951546, upload-time = "2026-04-17T09:10:10.585Z" },
|
| 1478 |
+
{ url = "https://files.pythonhosted.org/packages/29/92/89e273a055ce440e6636c756379af35ad86da9d336a560049c3ba5e41c80/pydantic_core-2.46.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d333a50bdd814a917d8d6a7ee35ba2395d53ddaa882613bc24e54a9d8b129095", size = 1976178, upload-time = "2026-04-17T09:11:49.619Z" },
|
| 1479 |
+
{ url = "https://files.pythonhosted.org/packages/91/b3/e4664469cf70c0cb0f7b2f5719d64e5968bb6f38217042c2afa3d3c4ba17/pydantic_core-2.46.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1d00b99590c5bd1fabbc5d28b170923e32c1b1071b1f1de1851a4d14d89eb192", size = 2051697, upload-time = "2026-04-17T09:12:04.917Z" },
|
| 1480 |
+
{ url = "https://files.pythonhosted.org/packages/98/58/dbf68213ee06ce51cdd6d8c95f97980e646858c45bd96bd2dfb40433be73/pydantic_core-2.46.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9f0e686960ffe9e65066395af856ac2d52c159043144433602c50c221d81c1ba", size = 2233160, upload-time = "2026-04-17T09:12:00.956Z" },
|
| 1481 |
+
{ url = "https://files.pythonhosted.org/packages/f5/d3/68092aa0ee6c60ff4de4740eb82db3d4ce338ec89b3cecb978c532472f12/pydantic_core-2.46.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d1128da41c9cb474e0a4701f9c363ec645c9d1a02229904c76bf4e0a194fde2", size = 2298398, upload-time = "2026-04-17T09:10:29.694Z" },
|
| 1482 |
+
{ url = "https://files.pythonhosted.org/packages/e4/51/5d6155eb737db55b0ad354ca5f333ef009f75feb67df2d79a84bace45af6/pydantic_core-2.46.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48649cf2d8c358d79586e9fb2f8235902fcaa2d969ec1c5301f2d1873b2f8321", size = 2094058, upload-time = "2026-04-17T09:12:10.995Z" },
|
| 1483 |
+
{ url = "https://files.pythonhosted.org/packages/6b/f3/eb4a986197d71319430464ff181226c95adc8f06d932189b158bae5a82f5/pydantic_core-2.46.2-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:b902f0fc7c2cf503865a05718b68147c6cd5d0a3867af38c527be574a9fa6e9d", size = 2130388, upload-time = "2026-04-17T09:12:41.159Z" },
|
| 1484 |
+
{ url = "https://files.pythonhosted.org/packages/56/00/44a9c4fe6d0f64b5786d6a8c649d6f0e34ba6c89b3663add1066e54451a2/pydantic_core-2.46.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e80011f808b03d1d87a8f1e76ae3da19a18eb706c823e17981dcf1fae43744fc", size = 2184245, upload-time = "2026-04-17T09:12:36.532Z" },
|
| 1485 |
+
{ url = "https://files.pythonhosted.org/packages/78/6b/685b98a834d5e3d1c34a1bde1627525559dd223b75075bc7490cdb24eb33/pydantic_core-2.46.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b839d5c802e31348b949b6473f8190cddbf7d47475856d8ac995a373ee16ec59", size = 2186842, upload-time = "2026-04-17T09:13:04.054Z" },
|
| 1486 |
+
{ url = "https://files.pythonhosted.org/packages/22/64/caa2f5a2ac8b6113adaa410ccdf31ba7f54897a6e54cd0d726fc7e780c88/pydantic_core-2.46.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:c6b1064f3f9cf9072e1d59dd2936f9f3b668bec1c37039708c9222db703c0d5b", size = 2336066, upload-time = "2026-04-17T09:12:13.006Z" },
|
| 1487 |
+
{ url = "https://files.pythonhosted.org/packages/ee/f9/7d2701bf82945b5b9e7df8347be97ef6a36da2846bfe5b4afec299ffe27b/pydantic_core-2.46.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:37a68e6f2ac95578ce3c0564802404b27b24988649616e556c07e77111ed3f1d", size = 2363691, upload-time = "2026-04-17T09:13:42.972Z" },
|
| 1488 |
+
{ url = "https://files.pythonhosted.org/packages/3b/65/0dab11574101522941055109419db3cc09db871643dc3fc74e2413215e5b/pydantic_core-2.46.2-cp312-cp312-win32.whl", hash = "sha256:d9ffa75a7ef4b97d6e5e205fabd4304ef01fec09e6f1bdde04b9ad1b07d20289", size = 1958801, upload-time = "2026-04-17T09:11:31.981Z" },
|
| 1489 |
+
{ url = "https://files.pythonhosted.org/packages/13/2b/df84baa609c676f6450b8ecad44ea59146c805e3371b7b52443c0899f989/pydantic_core-2.46.2-cp312-cp312-win_amd64.whl", hash = "sha256:0551f2d2ddb68af5a00e26497f8025c538f73ef3cb698f8e5a487042cd2792a8", size = 2072634, upload-time = "2026-04-17T09:11:02.407Z" },
|
| 1490 |
+
{ url = "https://files.pythonhosted.org/packages/d1/4e/e1ce8029fc438086a946739bf9d596f70ff470aad4a8345555920618cabe/pydantic_core-2.46.2-cp312-cp312-win_arm64.whl", hash = "sha256:83aef30f106edcc21a6a4cc44b82d3169a1dbe255508db788e778f3c804d3583", size = 2026188, upload-time = "2026-04-17T09:13:11.083Z" },
|
| 1491 |
+
{ url = "https://files.pythonhosted.org/packages/07/2b/662e48254479a2d3450ba24b1e25061108b64339794232f503990c519144/pydantic_core-2.46.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:d26e9eea3715008a09a74585fe9becd0c67fbb145dc4df9756d597d7230a652c", size = 2101762, upload-time = "2026-04-17T09:10:13.87Z" },
|
| 1492 |
+
{ url = "https://files.pythonhosted.org/packages/73/ab/bafd7c7503757ccc8ec4d1911e106fe474c629443648c51a88f08b0fe91a/pydantic_core-2.46.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:48b36e3235140510dc7861f0cd58b714b1cdd3d48f75e10ce52e69866b746f10", size = 1951814, upload-time = "2026-04-17T09:12:25.934Z" },
|
| 1493 |
+
{ url = "https://files.pythonhosted.org/packages/92/cc/7549c2d57ba2e9a42caa5861a2d398dbe31c02c6aca783253ace59ce84f8/pydantic_core-2.46.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36b1f99dc451f1a3981f236151465bcf995bbe712d0727c9f7b236fe228a8133", size = 1977329, upload-time = "2026-04-17T09:13:37.605Z" },
|
| 1494 |
+
{ url = "https://files.pythonhosted.org/packages/18/50/7ed4a8a0d478a4dca8f0134a5efa7193f03cc8520dd4c9509339fb2e5002/pydantic_core-2.46.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8641c8d535c2d95b45c2e19b646ecd23ebba35d461e0ae48a3498277006250ab", size = 2051832, upload-time = "2026-04-17T09:12:49.771Z" },
|
| 1495 |
+
{ url = "https://files.pythonhosted.org/packages/dc/16/bb35b193741c0298ddc5f5e4234269efdc0c65e2bcd198aa0de9b68845e4/pydantic_core-2.46.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:20fb194788a0a50993e87013e693494ba183a2af5b44e99cf060bbae10912b11", size = 2233127, upload-time = "2026-04-17T09:11:04.449Z" },
|
| 1496 |
+
{ url = "https://files.pythonhosted.org/packages/91/a5/98f4b637149185addea19e1785ea20c373cca31b202f589111d8209d9873/pydantic_core-2.46.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9262d11d0cd11ee3303a95156939402bed6cedfe5ed0e331b95a283a4da6eb8b", size = 2297418, upload-time = "2026-04-17T09:11:25.929Z" },
|
| 1497 |
+
{ url = "https://files.pythonhosted.org/packages/36/90/93a5d21990b152da7b7507b7fddb0b935f6a0984d57ac3ec45a6e17777a2/pydantic_core-2.46.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac204542736aa295fa25f713b7fad6fc50b46ab7764d16087575c85f085174f3", size = 2093735, upload-time = "2026-04-17T09:12:06.908Z" },
|
| 1498 |
+
{ url = "https://files.pythonhosted.org/packages/14/22/b8b1ffdddf08b4e84380bcb67f41dbbf4c171377c1d36fc6290794bb2094/pydantic_core-2.46.2-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9a7c43a0584742dface3ca0daf6f719d46c1ac2f87cf080050f9ae052c75e1b2", size = 2127570, upload-time = "2026-04-17T09:11:53.906Z" },
|
| 1499 |
+
{ url = "https://files.pythonhosted.org/packages/c6/26/e60d72b4e2d0ce1fa811044a974412ac1c567fe067d97b3e6b290530786e/pydantic_core-2.46.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fd05e1edb6a90ad446fa268ab09e59202766b837597b714b2492db11ee87fab9", size = 2183524, upload-time = "2026-04-17T09:11:30.092Z" },
|
| 1500 |
+
{ url = "https://files.pythonhosted.org/packages/35/32/36bec7584a1eefb17dec4dfa1c946d3fe4440f466c5705b8adfda69c9a9f/pydantic_core-2.46.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:91155b110788b5501abc7ea954f1d08606219e4e28e3c73a94124307c06efb80", size = 2185408, upload-time = "2026-04-17T09:10:57.228Z" },
|
| 1501 |
+
{ url = "https://files.pythonhosted.org/packages/fc/d6/1a5689d873620efd67d6b163db0c444c056adb0849b5bc33e2b9f09665a6/pydantic_core-2.46.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:e4e2c72a529fa03ff228be1d2b76944013f428220b764e03cc50ada67e17a42c", size = 2335171, upload-time = "2026-04-17T09:11:43.369Z" },
|
| 1502 |
+
{ url = "https://files.pythonhosted.org/packages/3e/8e/675104802abe8ef502b072050ee5f2e915251aa1a3af87e1015ce31ec42d/pydantic_core-2.46.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:56291ec1a11c3499890c99a8fd9053b47e60fe837a77ec72c0671b1b8b3dce24", size = 2362743, upload-time = "2026-04-17T09:10:18.333Z" },
|
| 1503 |
+
{ url = "https://files.pythonhosted.org/packages/8d/bc/86c5dde4fa6e24467680eef5047da3c1a19be0a527d0d8e14aa76b39307c/pydantic_core-2.46.2-cp313-cp313-win32.whl", hash = "sha256:b50f9c5f826ddca1246f055148df939f5f3f2d0d96db73de28e2233f22210d4c", size = 1958074, upload-time = "2026-04-17T09:12:38.622Z" },
|
| 1504 |
+
{ url = "https://files.pythonhosted.org/packages/2a/97/2537e8c1282b2c4eb062580c0d7a4339e10b072b803d1ee0b7f1f0a5c22c/pydantic_core-2.46.2-cp313-cp313-win_amd64.whl", hash = "sha256:251a57788823230ca8cbc99e6245d1a2ed6e180ec4864f251c94182c580c7f2e", size = 2071741, upload-time = "2026-04-17T09:13:32.405Z" },
|
| 1505 |
+
{ url = "https://files.pythonhosted.org/packages/da/aa/2ee75798706f9dbc4e76dbe59e41a396c5c311e3d6223b9cf6a5fa7780be/pydantic_core-2.46.2-cp313-cp313-win_arm64.whl", hash = "sha256:315d32d1a71494d6b4e1e14a9fa7a4329597b4c4340088ad7e1a9dafbeed92a9", size = 2025955, upload-time = "2026-04-17T09:10:15.567Z" },
|
| 1506 |
+
{ url = "https://files.pythonhosted.org/packages/d0/96/a50ccb6b539ae780f73cea74905468777680e30c6c3bdf714b9d4c116ea0/pydantic_core-2.46.2-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:4f59b45f3ef8650c0c736a57f59031d47ed9df4c0a64e83796849d7d14863a2d", size = 2097111, upload-time = "2026-04-17T09:10:49.617Z" },
|
| 1507 |
+
{ url = "https://files.pythonhosted.org/packages/34/5f/fdead7b3afa822ab6e5a18ee0ecffd54937de1877c01ed13a342e0fb3f07/pydantic_core-2.46.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3a075a29ebef752784a91532a1a85be6b234ccffec0a9d7978a92696387c3da6", size = 1951904, upload-time = "2026-04-17T09:12:32.062Z" },
|
| 1508 |
+
{ url = "https://files.pythonhosted.org/packages/95/e0/1c5d547e550cdab1bec737492aa08865337af6fe7fc9b96f7f45f17d9519/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d12d786e30c04a9d307c5d7080bf720d9bac7f1668191d8e37633a9562749e2", size = 1978667, upload-time = "2026-04-17T09:11:35.589Z" },
|
| 1509 |
+
{ url = "https://files.pythonhosted.org/packages/0e/cb/665ce629e218c8228302cb94beff4f6531082a2c87d3ecc3d5e63a26f392/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0d5e6d6343b0b5dcacb3503b5de90022968da8ed0ab9ab39d3eda71c20cbf84e", size = 2046721, upload-time = "2026-04-17T09:11:47.725Z" },
|
| 1510 |
+
{ url = "https://files.pythonhosted.org/packages/77/e9/6cb2cf60f54c1472bbdfce19d957553b43dbba79d1d7b2930a195c594785/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:233eebac0999b6b9ba76eb56f3ec8fce13164aa16b6d2225a36a79e0f95b5973", size = 2228483, upload-time = "2026-04-17T09:12:08.837Z" },
|
| 1511 |
+
{ url = "https://files.pythonhosted.org/packages/0d/2a/93e018dd5571f781ebaeda8c0cf65398489d5bee9b1f484df0b6149b43b9/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9cc0eee720dd2f14f3b7c349469402b99ad81a174ab49d3533974529e9d93992", size = 2294663, upload-time = "2026-04-17T09:12:52.053Z" },
|
| 1512 |
+
{ url = "https://files.pythonhosted.org/packages/5e/4f/49e57ca55c770c93d9bb046666a54949b42e3c9099a0c5fe94557873fe30/pydantic_core-2.46.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83ee76bf2c9910513dbc19e7d82367131fa7508dedd6186a462393071cc11059", size = 2098742, upload-time = "2026-04-17T09:13:45.472Z" },
|
| 1513 |
+
{ url = "https://files.pythonhosted.org/packages/c6/b0/6e46b5cd3332af665f794b8cdeea206618a8630bd9e7bcc36864518fce81/pydantic_core-2.46.2-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:d61db38eb4ee5192f0c261b7f2d38e420b554df8912245e3546aee5c45e2fd78", size = 2125922, upload-time = "2026-04-17T09:12:54.304Z" },
|
| 1514 |
+
{ url = "https://files.pythonhosted.org/packages/06/d1/40850c81585be443a2abfdf7f795f8fae831baf8e2f9b2133c8246ac671c/pydantic_core-2.46.2-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f09a713d17bcd55da8ab02ebd9110c5246a49c44182af213b5212800af8bc83", size = 2183000, upload-time = "2026-04-17T09:10:59.027Z" },
|
| 1515 |
+
{ url = "https://files.pythonhosted.org/packages/04/af/8493d7dfa03ebb7866909e577c6aa65ea0de7377b86023cc51d0c8e11db3/pydantic_core-2.46.2-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:30cacc5fb696e64b8ef6fd31d9549d394dd7d52760db072eecb98e37e3af1677", size = 2180335, upload-time = "2026-04-17T09:12:57.01Z" },
|
| 1516 |
+
{ url = "https://files.pythonhosted.org/packages/72/5b/1f6a344c4ffdf284da41c6067b82d5ebcbd11ce1b515ae4b662d4adb6f61/pydantic_core-2.46.2-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:7ccfb105fcfe91a22bbb5563ad3dc124bc1aa75bfd2e53a780ab05f78cdf6108", size = 2330002, upload-time = "2026-04-17T09:12:02.958Z" },
|
| 1517 |
+
{ url = "https://files.pythonhosted.org/packages/25/ff/9a694126c12d6d2f48a0cafa6f8eef88ef0d8825600e18d03ff2e896c3b2/pydantic_core-2.46.2-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:13ffef637dc8370c249e5b26bd18e9a80a4fca3d809618c44e18ec834a7ca7a8", size = 2359920, upload-time = "2026-04-17T09:10:27.764Z" },
|
| 1518 |
+
{ url = "https://files.pythonhosted.org/packages/51/c8/3a35c763d68a9cb2675eb10ef242cf66c5d4701b28ae12e688d67d2c180e/pydantic_core-2.46.2-cp314-cp314-win32.whl", hash = "sha256:1b0ab6d756ca2704a938e6c31b53f290c2f9c10d3914235410302a149de1a83e", size = 1953701, upload-time = "2026-04-17T09:13:30.021Z" },
|
| 1519 |
+
{ url = "https://files.pythonhosted.org/packages/1a/6a/f2726a780365f7dfd89d62036f984f7acb99978c60c5e1fa7c0cb898ed11/pydantic_core-2.46.2-cp314-cp314-win_amd64.whl", hash = "sha256:99ebade8c9ada4df975372d8dd25883daa0e379a05f1cd0c99aa0c04368d01a6", size = 2071867, upload-time = "2026-04-17T09:10:39.205Z" },
|
| 1520 |
+
{ url = "https://files.pythonhosted.org/packages/e1/79/76baacb9feba3d7c399b245ca1a29c74ea0db04ea693811374827eec2290/pydantic_core-2.46.2-cp314-cp314-win_arm64.whl", hash = "sha256:de87422197cf7f83db91d89c86a21660d749b3cd76cd8a45d115b8e675670f02", size = 2017252, upload-time = "2026-04-17T09:10:26.175Z" },
|
| 1521 |
+
{ url = "https://files.pythonhosted.org/packages/f1/3b/77c26938f817668d9ad9bab1a905cb23f11d9a3d4bf724d429b3e55a8eaf/pydantic_core-2.46.2-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:236f22b4a206b5b61db955396b7cf9e2e1ff77f372efe9570128ccfcd6a525eb", size = 2094545, upload-time = "2026-04-17T09:12:19.339Z" },
|
| 1522 |
+
{ url = "https://files.pythonhosted.org/packages/fe/de/42c13f590e3c260966aa49bcdb1674774f975467c49abd51191e502bea28/pydantic_core-2.46.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c2012f64d2cd7cca50f49f22445aa5a88691ac2b4498ee0a9a977f8ca4f7289f", size = 1933953, upload-time = "2026-04-17T09:09:55.889Z" },
|
| 1523 |
+
{ url = "https://files.pythonhosted.org/packages/4e/84/ebe3ebb3e2d8db656937cfa6f97f544cb7132f2307a4a7dfdcd0ea102a12/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d07d6c63106d3a9c9a333e2636f9c82c703b1a9e3b079299e58747964e4fdb72", size = 1974435, upload-time = "2026-04-17T09:10:12.371Z" },
|
| 1524 |
+
{ url = "https://files.pythonhosted.org/packages/b9/15/0bf51ca6709477cd4ef86148b6d7844f3308f029eac361dd0383f1e17b1a/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c326a2b4b85e959d9a1fc3a11f32f84611b6ec07c053e1828a860edf8d068208", size = 2031113, upload-time = "2026-04-17T09:10:00.752Z" },
|
| 1525 |
+
{ url = "https://files.pythonhosted.org/packages/02/ae/b7b5af9b79db036d9e61a44c481c17a213dc8fc4b8b71fe6875a72fc778b/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac8a65e798f2462552c00d2e013d532c94d646729dda98458beaf51f9ec7b120", size = 2236325, upload-time = "2026-04-17T09:10:33.227Z" },
|
| 1526 |
+
{ url = "https://files.pythonhosted.org/packages/a6/ae/ecef7477b5a03d4a499708f7e75d2836452ebb70b776c2d64612b334f57a/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a3c2bc1cc8164bedbc160b7bb1e8cc1e8b9c27f69ae4f9ae2b976cdae02b2dd", size = 2278135, upload-time = "2026-04-17T09:10:23.287Z" },
|
| 1527 |
+
{ url = "https://files.pythonhosted.org/packages/db/e4/2f9d82faa47af6c39fc3f120145fd915971e1e0cb6b55b494fad9fdf8275/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69aa5e10b7e8b1bb4a6888650fd12fcbf11d396ca11d4a44de1450875702830", size = 2109071, upload-time = "2026-04-17T09:11:06.149Z" },
|
| 1528 |
+
{ url = "https://files.pythonhosted.org/packages/f1/9c/677cf10873fbd0b116575ab7b97c90482b21564f8a8040beb18edef7a577/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:4e6df5c3301e65fb42bc5338bf9a1027a02b0a31dc7f54c33775229af474daf0", size = 2106028, upload-time = "2026-04-17T09:10:51.525Z" },
|
| 1529 |
+
{ url = "https://files.pythonhosted.org/packages/d6/53/6a06183544daba51c059123a2064a99039df25f115a06bdb26f2ea177038/pydantic_core-2.46.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2c2f6e32548ac8d559b47944effcf8ae4d81c161f6b6c885edc53bc08b8f192d", size = 2164816, upload-time = "2026-04-17T09:11:56.187Z" },
|
| 1530 |
+
{ url = "https://files.pythonhosted.org/packages/57/6f/10fcdd9e3eca66fc828eef0f6f5850f2dd3bca2c59e6e041fb8bc3da39be/pydantic_core-2.46.2-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:b089a81c58e6ea0485562bbbbbca4f65c0549521606d5ef27fba217aac9b665a", size = 2166130, upload-time = "2026-04-17T09:10:03.804Z" },
|
| 1531 |
+
{ url = "https://files.pythonhosted.org/packages/29/83/92d3fd0e0156cad2e3cb5c26de73794af78ac9fa0c22ab666e566dd67061/pydantic_core-2.46.2-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:7f700a6d6f64112ae9193709b84303bbab84424ad4b47d0253301aabce9dfc70", size = 2316605, upload-time = "2026-04-17T09:12:45.249Z" },
|
| 1532 |
+
{ url = "https://files.pythonhosted.org/packages/97/f1/facffdb970981068219582e499b8d0871ed163ffcc6b347de5c412669e4c/pydantic_core-2.46.2-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:67db6814beaa5fefe91101ec7eb9efda613795767be96f7cf58b1ca8c9ca9972", size = 2358385, upload-time = "2026-04-17T09:09:54.657Z" },
|
| 1533 |
+
{ url = "https://files.pythonhosted.org/packages/8b/a1/b8160b2f22b2199467bc68581a4ed380643c16b348a27d6165c6c242d694/pydantic_core-2.46.2-cp314-cp314t-win32.whl", hash = "sha256:32fbc7447be8e3be99bf7869f7066308f16be55b61f9882c2cefc7931f5c7664", size = 1942373, upload-time = "2026-04-17T09:12:59.594Z" },
|
| 1534 |
+
{ url = "https://files.pythonhosted.org/packages/0d/90/db89acabe5b150e11d1b59fe3d947dda2ef6abbfef5c82f056ff63802f5d/pydantic_core-2.46.2-cp314-cp314t-win_amd64.whl", hash = "sha256:b317a2b97019c0b95ce99f4f901ae383f40132da6706cdf1731066a73394c25c", size = 2052078, upload-time = "2026-04-17T09:10:19.96Z" },
|
| 1535 |
+
{ url = "https://files.pythonhosted.org/packages/97/32/e19b83ceb07a3f1bb21798407790bbc9a31740158fd132b94139cb84e16c/pydantic_core-2.46.2-cp314-cp314t-win_arm64.whl", hash = "sha256:7dcb9d40930dfad7ab6b20bcc6ca9d2b030b0f347a0cd9909b54bd53ead521b1", size = 2016941, upload-time = "2026-04-17T09:12:34.447Z" },
|
| 1536 |
+
{ url = "https://files.pythonhosted.org/packages/f3/d2/66c146f421178641bda880b0267c0d57dd84f5fec9ecc8e46be17b480742/pydantic_core-2.46.2-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:e9fcabd1857492b5bf16f90258babde50f618f55d046b1309972da2396321ff9", size = 2091621, upload-time = "2026-04-17T09:12:47.501Z" },
|
| 1537 |
+
{ url = "https://files.pythonhosted.org/packages/ee/b2/c28419aa9fc8055f4ac8e801d1d11c6357351bfa4321ed9bafab3eb98087/pydantic_core-2.46.2-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:fb3ec2c7f54c07b30d89983ce78dc32c37dd06a972448b8716d609493802d628", size = 1937059, upload-time = "2026-04-17T09:10:53.554Z" },
|
| 1538 |
+
{ url = "https://files.pythonhosted.org/packages/30/ce/cd0824a2db213dc17113291b7a09b9b0ccd9fbf97daa4b81548703341baf/pydantic_core-2.46.2-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130a6c837d819ef33e8c2bf702ed2c3429237ea69807f1140943d6f4bdaf52fa", size = 1997278, upload-time = "2026-04-17T09:12:23.784Z" },
|
| 1539 |
+
{ url = "https://files.pythonhosted.org/packages/c9/69/47283fe3c0c967d3e9e9cd6c42b70907610c8a6f8d6e8381f1bb55f8006c/pydantic_core-2.46.2-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2e25417cec5cd9bddb151e33cb08c50160f317479ecc02b22a95ec18f8fe004", size = 2147096, upload-time = "2026-04-17T09:12:43.124Z" },
|
| 1540 |
]
|
| 1541 |
|
| 1542 |
[[package]]
|
| 1543 |
name = "pydeck"
|
| 1544 |
+
version = "0.9.2"
|
| 1545 |
source = { registry = "https://pypi.org/simple" }
|
| 1546 |
dependencies = [
|
| 1547 |
{ name = "jinja2" },
|
| 1548 |
{ name = "numpy" },
|
| 1549 |
]
|
| 1550 |
+
sdist = { url = "https://files.pythonhosted.org/packages/eb/df/4e9e7f20f8034a37c6571c93809f6d22388c39978c98d174d656c1a18fd2/pydeck-0.9.2.tar.gz", hash = "sha256:c10d9035e81ead6385264cac8d19402471f6866a15ca1f7df1400f52142bcf87", size = 5849672, upload-time = "2026-04-16T18:30:30.089Z" }
|
| 1551 |
wheels = [
|
| 1552 |
+
{ url = "https://files.pythonhosted.org/packages/88/24/b30ee7d723100fd822de1bb4c0adea62f3419884a75a536f35f355d1e7c0/pydeck-0.9.2-py2.py3-none-any.whl", hash = "sha256:8213dfeacc5f6bfe6825f61c8ee34e3850e8a31fc43924379ec98edb34a75b25", size = 11305615, upload-time = "2026-04-16T18:30:28.133Z" },
|
| 1553 |
]
|
| 1554 |
|
| 1555 |
[[package]]
|
|
|
|
| 2073 |
|
| 2074 |
[[package]]
|
| 2075 |
name = "simplejson"
|
| 2076 |
+
version = "4.0.1"
|
| 2077 |
+
source = { registry = "https://pypi.org/simple" }
|
| 2078 |
+
sdist = { url = "https://files.pythonhosted.org/packages/14/91/b0e7a38d63706dde006d1213f9c394ad7702df841c019fb4cf0e3295c58c/simplejson-4.0.1.tar.gz", hash = "sha256:bc13170567a5c856a0e6c16620c0b0388722f7d6382acd8007857624c3dedf3e", size = 115959, upload-time = "2026-04-18T22:46:17.544Z" }
|
| 2079 |
+
wheels = [
|
| 2080 |
+
{ url = "https://files.pythonhosted.org/packages/ca/21/03ec9b2cceff7966637bd7c96aa4f4df7d59edf4f481fcd76ada5d883f20/simplejson-4.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5be5c2b2ea9e81528b3622f8fd486da04e80e983829f2e69a7acb94302792ef2", size = 110113, upload-time = "2026-04-18T22:44:40.74Z" },
|
| 2081 |
+
{ url = "https://files.pythonhosted.org/packages/a5/41/77b6f4301566206998ba1911ec334cbe3c574fa5095f846ea99e50e81242/simplejson-4.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aef5610bbbdffc24820daba4f4c7dd1e52bf0f4e016e2860484b562bb964dde5", size = 89804, upload-time = "2026-04-18T22:44:42.289Z" },
|
| 2082 |
+
{ url = "https://files.pythonhosted.org/packages/8f/48/859d3d12a5f2d6acd1ef1ce75bdd8d25758d63d47223e66eccf3b02461e6/simplejson-4.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82b34e268f1c7acb9d1bed942b376cd01c418cee9bf05a207ac962c6ce28d29a", size = 90103, upload-time = "2026-04-18T22:44:43.446Z" },
|
| 2083 |
+
{ url = "https://files.pythonhosted.org/packages/12/17/5135ac3005d2db660182117053d63b97d4ae841efbf77c02ad3aa8b36e3d/simplejson-4.0.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:905d03e5336b20c6d8ac2a648cb178259807836fb5c8a1ee091ca4601962ec47", size = 183967, upload-time = "2026-04-18T22:44:44.61Z" },
|
| 2084 |
+
{ url = "https://files.pythonhosted.org/packages/e7/e4/3f61fc83ca56256b581c2c55331ba4a51fc50e28d0153f40baebfeb9b90c/simplejson-4.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:95c6a6e1f66b6fda46fb9f44809911a90715f05f6df1c6d6db941a8ad2872c35", size = 181209, upload-time = "2026-04-18T22:44:45.899Z" },
|
| 2085 |
+
{ url = "https://files.pythonhosted.org/packages/3d/26/809a1ed84241a96868fd3915aad173c7e983acb0f7896b7a895635ab1577/simplejson-4.0.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:99f12a0d959d7103403e4774189b562f8b1e0529a41561248e2a3c25b6c80797", size = 189815, upload-time = "2026-04-18T22:44:47.175Z" },
|
| 2086 |
+
{ url = "https://files.pythonhosted.org/packages/08/29/c157b85210df6e286f0f52f8683040d49e654ed51d30126f9eea0f669725/simplejson-4.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5deb4b6c77a02c2e2267135c5afd0d4a9acd3c83c3f73674816d2377b475630", size = 177993, upload-time = "2026-04-18T22:44:48.771Z" },
|
| 2087 |
+
{ url = "https://files.pythonhosted.org/packages/7e/f5/b8259ecfad5b717199a9ed1c01c54dff0d858934e226dbb6013bfe4a4995/simplejson-4.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c95f7c5c53c3e62bde8c452f41d6795f541e5dc951926275771ff7f2bbae0511", size = 186796, upload-time = "2026-04-18T22:44:50.181Z" },
|
| 2088 |
+
{ url = "https://files.pythonhosted.org/packages/78/ee/d3dcfaf22d9eb620f8840390a655c22c858e9c2c75073883d7090e9ccf78/simplejson-4.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0f057dd469501aff95bb438fc9593d0c2f353dba83f00c0a3db6447ad79f5728", size = 181521, upload-time = "2026-04-18T22:44:51.413Z" },
|
| 2089 |
+
{ url = "https://files.pythonhosted.org/packages/24/ed/6f13edaff9106e657aab61320e1adceccbd30f50afd877e99d0de292bc48/simplejson-4.0.1-cp312-cp312-win32.whl", hash = "sha256:cc962d5029509f2170ef40e5e7db4df87f71208a931aca6e8bdc0c76e1ff2b3a", size = 88003, upload-time = "2026-04-18T22:44:53.045Z" },
|
| 2090 |
+
{ url = "https://files.pythonhosted.org/packages/d1/7d/1eebe8ef0682da987d637606aa2eaae0e211010a6fce21abd2c680cf65a6/simplejson-4.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:d2031d87911379c7a778e5f902eeffc161355c9137c695dd12dc219456e976e9", size = 90055, upload-time = "2026-04-18T22:44:54.491Z" },
|
| 2091 |
+
{ url = "https://files.pythonhosted.org/packages/ed/94/afe6285b3b39208473ab9056039cf20cac393d1a7942f644ecb7d424463b/simplejson-4.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f934a918ef7a50698a481e18aa713d3075f94d1402a6d293f755d00118f8a975", size = 110975, upload-time = "2026-04-18T22:44:55.995Z" },
|
| 2092 |
+
{ url = "https://files.pythonhosted.org/packages/9a/45/2c74fdb851af00c18ae11af978e7191972071e26ffe2f5aaccbd0a96e961/simplejson-4.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a2b0211da4be9fcbabe11ff9b65f7e06dd8205197b078fe7f1e9cc268cd0e369", size = 90384, upload-time = "2026-04-18T22:44:57.194Z" },
|
| 2093 |
+
{ url = "https://files.pythonhosted.org/packages/92/af/f457958ef90935e99e1bdf51c16b2a0448726a4db2881d472d22f0259290/simplejson-4.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:58c125ee57f2a35081c46ca66d76ee3c109394f4aee0d981cb049c5ee5688e62", size = 90387, upload-time = "2026-04-18T22:44:58.663Z" },
|
| 2094 |
+
{ url = "https://files.pythonhosted.org/packages/43/58/da3da211a3b91ff0f8b9a3926e3b97b9224cbb94e4a67b998394c0e984a3/simplejson-4.0.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:24ca278f0ba7b3aff90ed1f873f5f4192ae1da97de72196b4be021f3b1d407a0", size = 186193, upload-time = "2026-04-18T22:45:00.108Z" },
|
| 2095 |
+
{ url = "https://files.pythonhosted.org/packages/69/ff/5757f7eddea36d55593423c5da72cdb1ffd2ae7755d804da08f598cf277a/simplejson-4.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25a6b3d15ab9c8247f7e0a280b2823eff08bd74e7605701c01d7cd54e80a86ed", size = 183647, upload-time = "2026-04-18T22:45:01.484Z" },
|
| 2096 |
+
{ url = "https://files.pythonhosted.org/packages/1e/27/eb59ff58a78e57db4120e10bc6b7d6409f9c25180b912593c2cfe5637b5c/simplejson-4.0.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:534a7d90b86a97cf15ebe42d732c41223612d981d08f226025499177692a977d", size = 191880, upload-time = "2026-04-18T22:45:03.067Z" },
|
| 2097 |
+
{ url = "https://files.pythonhosted.org/packages/1b/e6/0650672c0b43b9add2c2e5f13f5b2d3770b23bc10688dfe4ea637ef1a4b4/simplejson-4.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e2b10899f200b675a8ab0e2abd4c4846d2631d90d226fc3079e8b16073aba31d", size = 180312, upload-time = "2026-04-18T22:45:04.51Z" },
|
| 2098 |
+
{ url = "https://files.pythonhosted.org/packages/00/b9/4a4042c8f24bb53ca03a2d5d794aeefa78965df1213239cf9fe895b40342/simplejson-4.0.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd525b897132493aa65eecd3c5ddc3602e25c625caafbcc958fc87a74a24a1c1", size = 188278, upload-time = "2026-04-18T22:45:06.019Z" },
|
| 2099 |
+
{ url = "https://files.pythonhosted.org/packages/17/b4/594be43d55ea5100334bc60013c3b310ecde4135b8288dd8183d21881966/simplejson-4.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:072a481be83b8c3f9167d0463105e0ddfcf2e00a6289c2ad650c3b35920ce0c8", size = 183928, upload-time = "2026-04-18T22:45:07.298Z" },
|
| 2100 |
+
{ url = "https://files.pythonhosted.org/packages/0d/26/8c09ba0fcf0b8c284a4f0f57605890c443b59cec070c6918baa7600976d9/simplejson-4.0.1-cp313-cp313-win32.whl", hash = "sha256:91eb4b42ab0a2de89919ed3bfa960fca0b13af0816447c89123c6658c36fb0a1", size = 88305, upload-time = "2026-04-18T22:45:08.603Z" },
|
| 2101 |
+
{ url = "https://files.pythonhosted.org/packages/4a/18/996ef6a0bd5b02bb9880901df01621b6c6de599360454a2ee2d06985076f/simplejson-4.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d2dc202a5e9d07e893c0bc1aa12b88bff98332c52b3ae184defe054d0e2ff35", size = 90273, upload-time = "2026-04-18T22:45:09.774Z" },
|
| 2102 |
+
{ url = "https://files.pythonhosted.org/packages/c8/84/103fbe8f7d1221737fc26b8932804a4f9393ab8e83633ed244a3b75c2617/simplejson-4.0.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:77af5d5f5fecd749786a38e6bd0e4bdd97f37e321ee6008a130dfe0aef7ec4e4", size = 108191, upload-time = "2026-04-18T22:45:11.007Z" },
|
| 2103 |
+
{ url = "https://files.pythonhosted.org/packages/3d/ca/123e47cabb2307ad8959f3b3b6b181e96e83e261dc6033fb5b068cfea78f/simplejson-4.0.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:bb48e3e3f7a97780971d1649989b63c576f86ce91a59cc3400d80cd7964f1044", size = 88863, upload-time = "2026-04-18T22:45:12.407Z" },
|
| 2104 |
+
{ url = "https://files.pythonhosted.org/packages/42/a2/9d56e5a028ff4d666f25609f42f2c88cbd155d5fb30b124fcb7cf6081b88/simplejson-4.0.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5738da4af10c92631e89421d4665f0e92119b63b62085d8eb2d51304bc4273ee", size = 89106, upload-time = "2026-04-18T22:45:13.933Z" },
|
| 2105 |
+
{ url = "https://files.pythonhosted.org/packages/56/1b/9eb1901514f48cf8944fe7af8432f522aa1c80dd3a00eddfedefa62066bc/simplejson-4.0.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4d02c0fb43f2f0f20de94043235fa433e1cae63c39e2f4af0f9d21882a8479be", size = 178099, upload-time = "2026-04-18T22:45:15.156Z" },
|
| 2106 |
+
{ url = "https://files.pythonhosted.org/packages/25/19/5437e74f888f76a0c765e61057396a0932bfab104974d81752e63a5c6dd2/simplejson-4.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:851cfde1b505289d8c60cc6057770fe0f0dd675065fdc0b8e916463dca3a9d63", size = 175091, upload-time = "2026-04-18T22:45:16.43Z" },
|
| 2107 |
+
{ url = "https://files.pythonhosted.org/packages/02/ab/451bae4c4baf663349437ba5790f489a3956dd0b3d8ddcf25b087ea743f1/simplejson-4.0.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8953fee0520010baae040cf8a5316f5b75794d6bd79364be3deb365821ff2cb0", size = 183411, upload-time = "2026-04-18T22:45:17.746Z" },
|
| 2108 |
+
{ url = "https://files.pythonhosted.org/packages/c4/38/90c48b57694bc14dab99a77508b037597c44929323d7dc4764b2889b41a6/simplejson-4.0.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:aa3595f335868a3a421e089146fe53b0df19d9f7198748ce698d8d409c3c0786", size = 172859, upload-time = "2026-04-18T22:45:19.064Z" },
|
| 2109 |
+
{ url = "https://files.pythonhosted.org/packages/98/ff/a7ba77ba7375aef15617c41383e6a301c3c8e3f789f0356037c149ffd9e7/simplejson-4.0.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c7962187dcb27c9abe3a5e04969b005f963d6f9bc05f77641126e4ee99aa6a5f", size = 180548, upload-time = "2026-04-18T22:45:20.75Z" },
|
| 2110 |
+
{ url = "https://files.pythonhosted.org/packages/36/5d/748bed0e129846f727d37ac5739c562e1aa8aef4ba864e3bdf59eba530d0/simplejson-4.0.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f64c2bffa2a4438c9b45aef53743271fcac4836dd6d15646b6865fd3c49dd2b0", size = 176480, upload-time = "2026-04-18T22:45:22.4Z" },
|
| 2111 |
+
{ url = "https://files.pythonhosted.org/packages/63/98/783ed8ddd0962e6e36c45dbc331fd35f42aa904829ba3757c1a3eee15b78/simplejson-4.0.1-cp314-cp314-win32.whl", hash = "sha256:cad8fe5e92def6080a31315b74947d956220cc6e7726878de797d233e1884bf6", size = 88023, upload-time = "2026-04-18T22:45:24.025Z" },
|
| 2112 |
+
{ url = "https://files.pythonhosted.org/packages/9b/90/678107cf70a5709066f0a3859e2d56018da9eef1cf97ae478c9a7435294b/simplejson-4.0.1-cp314-cp314-win_amd64.whl", hash = "sha256:9ae4bc39e64d24642c6e2f97a0d7f3c3f2262876e4d45fef439e0910b0b7433a", size = 90156, upload-time = "2026-04-18T22:45:25.239Z" },
|
| 2113 |
+
{ url = "https://files.pythonhosted.org/packages/cb/76/709e8f60385b2c4cb26ad291302594d4711562c8005eb8e36e74080e47be/simplejson-4.0.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4dab04afe06dc2e83dce044cf53374d37019a5be14f815cb583456b02bcba46b", size = 111994, upload-time = "2026-04-18T22:45:26.479Z" },
|
| 2114 |
+
{ url = "https://files.pythonhosted.org/packages/3c/18/87698fd8c4e286b1f7154d7a5076f5e97fdc7582484ffcc199afb5ea62b1/simplejson-4.0.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b6e744eacf669056ab19992f694e48149cccae9538e9014a4778749feae9978b", size = 90761, upload-time = "2026-04-18T22:45:28.099Z" },
|
| 2115 |
+
{ url = "https://files.pythonhosted.org/packages/b3/a4/e14d784ddddefc039d651f932a1a43efe4814726de652a3f6cd569fbf0e2/simplejson-4.0.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4166f23ace9b0cf28be7ed0f147c900baf4e579a57fe926ba54078b244eb2e7f", size = 91070, upload-time = "2026-04-18T22:45:29.953Z" },
|
| 2116 |
+
{ url = "https://files.pythonhosted.org/packages/9b/93/ba9ab9bd5aad9df588b39163e6e381d6a5e4d51b6f70320d81a84316690a/simplejson-4.0.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5425cdfc980972688f08f332ed1d480874b5114855e49a9a6607e220c494c1e6", size = 208225, upload-time = "2026-04-18T22:45:31.183Z" },
|
| 2117 |
+
{ url = "https://files.pythonhosted.org/packages/72/91/abb6e9caf7f08d392f5c50e14f3a411b3e85597b59851bb8ca09829a7466/simplejson-4.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7584d53ed708ad17984a591a542861e0712da285577cfbbcd82c956eb6b12233", size = 207827, upload-time = "2026-04-18T22:45:32.828Z" },
|
| 2118 |
+
{ url = "https://files.pythonhosted.org/packages/a6/c6/bfdb1be8ef2d7db768237f97a7e420fe34146692ebfbc2ffd719c528ffb8/simplejson-4.0.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0d98b8fdd7df1cec61de1f63ae7f111d761e2a3208049b5d24358aa29dc3044f", size = 213386, upload-time = "2026-04-18T22:45:34.178Z" },
|
| 2119 |
+
{ url = "https://files.pythonhosted.org/packages/92/87/0b81b072d1fe185c4723ff1c76096e73b6e0019791804aad5f4946724620/simplejson-4.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9f8d949c5d34afb3bf81d71879a288526f85cd31277f4a321e4b643f0c4f367d", size = 204013, upload-time = "2026-04-18T22:45:35.674Z" },
|
| 2120 |
+
{ url = "https://files.pythonhosted.org/packages/72/b2/b396ee3ded3fe2a0609b89b922b09ba9134c8da539c267bb2b356f3471a8/simplejson-4.0.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:5ecc0ad5fdd14109f563510e448a2f937c1d8816e91b33ab5549408e72dda884", size = 209274, upload-time = "2026-04-18T22:45:37.301Z" },
|
| 2121 |
+
{ url = "https://files.pythonhosted.org/packages/a5/27/22ef6035399b7c09e07cc7373d3c54a5261fb55554b7efbd0bc9aa360f29/simplejson-4.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:54342df0f6a273436e6869ac372a077161877c826ddc66b861f31a59fabe2b98", size = 204866, upload-time = "2026-04-18T22:45:38.671Z" },
|
| 2122 |
+
{ url = "https://files.pythonhosted.org/packages/0b/a0/fc26e8d67c2cf9bf4742f1d81c2d15067731be2f60972ad0b780d70e7460/simplejson-4.0.1-cp314-cp314t-win32.whl", hash = "sha256:3e49d709a121d47acaf6932803407b6feee5d5fac5c7f2a370d7ba5b6fedaea3", size = 90571, upload-time = "2026-04-18T22:45:40.401Z" },
|
| 2123 |
+
{ url = "https://files.pythonhosted.org/packages/3d/6b/1858670f2b22fcdb26efe9255d9354377d3259e08ed26d0652c7a4bd5aa3/simplejson-4.0.1-cp314-cp314t-win_amd64.whl", hash = "sha256:d8c702e19fd99fd75f3371de70b5489dc9f659cd69ada0c72a2f6dce76bd624c", size = 93474, upload-time = "2026-04-18T22:45:41.552Z" },
|
| 2124 |
+
{ url = "https://files.pythonhosted.org/packages/a9/2d/93a5b862ac29f182a658eb3fc2c98fe28acbb5c05a9076402572c7eb6966/simplejson-4.0.1-py3-none-any.whl", hash = "sha256:dfa6e9923c0ec2880738d09e5ce045741eb6cd4551e261dcd6c3625d26666075", size = 69242, upload-time = "2026-04-18T22:46:16.183Z" },
|
| 2125 |
]
|
| 2126 |
|
| 2127 |
[[package]]
|
|
|
|
| 2365 |
|
| 2366 |
[[package]]
|
| 2367 |
name = "transformers"
|
| 2368 |
+
version = "5.5.4"
|
| 2369 |
source = { registry = "https://pypi.org/simple" }
|
| 2370 |
dependencies = [
|
| 2371 |
{ name = "huggingface-hub" },
|
|
|
|
| 2378 |
{ name = "tqdm" },
|
| 2379 |
{ name = "typer" },
|
| 2380 |
]
|
| 2381 |
+
sdist = { url = "https://files.pythonhosted.org/packages/a5/1e/1e244ab2ab50a863e6b52cc55761910567fa532b69a6740f6e99c5fdbd98/transformers-5.5.4.tar.gz", hash = "sha256:2e67cadba81fc7608cc07c4dd54f524820bc3d95b1cabd0ef3db7733c4f8b82e", size = 8227649, upload-time = "2026-04-13T16:55:55.181Z" }
|
| 2382 |
wheels = [
|
| 2383 |
+
{ url = "https://files.pythonhosted.org/packages/29/fb/162a66789c65e5afa3b051309240c26bf37fbc8fea285b4546ae747995a2/transformers-5.5.4-py3-none-any.whl", hash = "sha256:0bd6281b82966fe5a7a16f553ea517a9db1dee6284d7cb224dfd88fc0dd1c167", size = 10236696, upload-time = "2026-04-13T16:55:51.497Z" },
|
| 2384 |
]
|
| 2385 |
|
| 2386 |
[[package]]
|