diff --git a/.gitignore b/.gitignore index 811c0a9..cc831d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,12 @@ # Data and configs -*.toml +#*.toml +examples/slac_fel/data/ +# DS_Store files +.DS_Store +.idea + +double_check_data.ipynb +uv.lock # Logging files *.db diff --git a/examples/slac_fel/__init__.py b/examples/slac_fel/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/slac_fel/model.py b/examples/slac_fel/model.py new file mode 100644 index 0000000..2400030 --- /dev/null +++ b/examples/slac_fel/model.py @@ -0,0 +1,462 @@ +# examples/slac_fel/model.py +"""SLAC FEL model harness for the BaseSim continuous-learning framework. + +This harness wraps a 7-layer ELU regression network with dropout regularisation, +trained to predict HXR pulse intensity from accelerator settings. The pre-processed +accelerator data is chronologically sorted and sliced into time windows, +each of which is served in order by ``update_data_stream()``. +""" + +from __future__ import annotations + +import gc +import logging +import os +from typing import Any, List, Optional, Tuple + +import torch +import torch.nn.functional as F +from torch import Tensor, nn +from torch.optim import Optimizer +from torch.utils.data import ConcatDataset, DataLoader + +from apeiron.config.configuration import Config +from apeiron.model.torch_model_harness import BaseModelHarness + +from examples.slac_fel.utils import ( + FELDataset, + discover_window_files, + load_feature_config, + load_fel_data, + load_scalers, + load_window_file, + make_loader, + split_into_windows, + split_timestamps, +) + + +_log = logging.getLogger(__name__) + + +# ------------------------------------------------------------------------------------------------- +# Neural-network architecture +# Matches FELNeuralNetwork in train_fel_model.py from surrogate repo model arch on 4/20/2026 +# ------------------------------------------------------------------------------------------------- +class FELNet(nn.Module): + """7-layer fully-connected ELU regression network. + Predicts FEL pulse intensity from scaled accelerator inputs.""" + + def __init__(self, input_size=None, output_size=1): + super(FELNet, self).__init__() + + self.net = nn.Sequential( + nn.Linear(input_size, 1024), + nn.ELU(), + nn.Linear(1024, 512), + nn.ELU(), + nn.Linear(512, 256), + nn.ELU(), + nn.Linear(256, 128), + nn.ELU(), + nn.Dropout(p=0.05), + nn.Linear(128, 64), + nn.ELU(), + nn.Dropout(p=0.05), + nn.Linear(64, 32), + nn.ELU(), + nn.Linear(32, 16), + nn.ELU(), + nn.Dropout(p=0.05), + nn.Linear(16, output_size), + nn.Softplus(beta=1.0, threshold=20.0), + ) + + def forward(self, x: Tensor) -> Tensor: + if not torch.isfinite(x).all(): + n_bad = (~torch.isfinite(x)).sum().item() + _log.warning( + "FELNet.forward: %d non-finite values in input. Replacing with 0", + n_bad, + ) + x = torch.nan_to_num(x, nan=0.0, posinf=1e6, neginf=-1e6) + + out = self.net(x) + + # Detect NaN outputs + if not torch.isfinite(out).all(): + if torch.isnan(out).any(): + _log.warning("Model produced NaN predictions. Replacing with 0.") + out = torch.nan_to_num(out, nan=0.0, posinf=1e6, neginf=-1e6) + + return out + + +# --------------------------------------------------------------------------- +# Regression metrics (match MetricFn = Callable[[Tensor, Tensor], Any]) +# --------------------------------------------------------------------------- +@torch.no_grad() +def mse_metric(y_hat: Tensor, y: Tensor) -> Tensor: + """Mean-squared error computed on the batch.""" + return F.mse_loss(y_hat, y) + + +# --------------------------------------------------------------------------- +# Model harness +# --------------------------------------------------------------------------- + +# Fraction of each time window reserved for validation +_VAL_FRACTION: float = 0.2 + + +class SLAC_FEL(BaseModelHarness): + """Continuous-learning harness for the LCLS FEL regression model. + + The data path (``cfg.data.path``) must point to a directory containing: + + * ``hxr_*.pkl`` – pre-filtered, chronologically-sorted DataFrames. Files + are loaded lazily one at a time as windows are consumed, keeping only + one file's worth of tensors in memory at once. + * **OR** ``data.pkl`` – a single monolithic DataFrame that will be split + into fixed-size windows via ``cfg.data.batch_size`` (legacy fallback). + + The data path (``cfg.model``) must point to a directory containing: + * ``input_scaler.pt`` – BoTorch ``AffineInputTransform`` for inputs + * ``output_scaler.pt`` – BoTorch ``AffineInputTransform`` for the target + * ``feature_config.yml`` – YAML listing input / output variable names + * ``model_pretrained.pt`` (optional) – pretrained checkpoint for the FELNet model + + Each call to :meth:`update_data_stream` advances to the next time window. + """ + + def __init__(self, cfg: Config) -> None: + # ----- scalers & feature config (always needed) ---------------------- + assert cfg.model.config_path is not None, ( + "model.config_path must be set for SLAC-FEL harness" + ) + self.input_scaler, self.output_scaler = load_scalers( + cfg.model.config_path, device=cfg.device + ) + self.input_cols, self.output_cols = load_feature_config(cfg.model.config_path) + + # ----- discover per-file windows or fall back to monolithic ---------- + self._window_file_paths = discover_window_files(cfg.data.path) + self._lazy = len(self._window_file_paths) > 0 + + # Dimensions come from the feature config – no data loading needed. + input_size = len(self.input_cols) + output_size = len(self.output_cols) + + if self._lazy: + # Lazy mode: files are loaded one at a time as windows are consumed. + self._file_idx: int = 0 + self._active_windows: List[Tuple[Tensor, Tensor]] = [] + self._active_timestamps: List = [] + self._active_window_idx: int = 0 + # num_windows is unknown until all files are scanned; use -1 as sentinel. + self.num_windows: int = -1 + print( + f"[SLAC-FEL] Lazy loading: {len(self._window_file_paths)} file(s) in " + f"{cfg.data.path} (window_size={cfg.data.batch_size}, " + f"input_dim={input_size}, output_dim={output_size})" + ) + else: + # Legacy mode: single data.pkl split into fixed-size windows. + X, y, timestamps = load_fel_data(cfg.data.path, cfg.model.config_path, device=cfg.device) + print(f"[SLAC-FEL] Legacy mode: single data file {cfg.data.path} with {X.shape[0]} samples") + self.windows = split_into_windows(X, y, window_size=cfg.data.batch_size) + self.window_timestamps = split_timestamps( + timestamps, window_size=cfg.data.batch_size + ) + self.num_windows = len(self.windows) + print( + f"[SLAC-FEL] Legacy mode: {self.num_windows} windows " + f"(window_size={cfg.data.batch_size}, " + f"input_dim={input_size}, output_dim={output_size})" + ) + + # ----- build model --------------------------------------------------- + pretrained_path = cfg.model.pretrained_path + if pretrained_path: + model = self._load_pretrained_direct( + pretrained_path, input_size, output_size, cfg.device + ) + else: + model = FELNet(input_size=input_size, output_size=output_size) + + super().__init__(cfg=cfg, model=model) + + # ----- eval metrics (regression) ------------------------------------- + self.eval_metrics = {"mse": mse_metric} + self.higher_is_better = {"mse": False} + + # ----- streaming state ----------------------------------------------- + self.window_idx: int = 0 + self.history_windows: List[Tuple[Tensor, Tensor]] = [] + self._current_window: Optional[Tuple[Tensor, Tensor]] = None + self.current_window_timerange: Optional[Tuple[str, str]] = None + + # Cap history to prevent unbounded memory growth + self.max_history_windows: int = 20 + + self._cur_train_loader: Optional[DataLoader] = None + self._cur_val_loader: Optional[DataLoader] = None + + # --------------------------------------------------------------------- # + # Required overrides + # --------------------------------------------------------------------- # + + def get_optmizer(self) -> Optimizer: # noqa: D102 (spelling kept for ABC) + return torch.optim.Adam(self.model.parameters(), lr=self.cfg.train.init_lr) + + def get_criterion(self): # noqa: D102 + return nn.MSELoss() + + def get_stream_dataloader(self): + assert self._cur_val_loader is not None + return self._cur_val_loader + + def get_train_dataloaders(self): + assert self._cur_train_loader is not None and self._cur_val_loader is not None + return self._cur_train_loader, self._cur_val_loader + + def get_hist_dataloaders( + self, + ) -> Tuple[Optional[DataLoader], Optional[DataLoader]]: + """Return loaders over all previously-seen time windows. + + Returns ``(None, None)`` until at least two windows have been served. + """ + if self.window_idx <= 1: + return None, None + + # Concatenate all history windows + hist_train_views: List[FELDataset] = [] + hist_val_views: List[FELDataset] = [] + + for X_w, y_w in self.history_windows: + n = X_w.shape[0] + n_val = max(1, int(n * _VAL_FRACTION)) + n_train = n - n_val + hist_train_views.append(FELDataset(X_w[:n_train], y_w[:n_train])) + hist_val_views.append(FELDataset(X_w[n_train:], y_w[n_train:])) + + ds_hist_train: ConcatDataset[Any] = ConcatDataset(hist_train_views) + ds_hist_val: ConcatDataset[Any] = ConcatDataset(hist_val_views) + + bs = self.cfg.train.batch_size + nw = self.cfg.train.num_workers + pin = torch.cuda.is_available() + + return ( + make_loader( + ds_hist_train, bs, shuffle=True, num_workers=nw, pin_memory=pin + ), + make_loader(ds_hist_val, bs, shuffle=False, num_workers=nw, pin_memory=pin), + ) + + def _load_active_file(self) -> None: + """Load the next pkl file into ``_active_windows`` / ``_active_timestamps``. + + Wraps around to the first file once all files have been consumed and + frees the previous file's tensors (those no longer referenced by + ``history_windows``) via an explicit GC pass. + """ + if self._file_idx >= len(self._window_file_paths): + print( + f"[SLAC-FEL] All {len(self._window_file_paths)} file(s) exhausted; " + "wrapping around to the first file." + ) + self._file_idx = 0 + + pkl_path = self._window_file_paths[self._file_idx] + print( + f"[SLAC-FEL] Loading file " + f"{self._file_idx + 1}/{len(self._window_file_paths)}: " + f"{os.path.basename(pkl_path)}" + ) + + X_w, y_w, idx = load_window_file( + pkl_path, + self.input_cols, + self.output_cols, + self.input_scaler, + self.output_scaler, + ) + self._active_windows = split_into_windows( + X_w, y_w, window_size=self.cfg.data.batch_size + ) + self._active_timestamps = split_timestamps(idx, window_size=self.cfg.data.batch_size) + self._active_window_idx = 0 + self._file_idx += 1 + gc.collect() + print( + f"[SLAC-FEL] Ready: {len(self._active_windows)} windows from " + f"{os.path.basename(pkl_path)} " + f"({X_w.shape[0]} samples, window_size={self.cfg.data.batch_size})" + ) + + def update_data_stream(self) -> None: + """Advance to the next chronological time window. + + In lazy mode each pkl file is loaded on demand when the current file's + windows are exhausted. In legacy mode all windows are already in memory. + """ + self._dispose_current_loaders() + + # ── Archive the *previous* window into history ──────────────────── + if self._current_window is not None: + self.history_windows.append(self._current_window) + self._current_window = None + # Evict oldest windows when cap is reached + while len(self.history_windows) > self.max_history_windows: + self.history_windows.pop(0) + + # ── Fetch the next window tensors ───────────────────────────────── + if self._lazy: + # Load a new file if we've consumed all windows from the current one. + if self._active_window_idx >= len(self._active_windows): + self._load_active_file() + + X_w, y_w = self._active_windows[self._active_window_idx] + ts = self._active_timestamps[self._active_window_idx] + self._active_window_idx += 1 + window_label = ( + f"{self._file_idx}/{len(self._window_file_paths)} " + f"(win {self._active_window_idx}/{len(self._active_windows)} in file)" + ) + else: + if self.window_idx >= self.num_windows: + print( + f"Warning: All {self.num_windows} time windows exhausted; " + "wrapping around to the first window." + ) + self.window_idx = 0 + + X_w, y_w = self.windows[self.window_idx] + ts = self.window_timestamps[self.window_idx] + window_label = f"{self.window_idx + 1}/{self.num_windows}" + + # Record timestamp range for this window + self.current_window_timerange = (str(ts[0]), str(ts[-1])) + + # Keep a reference so the next call can archive it without reloading + self._current_window = (X_w, y_w) + + # Train / val split (last _VAL_FRACTION chronologically) + n = X_w.shape[0] + n_val = max(1, int(n * _VAL_FRACTION)) + n_train = n - n_val + # Safety: ensure both splits have at least 1 sample + if n_train < 1: + n_train = max(1, n - 1) + n_val = n - n_train + + ds_train = FELDataset(X_w[:n_train], y_w[:n_train]) + ds_val = FELDataset(X_w[n_train:], y_w[n_train:]) + + bs = self.cfg.train.batch_size + nw = self.cfg.train.num_workers + pin = torch.cuda.is_available() + + self._cur_train_loader = make_loader( + ds_train, bs, shuffle=True, num_workers=nw, pin_memory=pin + ) + self._cur_val_loader = make_loader( + ds_val, bs, shuffle=False, num_workers=nw, pin_memory=pin + ) + + print( + f"[SLAC-FEL] Window {window_label}: " + f"{n_train} train / {n_val} val samples " + f"[{self.current_window_timerange[0]} → {self.current_window_timerange[1]}]" + ) + self.window_idx += 1 + + # --------------------------------------------------------------------- # + # Helpers + # --------------------------------------------------------------------- # + + @staticmethod + def _load_pretrained_direct( + path: str, input_size: int, output_size: int, device: str + ) -> FELNet: + """Load a pretrained checkpoint directly with no weight modifications. + + Supports two save formats produced by ``train_fel_model.py``: + + 1. A raw ``nn.Sequential`` (saved via ``torch.save(model.net, ...)``). + The Sequential is wrapped inside a new :class:`FELNet` whose + architecture is defined entirely by the checkpoint. + 2. A ``state_dict`` (plain ``dict``). The input dimension is inferred + from the first Linear layer's weight shape so that :class:`FELNet` + is constructed to match exactly, then ``load_state_dict`` is called + with ``strict=True``. + + Raises: + FileNotFoundError: If *path* does not exist. + RuntimeError: If the checkpoint shapes are incompatible with the + data (e.g. the data has a different number of input features + than the model expects). + """ + state = torch.load(path, map_location=device, weights_only=False) + + if isinstance(state, nn.Sequential): + # Format 1: checkpoint is the raw nn.Sequential + # Infer input/output dims from the first and last Linear layers + first_linear = next(m for m in state.modules() if isinstance(m, nn.Linear)) + last_linear = list(m for m in state.modules() if isinstance(m, nn.Linear))[ + -1 + ] + ckpt_in = first_linear.in_features + ckpt_out = last_linear.out_features + + if ckpt_in != input_size: + raise RuntimeError( + f"Pretrained model expects {ckpt_in} input features but " + f"the data has {input_size}. Ensure the feature_config.yml " + f"and scalers match the checkpoint." + ) + + model = FELNet(input_size=ckpt_in, output_size=ckpt_out) + model.net.load_state_dict(state.state_dict(), strict=True) + print(f"Loaded pretrained FEL model (nn.Sequential) from {path}") + + elif isinstance(state, dict): + # Format 2: checkpoint is a state_dict + # Strip torch.compile artefact from keys + sd = {k.replace("_orig_mod.", ""): v for k, v in state.items()} + + # Infer input dim from the first weight tensor + first_weight_key = next( + k for k in sd if k.endswith(".weight") and sd[k].dim() == 2 + ) + ckpt_in = sd[first_weight_key].shape[1] + + if ckpt_in != input_size: + raise RuntimeError( + f"Pretrained model expects {ckpt_in} input features but " + f"the data has {input_size}. Ensure the feature_config.yml " + f"and scalers match the checkpoint." + ) + + model = FELNet(input_size=ckpt_in, output_size=output_size) + model.load_state_dict(sd, strict=True) + print(f"Loaded pretrained FEL model (state_dict) from {path}") + + else: + raise TypeError( + f"Unexpected checkpoint type {type(state).__name__} from {path}. " + f"Expected nn.Sequential or state_dict." + ) + + return model + + def _dispose_current_loaders(self) -> None: + if self._cur_train_loader is not None: + del self._cur_train_loader + self._cur_train_loader = None + if self._cur_val_loader is not None: + del self._cur_val_loader + self._cur_val_loader = None + gc.collect() diff --git a/examples/slac_fel/model/feature_config.yml b/examples/slac_fel/model/feature_config.yml new file mode 100644 index 0000000..c62e96d --- /dev/null +++ b/examples/slac_fel/model/feature_config.yml @@ -0,0 +1,2743 @@ +device: cpu +input_transformers: +- resources/lcls_fel_input_scaler.pt +input_variables: + QUAD:LI21:211:BACT: + variable_class: TorchScalarVariable + default_value: 6.030075550079346 + read_only: false + value_range: + - 3.2707419395446777 + - 7.083395004272461 + unit: kG + QUAD:LI21:221:BACT: + variable_class: TorchScalarVariable + default_value: -0.22167986631393433 + read_only: false + value_range: + - -0.7424343228340149 + - 0.2432546466588974 + unit: kG + QUAD:LI21:243:BACT: + variable_class: TorchScalarVariable + default_value: -0.0006752711487933993 + read_only: false + value_range: + - -0.0007149674347601831 + - -0.0006156182498671114 + unit: kG-m + QUAD:LI21:251:BACT: + variable_class: TorchScalarVariable + default_value: -0.14767540991306305 + read_only: false + value_range: + - -0.7296757698059082 + - 0.25308719277381897 + unit: kG + QUAD:LI21:271:BACT: + variable_class: TorchScalarVariable + default_value: -6.2067694664001465 + read_only: false + value_range: + - -7.801762104034424 + - -4.287487983703613 + unit: kG + QUAD:LI21:335:BACT: + variable_class: TorchScalarVariable + default_value: -5.328253269195557 + read_only: false + value_range: + - -5.428651332855225 + - -5.321958065032959 + unit: kG + QUAD:LI24:713:BACT: + variable_class: TorchScalarVariable + default_value: 35.41676330566406 + read_only: false + value_range: + - 23.610397338867188 + - 35.42658615112305 + unit: kG + QUAD:LI24:740:BACT: + variable_class: TorchScalarVariable + default_value: -0.0005302699573803693 + read_only: false + value_range: + - -0.9996497631072998 + - 1.100592851638794 + unit: kG + QUAD:LI24:860:BACT: + variable_class: TorchScalarVariable + default_value: 0.4042496532201767 + read_only: false + value_range: + - -1.2825469970703125 + - 2.1002092361450195 + unit: kG + QUAD:LI24:892:BACT: + variable_class: TorchScalarVariable + default_value: -40.7828369140625 + read_only: false + value_range: + - -40.78890609741211 + - -27.187170028686523 + unit: kG + QUAD:LI24:902:BACT: + variable_class: TorchScalarVariable + default_value: 17.336612701416016 + read_only: false + value_range: + - 11.556938171386719 + - 17.337291717529297 + unit: kG + QUAD:CLTH:140:BACT: + variable_class: TorchScalarVariable + default_value: -21.54228973388672 + read_only: false + value_range: + - -21.91339683532715 + - -21.316192626953125 + unit: kG + QUAD:CLTH:170:BACT: + variable_class: TorchScalarVariable + default_value: 11.69263744354248 + read_only: false + value_range: + - 11.570372581481934 + - 11.913098335266113 + unit: kG + QUAD:BSYH:445:BACT: + variable_class: TorchScalarVariable + default_value: 39.05901336669922 + read_only: false + value_range: + - 38.6727409362793 + - 39.68069076538086 + unit: kG + QUAD:LTUH:285:BACT: + variable_class: TorchScalarVariable + default_value: -68.72994232177734 + read_only: false + value_range: + - -69.82388305664062 + - -58.627498626708984 + unit: kG + QUAD:LTUH:295:BACT: + variable_class: TorchScalarVariable + default_value: -68.79946899414062 + read_only: false + value_range: + - -69.89398956298828 + - -62.51885986328125 + unit: kG + QUAD:LTUH:385:BACT: + variable_class: TorchScalarVariable + default_value: -68.75484466552734 + read_only: false + value_range: + - -69.84967803955078 + - -58.85036849975586 + unit: kG + QUAD:LTUH:395:BACT: + variable_class: TorchScalarVariable + default_value: -68.72314453125 + read_only: false + value_range: + - -69.81681823730469 + - -58.62387466430664 + unit: kG + QUAD:LTUH:440:BACT: + variable_class: TorchScalarVariable + default_value: -2.281162738800049 + read_only: false + value_range: + - -5.002049922943115 + - 4.872499942779541 + unit: kG + QUAD:LTUH:460:BACT: + variable_class: TorchScalarVariable + default_value: -0.8954360485076904 + read_only: false + value_range: + - -4.96889591217041 + - 4.391031742095947 + unit: kG + QUAD:LTUH:485:BACT: + variable_class: TorchScalarVariable + default_value: -68.74945831298828 + read_only: false + value_range: + - -69.84385681152344 + - -58.85063934326172 + unit: kG + QUAD:LTUH:495:BACT: + variable_class: TorchScalarVariable + default_value: -68.73614501953125 + read_only: false + value_range: + - -69.82984924316406 + - -58.84379959106445 + unit: kG + QUAD:LTUH:585:BACT: + variable_class: TorchScalarVariable + default_value: -68.71878051757812 + read_only: false + value_range: + - -69.81290435791016 + - -58.6135139465332 + unit: kG + QUAD:LTUH:595:BACT: + variable_class: TorchScalarVariable + default_value: -68.78495025634766 + read_only: false + value_range: + - -69.88025665283203 + - -58.66910171508789 + unit: kG + QUAD:DMPH:300:BACT: + variable_class: TorchScalarVariable + default_value: 31.637060165405273 + read_only: false + value_range: + - 27.602787017822266 + - 32.03553771972656 + unit: kG + QUAD:DMPH:380:BACT: + variable_class: TorchScalarVariable + default_value: -25.045557022094727 + read_only: false + value_range: + - -25.263795852661133 + - -22.069438934326172 + unit: kG + QUAD:DMPH:500:BACT: + variable_class: TorchScalarVariable + default_value: -23.642780303955078 + read_only: false + value_range: + - -24.01908302307129 + - -23.397724151611328 + unit: kG + QUAD:DMPH:600:BACT: + variable_class: TorchScalarVariable + default_value: -23.648740768432617 + read_only: false + value_range: + - -24.024883270263672 + - -20.174333572387695 + unit: kG + QUAD:BSYH:465:BACT: + variable_class: TorchScalarVariable + default_value: -35.822792053222656 + read_only: false + value_range: + - -36.393035888671875 + - -31.709379196166992 + unit: kG + QUAD:BSYH:640:BACT: + variable_class: TorchScalarVariable + default_value: 27.010040283203125 + read_only: false + value_range: + - 17.822553634643555 + - 27.48724365234375 + unit: kG + QUAD:BSYH:735:BACT: + variable_class: TorchScalarVariable + default_value: -18.543298721313477 + read_only: false + value_range: + - -18.838489532470703 + - -17.74009132385254 + unit: kG + QUAD:BSYH:910:BACT: + variable_class: TorchScalarVariable + default_value: 17.757822036743164 + read_only: false + value_range: + - 15.264426231384277 + - 18.11552619934082 + unit: kG + QUAD:LTUH:110:BACT: + variable_class: TorchScalarVariable + default_value: -55.096763610839844 + read_only: false + value_range: + - -55.97401428222656 + - -47.1643180847168 + unit: kG + QUAD:LTUH:120:BACT: + variable_class: TorchScalarVariable + default_value: 38.62837219238281 + read_only: false + value_range: + - 33.06697463989258 + - 39.2436637878418 + unit: kG + QUAD:LTUH:180:BACT: + variable_class: TorchScalarVariable + default_value: 116.76960754394531 + read_only: false + value_range: + - 99.60626220703125 + - 118.62828826904297 + unit: kG + QUAD:LTUH:190:BACT: + variable_class: TorchScalarVariable + default_value: -111.29957580566406 + read_only: false + value_range: + - -113.0712661743164 + - -95.2757797241211 + unit: kG + QUAD:LTUH:130:BACT: + variable_class: TorchScalarVariable + default_value: -68.94131469726562 + read_only: false + value_range: + - -70.038818359375 + - -59.015647888183594 + unit: kG + QUAD:LTUH:150:BACT: + variable_class: TorchScalarVariable + default_value: 68.9623794555664 + read_only: false + value_range: + - 58.82075119018555 + - 70.06075286865234 + unit: kG + QUAD:LTUH:170:BACT: + variable_class: TorchScalarVariable + default_value: -69.00261688232422 + read_only: false + value_range: + - -70.10100555419922 + - -58.86089324951172 + unit: kG + QUAD:LTUH:350:BACT: + variable_class: TorchScalarVariable + default_value: 49.77518844604492 + read_only: false + value_range: + - 42.46773910522461 + - 50.56687545776367 + unit: kG + QUAD:LTUH:450:BACT: + variable_class: TorchScalarVariable + default_value: 49.589073181152344 + read_only: false + value_range: + - 42.292335510253906 + - 50.37962341308594 + unit: kG + QUAD:LTUH:550:BACT: + variable_class: TorchScalarVariable + default_value: 49.23419952392578 + read_only: false + value_range: + - 41.99699020385742 + - 50.01803970336914 + unit: kG + QUAD:LTUH:290:BACT: + variable_class: TorchScalarVariable + default_value: 137.0901641845703 + read_only: false + value_range: + - 135.7318115234375 + - 139.2747802734375 + unit: kG + QUAD:LTUH:390:BACT: + variable_class: TorchScalarVariable + default_value: 137.2481231689453 + read_only: false + value_range: + - 117.06791687011719 + - 139.43606567382812 + unit: kG + QUAD:LTUH:490:BACT: + variable_class: TorchScalarVariable + default_value: 136.9311065673828 + read_only: false + value_range: + - 117.22069549560547 + - 139.11268615722656 + unit: kG + QUAD:LTUH:590:BACT: + variable_class: TorchScalarVariable + default_value: 137.08688354492188 + read_only: false + value_range: + - 117.35442352294922 + - 139.27085876464844 + unit: kG + QUAD:LTUH:250:BACT: + variable_class: TorchScalarVariable + default_value: 49.557777404785156 + read_only: false + value_range: + - 42.422725677490234 + - 50.346900939941406 + unit: kG + QUAD:LTUH:620:BACT: + variable_class: TorchScalarVariable + default_value: -45.03540802001953 + read_only: false + value_range: + - -54.6842155456543 + - -36.9230842590332 + unit: kG + QUAD:LTUH:640:BACT: + variable_class: TorchScalarVariable + default_value: 49.21936798095703 + read_only: false + value_range: + - 37.15061569213867 + - 58.81219482421875 + unit: kG + QUAD:LTUH:660:BACT: + variable_class: TorchScalarVariable + default_value: -69.18975067138672 + read_only: false + value_range: + - -77.35741424560547 + - -57.796470642089844 + unit: kG + QUAD:LTUH:680:BACT: + variable_class: TorchScalarVariable + default_value: 47.888877868652344 + read_only: false + value_range: + - 34.01578903198242 + - 62.26810073852539 + unit: kG + QUAD:LTUH:720:BACT: + variable_class: TorchScalarVariable + default_value: 15.408587455749512 + read_only: false + value_range: + - 13.143723487854004 + - 15.75007438659668 + unit: kG-m + QUAD:LTUH:730:BACT: + variable_class: TorchScalarVariable + default_value: -15.387463569641113 + read_only: false + value_range: + - -15.728804588317871 + - -13.961954116821289 + unit: kG + QUAD:LTUH:740:BACT: + variable_class: TorchScalarVariable + default_value: 15.418059349060059 + read_only: false + value_range: + - 13.198366165161133 + - 15.759831428527832 + unit: kG + QUAD:LTUH:750:BACT: + variable_class: TorchScalarVariable + default_value: -15.42436695098877 + read_only: false + value_range: + - -15.765908241271973 + - -13.997550010681152 + unit: kG + QUAD:LTUH:760:BACT: + variable_class: TorchScalarVariable + default_value: 15.395170211791992 + read_only: false + value_range: + - 13.13112735748291 + - 15.736696243286133 + unit: kG + QUAD:LTUH:770:BACT: + variable_class: TorchScalarVariable + default_value: -15.381906509399414 + read_only: false + value_range: + - -15.722893714904785 + - -13.120884895324707 + unit: kG + QUAD:LTUH:820:BACT: + variable_class: TorchScalarVariable + default_value: 29.859907150268555 + read_only: false + value_range: + - 21.836652755737305 + - 31.44784164428711 + unit: kG + QUAD:LTUH:840:BACT: + variable_class: TorchScalarVariable + default_value: -26.527732849121094 + read_only: false + value_range: + - -28.012258529663086 + - -24.921369552612305 + unit: kG + QUAD:LTUH:860:BACT: + variable_class: TorchScalarVariable + default_value: 18.940080642700195 + read_only: false + value_range: + - 17.5400333404541 + - 22.54979133605957 + unit: kG + QUAD:LTUH:880:BACT: + variable_class: TorchScalarVariable + default_value: -19.915769577026367 + read_only: false + value_range: + - -20.96946907043457 + - -19.381351470947266 + unit: kG + QUAD:UNDH:1380:BACT: + variable_class: TorchScalarVariable + default_value: 30.00006675720215 + read_only: false + value_range: + - 29.987991333007812 + - 30.014312744140625 + unit: kG + QUAD:UNDH:1480:BACT: + variable_class: TorchScalarVariable + default_value: -29.999717712402344 + read_only: false + value_range: + - -30.0033016204834 + - -29.99729347229004 + unit: kG + QUAD:UNDH:1580:BACT: + variable_class: TorchScalarVariable + default_value: 30.00047492980957 + read_only: false + value_range: + - 29.99797248840332 + - 30.002107620239258 + unit: kG + QUAD:UNDH:1680:BACT: + variable_class: TorchScalarVariable + default_value: -30.000215530395508 + read_only: false + value_range: + - -30.003171920776367 + - -29.9971866607666 + unit: kG + QUAD:UNDH:1780:BACT: + variable_class: TorchScalarVariable + default_value: 30.000083923339844 + read_only: false + value_range: + - 29.997570037841797 + - 30.00188636779785 + unit: kG + QUAD:UNDH:1880:BACT: + variable_class: TorchScalarVariable + default_value: -29.999813079833984 + read_only: false + value_range: + - -30.001985549926758 + - -29.997087478637695 + unit: kG + QUAD:UNDH:1980:BACT: + variable_class: TorchScalarVariable + default_value: 29.999773025512695 + read_only: false + value_range: + - 29.994216918945312 + - 30.006370544433594 + unit: kG + QUAD:UNDH:2080:BACT: + variable_class: TorchScalarVariable + default_value: -29.999937057495117 + read_only: false + value_range: + - -30.00302505493164 + - -29.997581481933594 + unit: kG + QUAD:UNDH:2180:BACT: + variable_class: TorchScalarVariable + default_value: 30.000242233276367 + read_only: false + value_range: + - 29.997495651245117 + - 30.0020809173584 + unit: kG + QUAD:UNDH:2280:BACT: + variable_class: TorchScalarVariable + default_value: -29.999507904052734 + read_only: false + value_range: + - -30.002283096313477 + - -29.997661590576172 + unit: kG + QUAD:UNDH:2380:BACT: + variable_class: TorchScalarVariable + default_value: 30.000028610229492 + read_only: false + value_range: + - 29.99715232849121 + - 30.00275421142578 + unit: kG + QUAD:UNDH:2480:BACT: + variable_class: TorchScalarVariable + default_value: -29.99951934814453 + read_only: false + value_range: + - -30.002347946166992 + - -29.99751853942871 + unit: kG + QUAD:UNDH:2580:BACT: + variable_class: TorchScalarVariable + default_value: 29.9998779296875 + read_only: false + value_range: + - 29.997821807861328 + - 30.002620697021484 + unit: kG + QUAD:UNDH:2680:BACT: + variable_class: TorchScalarVariable + default_value: -29.99985694885254 + read_only: false + value_range: + - -30.001996994018555 + - -29.997228622436523 + unit: kG + QUAD:UNDH:2780:BACT: + variable_class: TorchScalarVariable + default_value: 30.000137329101562 + read_only: false + value_range: + - 29.99728012084961 + - 30.001819610595703 + unit: kG + QUAD:UNDH:2880:BACT: + variable_class: TorchScalarVariable + default_value: -29.999929428100586 + read_only: false + value_range: + - -30.013427734375 + - -29.995588302612305 + unit: kG + QUAD:UNDH:2980:BACT: + variable_class: TorchScalarVariable + default_value: 29.999967575073242 + read_only: false + value_range: + - 29.99782371520996 + - 30.003271102905273 + unit: kG + QUAD:UNDH:3080:BACT: + variable_class: TorchScalarVariable + default_value: -30.000049591064453 + read_only: false + value_range: + - -30.00230598449707 + - -29.997459411621094 + unit: kG + QUAD:UNDH:3180:BACT: + variable_class: TorchScalarVariable + default_value: 30.000024795532227 + read_only: false + value_range: + - 29.996400833129883 + - 30.003795623779297 + unit: kG + QUAD:UNDH:3280:BACT: + variable_class: TorchScalarVariable + default_value: -29.999662399291992 + read_only: false + value_range: + - -30.002262115478516 + - -29.99651336669922 + unit: kG + QUAD:UNDH:3380:BACT: + variable_class: TorchScalarVariable + default_value: 30.000160217285156 + read_only: false + value_range: + - 29.997285842895508 + - 30.003522872924805 + unit: kG + QUAD:UNDH:3480:BACT: + variable_class: TorchScalarVariable + default_value: -29.999841690063477 + read_only: false + value_range: + - -30.002470016479492 + - -29.99711036682129 + unit: kG + QUAD:UNDH:3580:BACT: + variable_class: TorchScalarVariable + default_value: 30.000520706176758 + read_only: false + value_range: + - 29.99619483947754 + - 30.004093170166016 + unit: kG + QUAD:UNDH:3680:BACT: + variable_class: TorchScalarVariable + default_value: -29.999616622924805 + read_only: false + value_range: + - -30.003984451293945 + - -29.996126174926758 + unit: kG + QUAD:UNDH:3780:BACT: + variable_class: TorchScalarVariable + default_value: 30.0001277923584 + read_only: false + value_range: + - 29.997133255004883 + - 30.00319480895996 + unit: kG + QUAD:UNDH:3880:BACT: + variable_class: TorchScalarVariable + default_value: -30.000167846679688 + read_only: false + value_range: + - -30.002561569213867 + - -29.99714469909668 + unit: kG + QUAD:UNDH:3980:BACT: + variable_class: TorchScalarVariable + default_value: 30.000091552734375 + read_only: false + value_range: + - 29.994361877441406 + - 30.00579071044922 + unit: kG + QUAD:UNDH:4080:BACT: + variable_class: TorchScalarVariable + default_value: -30.00008773803711 + read_only: false + value_range: + - -30.006589889526367 + - -29.99155616760254 + unit: kG + QUAD:UNDH:4180:BACT: + variable_class: TorchScalarVariable + default_value: 29.999652862548828 + read_only: false + value_range: + - 29.99405860900879 + - 30.004716873168945 + unit: kG + QUAD:UNDH:4280:BACT: + variable_class: TorchScalarVariable + default_value: -29.99981689453125 + read_only: false + value_range: + - -30.005260467529297 + - -29.993431091308594 + unit: kG + QUAD:UNDH:4380:BACT: + variable_class: TorchScalarVariable + default_value: 30.00043296813965 + read_only: false + value_range: + - 29.99149513244629 + - 30.00352668762207 + unit: kG + QUAD:UNDH:4480:BACT: + variable_class: TorchScalarVariable + default_value: -29.9997501373291 + read_only: false + value_range: + - -30.007246017456055 + - -29.97597885131836 + unit: kG + QUAD:UNDH:4580:BACT: + variable_class: TorchScalarVariable + default_value: 30.000293731689453 + read_only: false + value_range: + - 29.99628448486328 + - 30.009353637695312 + unit: kG + QUAD:UNDH:4680:BACT: + variable_class: TorchScalarVariable + default_value: -40.96110916137695 + read_only: false + value_range: + - -41.023189544677734 + - -39.94914245605469 + unit: kG + QUAD:LI21:201:BACT: + variable_class: TorchScalarVariable + default_value: -7.023688793182373 + read_only: false + value_range: + - -8.62252426147461 + - -2.9184024333953857 + unit: kG + QUAD:LI21:301:BACT: + variable_class: TorchScalarVariable + default_value: -0.1838965117931366 + read_only: false + value_range: + - -0.1839919537305832 + - -0.18380530178546906 + unit: kG + QUAD:LI24:701:BACT: + variable_class: TorchScalarVariable + default_value: -20.95453453063965 + read_only: false + value_range: + - -20.955387115478516 + - -13.969274520874023 + unit: kG + QUAD:LI21:401:BACT: + variable_class: TorchScalarVariable + default_value: 1.2579798698425293 + read_only: false + value_range: + - 0.807345986366272 + - 1.2974697351455688 + unit: kG + QUAD:LI21:501:BACT: + variable_class: TorchScalarVariable + default_value: -1.5395961999893188 + read_only: false + value_range: + - -1.6181596517562866 + - -0.9817104935646057 + unit: kG + QUAD:LI21:601:BACT: + variable_class: TorchScalarVariable + default_value: 1.765993356704712 + read_only: false + value_range: + - 1.2652913331985474 + - 1.8709330558776855 + unit: kG + QUAD:LI21:701:BACT: + variable_class: TorchScalarVariable + default_value: -2.207437038421631 + read_only: false + value_range: + - -2.3438212871551514 + - -1.5526777505874634 + unit: kG + QUAD:LI21:801:BACT: + variable_class: TorchScalarVariable + default_value: 2.7435076236724854 + read_only: false + value_range: + - 1.8732759952545166 + - 2.8998312950134277 + unit: kG + QUAD:LI21:901:BACT: + variable_class: TorchScalarVariable + default_value: -3.2224531173706055 + read_only: false + value_range: + - -3.4157297611236572 + - -2.152127742767334 + unit: kG + QUAD:LI22:201:BACT: + variable_class: TorchScalarVariable + default_value: 3.124361753463745 + read_only: false + value_range: + - 2.0494790077209473 + - 3.560842275619507 + unit: kG + QUAD:LI22:301:BACT: + variable_class: TorchScalarVariable + default_value: -4.022610187530518 + read_only: false + value_range: + - -4.522728443145752 + - -2.434352159500122 + unit: kG + QUAD:LI22:401:BACT: + variable_class: TorchScalarVariable + default_value: 4.441101551055908 + read_only: false + value_range: + - 2.675431728363037 + - 4.936089992523193 + unit: kG + QUAD:LI22:501:BACT: + variable_class: TorchScalarVariable + default_value: -5.158733367919922 + read_only: false + value_range: + - -5.76203727722168 + - -3.146383047103882 + unit: kG + QUAD:LI22:601:BACT: + variable_class: TorchScalarVariable + default_value: 6.213307857513428 + read_only: false + value_range: + - 3.7713868618011475 + - 6.909282684326172 + unit: kG + QUAD:LI22:701:BACT: + variable_class: TorchScalarVariable + default_value: -6.612524509429932 + read_only: false + value_range: + - -7.327755451202393 + - -3.9155988693237305 + unit: kG + QUAD:LI22:801:BACT: + variable_class: TorchScalarVariable + default_value: 7.286632537841797 + read_only: false + value_range: + - 4.332723140716553 + - 8.138812065124512 + unit: kG + QUAD:LI22:901:BACT: + variable_class: TorchScalarVariable + default_value: -6.613517761230469 + read_only: false + value_range: + - -7.293863296508789 + - -3.9421448707580566 + unit: kG + QUAD:LI23:201:BACT: + variable_class: TorchScalarVariable + default_value: 6.20369815826416 + read_only: false + value_range: + - 3.6991350650787354 + - 6.829252243041992 + unit: kG + QUAD:LI23:301:BACT: + variable_class: TorchScalarVariable + default_value: -6.603721618652344 + read_only: false + value_range: + - -7.275477409362793 + - -3.937861680984497 + unit: kG + QUAD:LI23:401:BACT: + variable_class: TorchScalarVariable + default_value: 6.099545001983643 + read_only: false + value_range: + - 3.627194404602051 + - 6.7084641456604 + unit: kG + QUAD:LI23:501:BACT: + variable_class: TorchScalarVariable + default_value: -6.796770095825195 + read_only: false + value_range: + - -7.48622465133667 + - -4.047740936279297 + unit: kG + QUAD:LI23:601:BACT: + variable_class: TorchScalarVariable + default_value: 7.231057643890381 + read_only: false + value_range: + - 4.294067859649658 + - 7.962332725524902 + unit: kG + QUAD:LI23:701:BACT: + variable_class: TorchScalarVariable + default_value: -8.0819730758667 + read_only: false + value_range: + - -8.897425651550293 + - -4.805255889892578 + unit: kG + QUAD:LI23:801:BACT: + variable_class: TorchScalarVariable + default_value: 9.420169830322266 + read_only: false + value_range: + - 5.585941314697266 + - 10.347235679626465 + unit: kG + QUAD:LI23:901:BACT: + variable_class: TorchScalarVariable + default_value: -9.803484916687012 + read_only: false + value_range: + - -10.765859603881836 + - -5.8162946701049805 + unit: kG + QUAD:LI24:201:BACT: + variable_class: TorchScalarVariable + default_value: 11.029939651489258 + read_only: false + value_range: + - 6.811530590057373 + - 11.965710639953613 + unit: kG + QUAD:LI24:301:BACT: + variable_class: TorchScalarVariable + default_value: -12.313459396362305 + read_only: false + value_range: + - -13.151202201843262 + - -7.702062129974365 + unit: kG + QUAD:LI24:401:BACT: + variable_class: TorchScalarVariable + default_value: 14.647502899169922 + read_only: false + value_range: + - 9.044830322265625 + - 15.84463119506836 + unit: kG + QUAD:LI24:501:BACT: + variable_class: TorchScalarVariable + default_value: -14.135113716125488 + read_only: false + value_range: + - -14.76771068572998 + - -9.022802352905273 + unit: kG + QUAD:LI24:601:BACT: + variable_class: TorchScalarVariable + default_value: 9.412679672241211 + read_only: false + value_range: + - 6.159085750579834 + - 9.750685691833496 + unit: kG + QUAD:LI24:702:BACT: + variable_class: TorchScalarVariable + default_value: -20.95453453063965 + read_only: false + value_range: + - -20.955387115478516 + - -13.969274520874023 + unit: kG + QUAD:LI24:901:BACT: + variable_class: TorchScalarVariable + default_value: 17.336612701416016 + read_only: false + value_range: + - 11.556938171386719 + - 17.337291717529297 + unit: kG + QUAD:LI25:201:BACT: + variable_class: TorchScalarVariable + default_value: 11.577884674072266 + read_only: false + value_range: + - 7.857098579406738 + - 11.652408599853516 + unit: kG + QUAD:LI25:301:BACT: + variable_class: TorchScalarVariable + default_value: -8.047331809997559 + read_only: false + value_range: + - -8.348615646362305 + - -5.753606796264648 + unit: kG + QUAD:LI25:401:BACT: + variable_class: TorchScalarVariable + default_value: 7.526213645935059 + read_only: false + value_range: + - 5.471653461456299 + - 7.811742782592773 + unit: kG + QUAD:LI25:501:BACT: + variable_class: TorchScalarVariable + default_value: -7.366200923919678 + read_only: false + value_range: + - -7.65356969833374 + - -5.456874370574951 + unit: kG + QUAD:LI25:601:BACT: + variable_class: TorchScalarVariable + default_value: 7.2868452072143555 + read_only: false + value_range: + - 5.396615982055664 + - 7.85613489151001 + unit: kG + QUAD:LI25:701:BACT: + variable_class: TorchScalarVariable + default_value: -7.611361503601074 + read_only: false + value_range: + - -8.188580513000488 + - -5.722440242767334 + unit: kG + QUAD:LI25:801:BACT: + variable_class: TorchScalarVariable + default_value: 8.196151733398438 + read_only: false + value_range: + - 5.894128799438477 + - 8.821040153503418 + unit: kG + QUAD:LI25:901:BACT: + variable_class: TorchScalarVariable + default_value: -8.082236289978027 + read_only: false + value_range: + - -8.701128005981445 + - -5.903156280517578 + unit: kG + QUAD:LI26:201:BACT: + variable_class: TorchScalarVariable + default_value: 8.905728340148926 + read_only: false + value_range: + - 0.19921469688415527 + - 15.584007263183594 + unit: kG + QUAD:LI26:301:BACT: + variable_class: TorchScalarVariable + default_value: -8.64865493774414 + read_only: false + value_range: + - -15.154759407043457 + - -0.20027148723602295 + unit: kG + QUAD:LI26:401:BACT: + variable_class: TorchScalarVariable + default_value: 10.174625396728516 + read_only: false + value_range: + - 0.20270586013793945 + - 19.882917404174805 + unit: kG + QUAD:LI26:501:BACT: + variable_class: TorchScalarVariable + default_value: -9.74402904510498 + read_only: false + value_range: + - -19.614015579223633 + - -3.0157687664031982 + unit: kG + QUAD:LI26:601:BACT: + variable_class: TorchScalarVariable + default_value: 11.1459379196167 + read_only: false + value_range: + - 5.45085334777832 + - 20.66390609741211 + unit: kG + QUAD:LI26:701:BACT: + variable_class: TorchScalarVariable + default_value: -10.12381362915039 + read_only: false + value_range: + - -18.370912551879883 + - -5.957860946655273 + unit: kG + QUAD:LI26:801:BACT: + variable_class: TorchScalarVariable + default_value: 11.111616134643555 + read_only: false + value_range: + - 4.757839679718018 + - 17.604393005371094 + unit: kG + QUAD:LI26:901:BACT: + variable_class: TorchScalarVariable + default_value: -6.741613388061523 + read_only: false + value_range: + - -14.644014358520508 + - -1.6580276489257812 + unit: kG + QUAD:LI27:201:BACT: + variable_class: TorchScalarVariable + default_value: 10.094886779785156 + read_only: false + value_range: + - 8.172499656677246 + - 11.214076042175293 + unit: kG + QUAD:LI27:301:BACT: + variable_class: TorchScalarVariable + default_value: -10.549817085266113 + read_only: false + value_range: + - -11.98211669921875 + - -8.845065116882324 + unit: kG + QUAD:LI27:401:BACT: + variable_class: TorchScalarVariable + default_value: 10.561673164367676 + read_only: false + value_range: + - 8.908507347106934 + - 11.973215103149414 + unit: kG + QUAD:LI27:501:BACT: + variable_class: TorchScalarVariable + default_value: -10.882133483886719 + read_only: false + value_range: + - -12.33036994934082 + - -9.249858856201172 + unit: kG + QUAD:LI27:601:BACT: + variable_class: TorchScalarVariable + default_value: 11.223258018493652 + read_only: false + value_range: + - 9.59332275390625 + - 12.69169807434082 + unit: kG + QUAD:LI27:701:BACT: + variable_class: TorchScalarVariable + default_value: -11.427587509155273 + read_only: false + value_range: + - -12.907695770263672 + - -9.589673042297363 + unit: kG + QUAD:LI27:801:BACT: + variable_class: TorchScalarVariable + default_value: 12.065448760986328 + read_only: false + value_range: + - 9.860147476196289 + - 13.635490417480469 + unit: kG + QUAD:LI27:901:BACT: + variable_class: TorchScalarVariable + default_value: -11.866600036621094 + read_only: false + value_range: + - -13.421582221984863 + - -9.440723419189453 + unit: kG + QUAD:LI28:201:BACT: + variable_class: TorchScalarVariable + default_value: 11.9609375 + read_only: false + value_range: + - 9.472262382507324 + - 13.893677711486816 + unit: kG + QUAD:LI28:301:BACT: + variable_class: TorchScalarVariable + default_value: -12.753613948822021 + read_only: false + value_range: + - -14.007567405700684 + - -10.167932510375977 + unit: kG + QUAD:LI28:401:BACT: + variable_class: TorchScalarVariable + default_value: 12.519538879394531 + read_only: false + value_range: + - 6.579861164093018 + - 13.932640075683594 + unit: kG + QUAD:LI28:501:BACT: + variable_class: TorchScalarVariable + default_value: -12.634086608886719 + read_only: false + value_range: + - -14.213104248046875 + - -0.19370371103286743 + unit: kG + QUAD:LI28:601:BACT: + variable_class: TorchScalarVariable + default_value: 12.7022066116333 + read_only: false + value_range: + - 3.7928245067596436 + - 14.216349601745605 + unit: kG + QUAD:LI28:701:BACT: + variable_class: TorchScalarVariable + default_value: -12.894618034362793 + read_only: false + value_range: + - -14.55186939239502 + - -0.1930026412010193 + unit: kG + QUAD:LI28:801:BACT: + variable_class: TorchScalarVariable + default_value: 13.278484344482422 + read_only: false + value_range: + - 4.67686128616333 + - 14.962789535522461 + unit: kG + QUAD:LI28:901:BACT: + variable_class: TorchScalarVariable + default_value: -12.830718040466309 + read_only: false + value_range: + - -15.136317253112793 + - -10.62944507598877 + unit: kG + QUAD:LI29:201:BACT: + variable_class: TorchScalarVariable + default_value: 12.873763084411621 + read_only: false + value_range: + - 11.162287712097168 + - 14.436914443969727 + unit: kG + QUAD:LI29:301:BACT: + variable_class: TorchScalarVariable + default_value: -13.665643692016602 + read_only: false + value_range: + - -15.086411476135254 + - -11.917793273925781 + unit: kG + QUAD:LI29:401:BACT: + variable_class: TorchScalarVariable + default_value: 13.422246932983398 + read_only: false + value_range: + - 11.776640892028809 + - 14.72998332977295 + unit: kG + QUAD:LI29:501:BACT: + variable_class: TorchScalarVariable + default_value: -13.534170150756836 + read_only: false + value_range: + - -14.724255561828613 + - -12.009578704833984 + unit: kG + QUAD:LI29:601:BACT: + variable_class: TorchScalarVariable + default_value: 13.623615264892578 + read_only: false + value_range: + - 12.262092590332031 + - 14.792816162109375 + unit: kG + QUAD:LI29:701:BACT: + variable_class: TorchScalarVariable + default_value: -13.72568130493164 + read_only: false + value_range: + - -14.942991256713867 + - -12.557027816772461 + unit: kG + QUAD:LI29:801:BACT: + variable_class: TorchScalarVariable + default_value: 14.187458992004395 + read_only: false + value_range: + - 13.038265228271484 + - 15.494569778442383 + unit: kG + QUAD:LI29:901:BACT: + variable_class: TorchScalarVariable + default_value: -13.750750541687012 + read_only: false + value_range: + - -14.965811729431152 + - -12.749227523803711 + unit: kG + QUAD:LI30:201:BACT: + variable_class: TorchScalarVariable + default_value: 13.900449752807617 + read_only: false + value_range: + - 13.056685447692871 + - 15.010658264160156 + unit: kG + QUAD:LI30:301:BACT: + variable_class: TorchScalarVariable + default_value: -14.54440689086914 + read_only: false + value_range: + - -15.614253044128418 + - -13.801875114440918 + unit: kG + QUAD:LI30:401:BACT: + variable_class: TorchScalarVariable + default_value: 14.226929664611816 + read_only: false + value_range: + - 13.69515609741211 + - 15.213142395019531 + unit: kG + QUAD:LI30:501:BACT: + variable_class: TorchScalarVariable + default_value: -14.464568138122559 + read_only: false + value_range: + - -15.207056045532227 + - -13.957844734191895 + unit: kG + QUAD:LI30:601:BACT: + variable_class: TorchScalarVariable + default_value: 14.611154556274414 + read_only: false + value_range: + - 14.037918090820312 + - 15.212827682495117 + unit: kG + QUAD:LI30:701:BACT: + variable_class: TorchScalarVariable + default_value: -14.73243236541748 + read_only: false + value_range: + - -15.229225158691406 + - -14.343217849731445 + unit: kG + QUAD:LI30:801:BACT: + variable_class: TorchScalarVariable + default_value: 18.059956550598145 + read_only: false + value_range: + - 17.74070930480957 + - 18.47154426574707 + unit: kG + QUAD:IN20:631:BACT: + variable_class: TorchScalarVariable + default_value: 7.1585211753845215 + read_only: false + value_range: + - 7.153985977172852 + - 7.1621880531311035 + unit: kG + QUAD:IN20:651:BACT: + variable_class: TorchScalarVariable + default_value: -5.918021202087402 + read_only: false + value_range: + - -5.921041488647461 + - -5.817676544189453 + unit: kG + QUAD:IN20:731:BACT: + variable_class: TorchScalarVariable + default_value: 10.907441139221191 + read_only: false + value_range: + - 10.724224090576172 + - 10.911758422851562 + unit: kG + QUAD:IN20:771:BACT: + variable_class: TorchScalarVariable + default_value: -3.469513177871704 + read_only: false + value_range: + - -3.473116636276245 + - -3.41040301322937 + unit: kG + QUAD:IN20:781:BACT: + variable_class: TorchScalarVariable + default_value: 6.631329536437988 + read_only: false + value_range: + - 6.627516269683838 + - 6.637024402618408 + unit: kG + QUAD:LI21:131:BACT: + variable_class: TorchScalarVariable + default_value: -2.4340152740478516 + read_only: false + value_range: + - -2.4352543354034424 + - -2.4310882091522217 + unit: kG + QUAD:LI21:161:BACT: + variable_class: TorchScalarVariable + default_value: 1.3784031867980957 + read_only: false + value_range: + - 1.3774464130401611 + - 1.379645586013794 + unit: kG + QUAD:LI21:278:BACT: + variable_class: TorchScalarVariable + default_value: 7.573178768157959 + read_only: false + value_range: + - 5.390344142913818 + - 10.096536636352539 + unit: kG + QUAD:LI21:315:BACT: + variable_class: TorchScalarVariable + default_value: 5.590969562530518 + read_only: false + value_range: + - 5.388442516326904 + - 5.799100399017334 + unit: kG + SOLN:IN20:121:BACT: + variable_class: TorchScalarVariable + default_value: 0.4843061864376068 + read_only: false + value_range: + - 0.4750012755393982 + - 0.4898073077201843 + unit: kG-m + SOLN:IN20:311:BACT: + variable_class: TorchScalarVariable + default_value: -0.000622840307187289 + read_only: false + value_range: + - -0.0006276898202486336 + - -0.000619793776422739 + unit: kG-m + QUAD:IN20:121:BACT: + variable_class: TorchScalarVariable + default_value: 0.0037149195559322834 + read_only: false + value_range: + - -0.012858917005360126 + - 0.014996109530329704 + unit: kG + QUAD:IN20:122:BACT: + variable_class: TorchScalarVariable + default_value: 0.004051219206303358 + read_only: false + value_range: + - -0.011106831952929497 + - 0.014521649107336998 + unit: kG + QUAD:IN20:361:BACT: + variable_class: TorchScalarVariable + default_value: -3.630293846130371 + read_only: false + value_range: + - -4.05964994430542 + - -3.170670747756958 + unit: kG + QUAD:IN20:371:BACT: + variable_class: TorchScalarVariable + default_value: 2.7550361156463623 + read_only: false + value_range: + - 2.470209836959839 + - 3.0689961910247803 + unit: kG + QUAD:IN20:425:BACT: + variable_class: TorchScalarVariable + default_value: -1.6361221075057983 + read_only: false + value_range: + - -3.1995935440063477 + - -0.5901550054550171 + unit: kG + QUAD:IN20:441:BACT: + variable_class: TorchScalarVariable + default_value: 0.07104134559631348 + read_only: false + value_range: + - -0.538829505443573 + - 1.268821358680725 + unit: kG + QUAD:IN20:511:BACT: + variable_class: TorchScalarVariable + default_value: 2.8956358432769775 + read_only: false + value_range: + - 0.6183972358703613 + - 4.204927444458008 + unit: kG + QUAD:IN20:525:BACT: + variable_class: TorchScalarVariable + default_value: -2.226306200027466 + read_only: false + value_range: + - -3.698307514190674 + - -0.8770037889480591 + unit: kG + ACCL:LI21:1:L1S_S_AV: + variable_class: TorchScalarVariable + default_value: 105.69712448120117 + read_only: false + value_range: + - 100.00001525878906 + - 111.22259521484375 + unit: Megavolts + ACCL:LI21:180:L1X_S_AV: + variable_class: TorchScalarVariable + default_value: 18.41381072998047 + read_only: false + value_range: + - 6.948431968688965 + - 25.50543975830078 + unit: Megavolts + ACCL:LI22:1:ADES: + variable_class: TorchScalarVariable + default_value: 5227.193359375 + read_only: false + value_range: + - 3502.705322265625 + - 5997.24365234375 + unit: MeV + ACCL:LI25:1:ADES: + variable_class: TorchScalarVariable + default_value: 6133.2021484375 + read_only: false + value_range: + - 5606.73388671875 + - 8023.0810546875 + unit: MeV + ACCL:LI21:1:L1S_S_PV: + variable_class: TorchScalarVariable + default_value: -22.458297729492188 + read_only: false + value_range: + - -33.887779235839844 + - -15.789875030517578 + unit: deg 2856 MHz + ACCL:LI21:180:L1X_S_PV: + variable_class: TorchScalarVariable + default_value: -159.9999237060547 + read_only: false + value_range: + - -175.42947387695312 + - -156.74661254882812 + unit: deg 11.424 GHz + ACCL:LI22:1:PDES: + variable_class: TorchScalarVariable + default_value: -36.95354461669922 + read_only: false + value_range: + - -44.52250289916992 + - -26.240581512451172 + unit: Degrees + CAMR:IN20:186:XRMS: + variable_class: TorchScalarVariable + default_value: 334.7821044921875 + read_only: false + value_range: + - 250.59193420410156 + - 379.858154296875 + unit: um + CAMR:IN20:186:YRMS: + variable_class: TorchScalarVariable + default_value: 325.3790588378906 + read_only: false + value_range: + - 251.82470703125 + - 377.97906494140625 + unit: um + BLEN:LI21:265:AIMAX1H: + variable_class: TorchScalarVariable + default_value: 216.41799926757812 + read_only: false + value_range: + - 21.628271102905273 + - 295.4963073730469 + unit: A + BLEN:LI24:886:BIMAX1H: + variable_class: TorchScalarVariable + default_value: 3116.6708984375 + read_only: false + value_range: + - 1230.0247802734375 + - 5643.43408203125 + unit: A + SIOC:SYS0:ML00:CALC038: + variable_class: TorchScalarVariable + default_value: 250.0469512939453 + read_only: false + value_range: + - 240.00051879882812 + - 274.9855651855469 + unit: pC + SIOC:SYS0:ML00:CALC252: + variable_class: TorchScalarVariable + default_value: 178.77903747558594 + read_only: false + value_range: + - 0.0 + - 199.99745178222656 + unit: pC + BEND:DMPH:400:BACT: + variable_class: TorchScalarVariable + default_value: 10.62000846862793 + read_only: false + value_range: + - 10.514976501464844 + - 10.789048194885254 + unit: GeV/c + SIOC:SYS0:ML00:AO627: + variable_class: TorchScalarVariable + default_value: 9718.16796875 + read_only: false + value_range: + - 9500.0078125 + - 9999.8466796875 + unit: eV + XCOR:UNDH:1380:BACT: + variable_class: TorchScalarVariable + default_value: 3.13312302751001e-05 + read_only: false + value_range: + - -0.0009821036364883184 + - 0.0009955056011676788 + unit: kG-m + XCOR:UNDH:1480:BACT: + variable_class: TorchScalarVariable + default_value: 9.630867862142622e-05 + read_only: false + value_range: + - -0.0002964562445413321 + - 0.000836852181237191 + unit: kG-m + XCOR:UNDH:1580:BACT: + variable_class: TorchScalarVariable + default_value: 0.0001912557054311037 + read_only: false + value_range: + - -0.0003992630518041551 + - 0.000698764924891293 + unit: kG-m + XCOR:UNDH:1680:BACT: + variable_class: TorchScalarVariable + default_value: 4.132541289436631e-05 + read_only: false + value_range: + - -0.0002583581954240799 + - 0.0002874867932405323 + unit: kG-m + XCOR:UNDH:1780:BACT: + variable_class: TorchScalarVariable + default_value: -0.00010225858568446711 + read_only: false + value_range: + - -0.0005246761720627546 + - 0.00040158562478609383 + unit: kG-m + XCOR:UNDH:1880:BACT: + variable_class: TorchScalarVariable + default_value: -0.0001250849454663694 + read_only: false + value_range: + - -0.0003737287479452789 + - 0.0003176488680765033 + unit: kG-m + XCOR:UNDH:1980:BACT: + variable_class: TorchScalarVariable + default_value: -0.0001198389581986703 + read_only: false + value_range: + - -0.000429774314397946 + - 0.0005280743353068829 + unit: kG-m + XCOR:UNDH:2080:BACT: + variable_class: TorchScalarVariable + default_value: -1.230518682859838e-05 + read_only: false + value_range: + - -0.0004994860501028597 + - 0.0009310322348028421 + unit: kG-m + XCOR:UNDH:2180:BACT: + variable_class: TorchScalarVariable + default_value: 2.3291771867661737e-05 + read_only: false + value_range: + - -0.0007958629867061973 + - 0.0009633363224565983 + unit: kG-m + XCOR:UNDH:2280:BACT: + variable_class: TorchScalarVariable + default_value: 6.911856871738564e-06 + read_only: false + value_range: + - -0.0006120636244304478 + - 0.0005776818725280464 + unit: kG-m + XCOR:UNDH:2380:BACT: + variable_class: TorchScalarVariable + default_value: -3.974194987677038e-05 + read_only: false + value_range: + - -0.0002869816089514643 + - 0.0002396650961600244 + unit: kG-m + XCOR:UNDH:2480:BACT: + variable_class: TorchScalarVariable + default_value: -2.5063609427888878e-05 + read_only: false + value_range: + - -0.0006338375387713313 + - 0.00015527963114436716 + unit: kG-m + XCOR:UNDH:2580:BACT: + variable_class: TorchScalarVariable + default_value: 7.192694283730816e-06 + read_only: false + value_range: + - -0.0003280419623479247 + - 0.0002896543883252889 + unit: kG-m + XCOR:UNDH:2680:BACT: + variable_class: TorchScalarVariable + default_value: 3.241708691348322e-05 + read_only: false + value_range: + - -0.00016108786803670228 + - 0.0005595804541371763 + unit: kG-m + XCOR:UNDH:2780:BACT: + variable_class: TorchScalarVariable + default_value: 4.75671658932697e-05 + read_only: false + value_range: + - -0.0008402586099691689 + - 0.0005265165818855166 + unit: kG-m + XCOR:UNDH:2880:BACT: + variable_class: TorchScalarVariable + default_value: -5.291559318720829e-06 + read_only: false + value_range: + - -0.000255841325270012 + - 0.0009620104683563113 + unit: kG-m + XCOR:UNDH:2980:BACT: + variable_class: TorchScalarVariable + default_value: -6.859230779809877e-05 + read_only: false + value_range: + - -0.000788069621194154 + - 0.00013974700414109975 + unit: kG-m + XCOR:UNDH:3080:BACT: + variable_class: TorchScalarVariable + default_value: -8.781007636571303e-05 + read_only: false + value_range: + - -0.0003647462581284344 + - 7.703727169428021e-05 + unit: kG-m + XCOR:UNDH:3180:BACT: + variable_class: TorchScalarVariable + default_value: -9.890428191283718e-05 + read_only: false + value_range: + - -0.000600970524828881 + - 0.00024407422461081296 + unit: kG-m + XCOR:UNDH:3280:BACT: + variable_class: TorchScalarVariable + default_value: -2.2034822904970497e-05 + read_only: false + value_range: + - -0.0008363833767361939 + - 0.0003439175197854638 + unit: kG-m + XCOR:UNDH:3380:BACT: + variable_class: TorchScalarVariable + default_value: 6.628128517149889e-07 + read_only: false + value_range: + - -0.00027618854073807597 + - 0.0002918792306445539 + unit: kG-m + XCOR:UNDH:3480:BACT: + variable_class: TorchScalarVariable + default_value: 1.1350202839821577e-06 + read_only: false + value_range: + - -0.00026849121786653996 + - 0.0005286589730530977 + unit: kG-m + XCOR:UNDH:3580:BACT: + variable_class: TorchScalarVariable + default_value: 6.533164196298458e-06 + read_only: false + value_range: + - -0.0004505771794356406 + - 0.00020057357323821634 + unit: kG-m + XCOR:UNDH:3680:BACT: + variable_class: TorchScalarVariable + default_value: 2.2087098841439e-05 + read_only: false + value_range: + - -0.00022451893892139196 + - 0.00032661628210917115 + unit: kG-m + XCOR:UNDH:3780:BACT: + variable_class: TorchScalarVariable + default_value: 3.672538514365442e-05 + read_only: false + value_range: + - -0.00045030718320049345 + - 0.0005812929593957961 + unit: kG-m + XCOR:UNDH:3880:BACT: + variable_class: TorchScalarVariable + default_value: -2.799393712393794e-07 + read_only: false + value_range: + - -0.00025016232393682003 + - 0.0002342849038541317 + unit: kG-m + XCOR:UNDH:3980:BACT: + variable_class: TorchScalarVariable + default_value: -4.283879025024362e-05 + read_only: false + value_range: + - -0.000595622812397778 + - 0.0004537559289019555 + unit: kG-m + XCOR:UNDH:4080:BACT: + variable_class: TorchScalarVariable + default_value: -7.95123414718546e-05 + read_only: false + value_range: + - -0.00026854994939640164 + - 6.59581201034598e-05 + unit: kG-m + XCOR:UNDH:4180:BACT: + variable_class: TorchScalarVariable + default_value: -0.00011508604802656919 + read_only: false + value_range: + - -0.000695984810590744 + - 0.0005792076117359102 + unit: kG-m + XCOR:UNDH:4280:BACT: + variable_class: TorchScalarVariable + default_value: -6.0163034504512325e-05 + read_only: false + value_range: + - -0.0006600914057344198 + - 0.0008707446977496147 + unit: kG-m + XCOR:UNDH:4380:BACT: + variable_class: TorchScalarVariable + default_value: -4.7088681753848505e-07 + read_only: false + value_range: + - -0.0006451521185226738 + - 0.0009396484238095582 + unit: kG-m + XCOR:UNDH:4480:BACT: + variable_class: TorchScalarVariable + default_value: 6.965340435272083e-05 + read_only: false + value_range: + - -0.0003751741605810821 + - 0.0006930948002263904 + unit: kG-m + XCOR:UNDH:4580:BACT: + variable_class: TorchScalarVariable + default_value: 8.208939107134938e-05 + read_only: false + value_range: + - -0.0009115072898566723 + - 0.0009999098256230354 + unit: kG-m + XCOR:UNDH:4680:BACT: + variable_class: TorchScalarVariable + default_value: 3.859415301121771e-05 + read_only: false + value_range: + - -0.0009910506196320057 + - 0.000999510521069169 + unit: kG-m + XCOR:UNDH:4780:BACT: + variable_class: TorchScalarVariable + default_value: 2.317506869076169e-06 + read_only: false + value_range: + - -0.0007537493947893381 + - 0.0002590437652543187 + unit: kG-m + YCOR:UNDH:1380:BACT: + variable_class: TorchScalarVariable + default_value: 0.00017729130922816694 + read_only: false + value_range: + - -0.0007998915389180183 + - 0.002322693355381489 + unit: kG-m + YCOR:UNDH:1480:BACT: + variable_class: TorchScalarVariable + default_value: 0.00031440614839084446 + read_only: false + value_range: + - -0.001001303200609982 + - 0.0020921085961163044 + unit: kG-m + YCOR:UNDH:1580:BACT: + variable_class: TorchScalarVariable + default_value: 0.0001898530317703262 + read_only: false + value_range: + - -0.0011799116618931293 + - 0.0010067607508972287 + unit: kG-m + YCOR:UNDH:1680:BACT: + variable_class: TorchScalarVariable + default_value: 0.00014480395475402474 + read_only: false + value_range: + - -0.0009916082490235567 + - 0.0007648301543667912 + unit: kG-m + YCOR:UNDH:1780:BACT: + variable_class: TorchScalarVariable + default_value: 5.8549034292809665e-05 + read_only: false + value_range: + - -0.00043671546154655516 + - 0.00047224925947375596 + unit: kG-m + YCOR:UNDH:1880:BACT: + variable_class: TorchScalarVariable + default_value: 6.50418660370633e-05 + read_only: false + value_range: + - -0.0005957565153948963 + - 0.0011087642051279545 + unit: kG-m + YCOR:UNDH:1980:BACT: + variable_class: TorchScalarVariable + default_value: 7.378652662737295e-05 + read_only: false + value_range: + - -0.00016657126252539456 + - 0.000654485949780792 + unit: kG-m + YCOR:UNDH:2080:BACT: + variable_class: TorchScalarVariable + default_value: 9.250422408513259e-06 + read_only: false + value_range: + - -0.0005237142322584987 + - 0.0015063132159411907 + unit: kG-m + YCOR:UNDH:2180:BACT: + variable_class: TorchScalarVariable + default_value: -3.7039623634882446e-07 + read_only: false + value_range: + - -0.000575279991608113 + - 0.0008172884117811918 + unit: kG-m + YCOR:UNDH:2280:BACT: + variable_class: TorchScalarVariable + default_value: -2.622389729367569e-05 + read_only: false + value_range: + - -0.0006034813122823834 + - 0.0005024568527005613 + unit: kG-m + YCOR:UNDH:2380:BACT: + variable_class: TorchScalarVariable + default_value: 4.5798168457622523e-07 + read_only: false + value_range: + - -0.00027631359989754856 + - 0.00037451452226378024 + unit: kG-m + YCOR:UNDH:2480:BACT: + variable_class: TorchScalarVariable + default_value: 3.1043302442412823e-05 + read_only: false + value_range: + - -0.00037303115823306143 + - 0.0004823935159947723 + unit: kG-m + YCOR:UNDH:2580:BACT: + variable_class: TorchScalarVariable + default_value: 3.581157943699509e-05 + read_only: false + value_range: + - -0.000279325497103855 + - 0.00023415032774209976 + unit: kG-m + YCOR:UNDH:2680:BACT: + variable_class: TorchScalarVariable + default_value: 3.493251642794348e-05 + read_only: false + value_range: + - -0.0005424672272056341 + - 0.0003341590636409819 + unit: kG-m + YCOR:UNDH:2780:BACT: + variable_class: TorchScalarVariable + default_value: -4.738057668873807e-06 + read_only: false + value_range: + - -0.0006376646342687309 + - 0.0002725540252868086 + unit: kG-m + YCOR:UNDH:2880:BACT: + variable_class: TorchScalarVariable + default_value: -3.3163527405122295e-05 + read_only: false + value_range: + - -0.00047650589840486646 + - 0.0005619300645776093 + unit: kG-m + YCOR:UNDH:2980:BACT: + variable_class: TorchScalarVariable + default_value: -2.180776937166229e-05 + read_only: false + value_range: + - -0.0004848685930483043 + - 0.0004569693701341748 + unit: kG-m + YCOR:UNDH:3080:BACT: + variable_class: TorchScalarVariable + default_value: 2.912725722126197e-05 + read_only: false + value_range: + - -0.0007536783814430237 + - 0.00027199735632166266 + unit: kG-m + YCOR:UNDH:3180:BACT: + variable_class: TorchScalarVariable + default_value: 5.818250429001637e-05 + read_only: false + value_range: + - -0.0004203379503451288 + - 0.00025513191940262914 + unit: kG-m + YCOR:UNDH:3280:BACT: + variable_class: TorchScalarVariable + default_value: 3.7361638533184305e-05 + read_only: false + value_range: + - -0.0006829249323345721 + - 0.0004671179340220988 + unit: kG-m + YCOR:UNDH:3380:BACT: + variable_class: TorchScalarVariable + default_value: -1.5515148334088735e-05 + read_only: false + value_range: + - -0.0003889016225002706 + - 0.000672376190777868 + unit: kG-m + YCOR:UNDH:3480:BACT: + variable_class: TorchScalarVariable + default_value: -6.104487692937255e-05 + read_only: false + value_range: + - -0.0005380988586694002 + - 0.0007592468173243105 + unit: kG-m + YCOR:UNDH:3580:BACT: + variable_class: TorchScalarVariable + default_value: -4.485617637328687e-07 + read_only: false + value_range: + - -0.00022893176355864853 + - 0.0005933999782428145 + unit: kG-m + YCOR:UNDH:3680:BACT: + variable_class: TorchScalarVariable + default_value: 5.021193283027969e-05 + read_only: false + value_range: + - -0.0004956517950631678 + - 0.00038829297409392893 + unit: kG-m + YCOR:UNDH:3780:BACT: + variable_class: TorchScalarVariable + default_value: 5.110011261422187e-05 + read_only: false + value_range: + - -0.0008113833609968424 + - 0.0005073792999610305 + unit: kG-m + YCOR:UNDH:3880:BACT: + variable_class: TorchScalarVariable + default_value: 3.6485995224211365e-05 + read_only: false + value_range: + - -0.001201955950818956 + - 0.0003546945517882705 + unit: kG-m + YCOR:UNDH:3980:BACT: + variable_class: TorchScalarVariable + default_value: -4.168170562479645e-06 + read_only: false + value_range: + - -0.0003619982744567096 + - 0.00044134663767181337 + unit: kG-m + YCOR:UNDH:4080:BACT: + variable_class: TorchScalarVariable + default_value: 3.254912735428661e-05 + read_only: false + value_range: + - -0.00086312455823645 + - 0.0015412082429975271 + unit: kG-m + YCOR:UNDH:4180:BACT: + variable_class: TorchScalarVariable + default_value: 3.716743231052533e-05 + read_only: false + value_range: + - -0.000343025429174304 + - 0.0018032232765108347 + unit: kG-m + YCOR:UNDH:4280:BACT: + variable_class: TorchScalarVariable + default_value: 4.520393122220412e-05 + read_only: false + value_range: + - -0.0007666326127946377 + - 0.0016142847016453743 + unit: kG-m + YCOR:UNDH:4380:BACT: + variable_class: TorchScalarVariable + default_value: 6.290613964665681e-05 + read_only: false + value_range: + - -0.0002774629683699459 + - 0.0007250587223097682 + unit: kG-m + YCOR:UNDH:4480:BACT: + variable_class: TorchScalarVariable + default_value: 3.94530979974661e-05 + read_only: false + value_range: + - -0.0010996756609529257 + - 0.0009239603532478213 + unit: kG-m + YCOR:UNDH:4580:BACT: + variable_class: TorchScalarVariable + default_value: 1.5519786757067777e-05 + read_only: false + value_range: + - -0.0007436369196511805 + - 0.0009525191853754222 + unit: kG-m + YCOR:UNDH:4680:BACT: + variable_class: TorchScalarVariable + default_value: 4.632295258488739e-06 + read_only: false + value_range: + - -0.0007205481524579227 + - 0.0007914139423519373 + unit: kG-m + YCOR:UNDH:4780:BACT: + variable_class: TorchScalarVariable + default_value: 4.5491628952731844e-07 + read_only: false + value_range: + - -0.0008967298199422657 + - 0.002440386451780796 + unit: kG-m + PHAS:UNDH:1495:GapAct: + variable_class: TorchScalarVariable + default_value: 17.09600067138672 + read_only: false + value_range: + - 12.887749671936035 + - 19.842500686645508 + unit: mm + PHAS:UNDH:1595:GapAct: + variable_class: TorchScalarVariable + default_value: 16.92675018310547 + read_only: false + value_range: + - 13.457249641418457 + - 19.69675064086914 + unit: mm + PHAS:UNDH:1695:GapAct: + variable_class: TorchScalarVariable + default_value: 17.17799949645996 + read_only: false + value_range: + - 13.475500106811523 + - 19.9375 + unit: mm + PHAS:UNDH:1795:GapAct: + variable_class: TorchScalarVariable + default_value: 17.150249481201172 + read_only: false + value_range: + - 13.711999893188477 + - 19.952749252319336 + unit: mm + PHAS:UNDH:1895:GapAct: + variable_class: TorchScalarVariable + default_value: 17.151750564575195 + read_only: false + value_range: + - 12.88325023651123 + - 21.66925048828125 + unit: mm + PHAS:UNDH:1995:GapAct: + variable_class: TorchScalarVariable + default_value: 16.70050048828125 + read_only: false + value_range: + - 13.025500297546387 + - 19.37700080871582 + unit: mm + PHAS:UNDH:2095:GapAct: + variable_class: TorchScalarVariable + default_value: 13.987750053405762 + read_only: false + value_range: + - 12.039750099182129 + - 21.5627498626709 + unit: mm + PHAS:UNDH:2295:GapAct: + variable_class: TorchScalarVariable + default_value: 17.1560001373291 + read_only: false + value_range: + - 15.122750282287598 + - 19.872249603271484 + unit: mm + PHAS:UNDH:2395:GapAct: + variable_class: TorchScalarVariable + default_value: 17.085250854492188 + read_only: false + value_range: + - 15.775500297546387 + - 19.839000701904297 + unit: mm + PHAS:UNDH:2495:GapAct: + variable_class: TorchScalarVariable + default_value: 17.100299835205078 + read_only: false + value_range: + - 15.794549942016602 + - 19.753049850463867 + unit: mm + PHAS:UNDH:2595:GapAct: + variable_class: TorchScalarVariable + default_value: 17.18524932861328 + read_only: false + value_range: + - 15.999750137329102 + - 19.761249542236328 + unit: mm + PHAS:UNDH:2695:GapAct: + variable_class: TorchScalarVariable + default_value: 17.05525016784668 + read_only: false + value_range: + - 15.70300006866455 + - 19.62350082397461 + unit: mm + PHAS:UNDH:2795:GapAct: + variable_class: TorchScalarVariable + default_value: 13.4375 + read_only: false + value_range: + - 12.000499725341797 + - 21.482999801635742 + unit: mm + PHAS:UNDH:2995:GapAct: + variable_class: TorchScalarVariable + default_value: 17.074249267578125 + read_only: false + value_range: + - 15.177499771118164 + - 19.37299919128418 + unit: mm + PHAS:UNDH:3095:GapAct: + variable_class: TorchScalarVariable + default_value: 17.328250885009766 + read_only: false + value_range: + - 15.979000091552734 + - 19.485000610351562 + unit: mm + PHAS:UNDH:3195:GapAct: + variable_class: TorchScalarVariable + default_value: 17.351749420166016 + read_only: false + value_range: + - 16.09025001525879 + - 19.515750885009766 + unit: mm + PHAS:UNDH:3295:GapAct: + variable_class: TorchScalarVariable + default_value: 17.33074951171875 + read_only: false + value_range: + - 16.107749938964844 + - 19.400249481201172 + unit: mm + PHAS:UNDH:3395:GapAct: + variable_class: TorchScalarVariable + default_value: 17.22504997253418 + read_only: false + value_range: + - 15.645050048828125 + - 19.246299743652344 + unit: mm + PHAS:UNDH:3495:GapAct: + variable_class: TorchScalarVariable + default_value: 17.085750579833984 + read_only: false + value_range: + - 15.306249618530273 + - 19.056499481201172 + unit: mm + PHAS:UNDH:3595:GapAct: + variable_class: TorchScalarVariable + default_value: 17.528499603271484 + read_only: false + value_range: + - 16.104000091552734 + - 19.414499282836914 + unit: mm + PHAS:UNDH:3695:GapAct: + variable_class: TorchScalarVariable + default_value: 17.35955047607422 + read_only: false + value_range: + - 15.976799964904785 + - 19.209800720214844 + unit: mm + PHAS:UNDH:3795:GapAct: + variable_class: TorchScalarVariable + default_value: 17.451250076293945 + read_only: false + value_range: + - 16.036500930786133 + - 19.357749938964844 + unit: mm + PHAS:UNDH:3895:GapAct: + variable_class: TorchScalarVariable + default_value: 17.1924991607666 + read_only: false + value_range: + - 15.628000259399414 + - 19.13425064086914 + unit: mm + PHAS:UNDH:3995:GapAct: + variable_class: TorchScalarVariable + default_value: 17.428499221801758 + read_only: false + value_range: + - 15.836750030517578 + - 19.548749923706055 + unit: mm + PHAS:UNDH:4095:GapAct: + variable_class: TorchScalarVariable + default_value: 17.29599952697754 + read_only: false + value_range: + - 15.634499549865723 + - 19.4377498626709 + unit: mm + PHAS:UNDH:4195:GapAct: + variable_class: TorchScalarVariable + default_value: 17.535749435424805 + read_only: false + value_range: + - 15.929499626159668 + - 19.74074935913086 + unit: mm + PHAS:UNDH:4295:GapAct: + variable_class: TorchScalarVariable + default_value: 17.65625 + read_only: false + value_range: + - 16.04924964904785 + - 19.942249298095703 + unit: mm + PHAS:UNDH:4395:GapAct: + variable_class: TorchScalarVariable + default_value: 17.837749481201172 + read_only: false + value_range: + - 16.163249969482422 + - 20.100000381469727 + unit: mm + PHAS:UNDH:4495:GapAct: + variable_class: TorchScalarVariable + default_value: 17.925050735473633 + read_only: false + value_range: + - 16.167049407958984 + - 20.292800903320312 + unit: mm + PHAS:UNDH:4595:GapAct: + variable_class: TorchScalarVariable + default_value: 17.870250701904297 + read_only: false + value_range: + - 16.056249618530273 + - 20.256500244140625 + unit: mm + PHAS:UNDH:4695:GapAct: + variable_class: TorchScalarVariable + default_value: 18.060749053955078 + read_only: false + value_range: + - 16.15974998474121 + - 20.651500701904297 + unit: mm + USEG:UNDH:1450:GapAct: + variable_class: TorchScalarVariable + default_value: 7.361015796661377 + read_only: false + value_range: + - 7.279615879058838 + - 7.818066120147705 + unit: mm + USEG:UNDH:1550:GapAct: + variable_class: TorchScalarVariable + default_value: 7.30649995803833 + read_only: false + value_range: + - 7.224699974060059 + - 7.689549922943115 + unit: mm + USEG:UNDH:1650:GapAct: + variable_class: TorchScalarVariable + default_value: 7.34915018081665 + read_only: false + value_range: + - 7.26485013961792 + - 7.781050205230713 + unit: mm + USEG:UNDH:1750:GapAct: + variable_class: TorchScalarVariable + default_value: 7.351600170135498 + read_only: false + value_range: + - 7.26800012588501 + - 7.856249809265137 + unit: mm + USEG:UNDH:1850:GapAct: + variable_class: TorchScalarVariable + default_value: 7.363550186157227 + read_only: false + value_range: + - 7.281449794769287 + - 7.713500022888184 + unit: mm + USEG:UNDH:1950:GapAct: + variable_class: TorchScalarVariable + default_value: 7.373700141906738 + read_only: false + value_range: + - 7.2893500328063965 + - 7.892950057983398 + unit: mm + USEG:UNDH:2050:GapAct: + variable_class: TorchScalarVariable + default_value: 7.415949821472168 + read_only: false + value_range: + - 7.33489990234375 + - 7.853750228881836 + unit: mm + USEG:UNDH:2250:GapAct: + variable_class: TorchScalarVariable + default_value: 7.3844499588012695 + read_only: false + value_range: + - 7.302999973297119 + - 7.526899814605713 + unit: mm + USEG:UNDH:2350:GapAct: + variable_class: TorchScalarVariable + default_value: 7.341549873352051 + read_only: false + value_range: + - 7.261600017547607 + - 7.484300136566162 + unit: mm + USEG:UNDH:2450:GapAct: + variable_class: TorchScalarVariable + default_value: 7.395100116729736 + read_only: false + value_range: + - 7.315549850463867 + - 7.534749984741211 + unit: mm + USEG:UNDH:2550:GapAct: + variable_class: TorchScalarVariable + default_value: 7.377200126647949 + read_only: false + value_range: + - 7.2970499992370605 + - 7.513150215148926 + unit: mm + USEG:UNDH:2650:GapAct: + variable_class: TorchScalarVariable + default_value: 7.381100177764893 + read_only: false + value_range: + - 7.300250053405762 + - 7.513599872589111 + unit: mm + USEG:UNDH:2750:GapAct: + variable_class: TorchScalarVariable + default_value: 7.34975004196167 + read_only: false + value_range: + - 7.271550178527832 + - 7.478300094604492 + unit: mm + USEG:UNDH:2950:GapAct: + variable_class: TorchScalarVariable + default_value: 7.348100185394287 + read_only: false + value_range: + - 7.263750076293945 + - 7.472449779510498 + unit: mm + USEG:UNDH:3050:GapAct: + variable_class: TorchScalarVariable + default_value: 7.388850212097168 + read_only: false + value_range: + - 7.3042497634887695 + - 7.509349822998047 + unit: mm + USEG:UNDH:3150:GapAct: + variable_class: TorchScalarVariable + default_value: 7.359650135040283 + read_only: false + value_range: + - 7.274099826812744 + - 7.476900100708008 + unit: mm + USEG:UNDH:3250:GapAct: + variable_class: TorchScalarVariable + default_value: 7.302149772644043 + read_only: false + value_range: + - 7.216700077056885 + - 7.415649890899658 + unit: mm + USEG:UNDH:3350:GapAct: + variable_class: TorchScalarVariable + default_value: 7.351399898529053 + read_only: false + value_range: + - 7.26455020904541 + - 7.462900161743164 + unit: mm + USEG:UNDH:3450:GapAct: + variable_class: TorchScalarVariable + default_value: 7.383646011352539 + read_only: false + value_range: + - 7.296596050262451 + - 7.490096092224121 + unit: mm + USEG:UNDH:3550:GapAct: + variable_class: TorchScalarVariable + default_value: 7.361299991607666 + read_only: false + value_range: + - 7.273449897766113 + - 7.786499977111816 + unit: mm + USEG:UNDH:3650:GapAct: + variable_class: TorchScalarVariable + default_value: 7.330599784851074 + read_only: false + value_range: + - 7.241399765014648 + - 7.441450119018555 + unit: mm + USEG:UNDH:3750:GapAct: + variable_class: TorchScalarVariable + default_value: 7.390850067138672 + read_only: false + value_range: + - 7.298250198364258 + - 7.496600151062012 + unit: mm + USEG:UNDH:3850:GapAct: + variable_class: TorchScalarVariable + default_value: 7.423999786376953 + read_only: false + value_range: + - 7.329649925231934 + - 7.530849933624268 + unit: mm + USEG:UNDH:3950:GapAct: + variable_class: TorchScalarVariable + default_value: 7.375850200653076 + read_only: false + value_range: + - 7.278649806976318 + - 7.482250213623047 + unit: mm + USEG:UNDH:4050:GapAct: + variable_class: TorchScalarVariable + default_value: 7.404399871826172 + read_only: false + value_range: + - 7.3043999671936035 + - 7.512650012969971 + unit: mm + USEG:UNDH:4150:GapAct: + variable_class: TorchScalarVariable + default_value: 7.379950046539307 + read_only: false + value_range: + - 7.280350208282471 + - 7.491950035095215 + unit: mm + USEG:UNDH:4250:GapAct: + variable_class: TorchScalarVariable + default_value: 7.43149995803833 + read_only: false + value_range: + - 7.328199863433838 + - 7.5457000732421875 + unit: mm + USEG:UNDH:4350:GapAct: + variable_class: TorchScalarVariable + default_value: 7.406050205230713 + read_only: false + value_range: + - 7.29925012588501 + - 7.521850109100342 + unit: mm + USEG:UNDH:4450:GapAct: + variable_class: TorchScalarVariable + default_value: 7.386149883270264 + read_only: false + value_range: + - 7.27554988861084 + - 7.502200126647949 + unit: mm + USEG:UNDH:4550:GapAct: + variable_class: TorchScalarVariable + default_value: 7.370250225067139 + read_only: false + value_range: + - 7.259799957275391 + - 7.48829984664917 + unit: mm + USEG:UNDH:4650:GapAct: + variable_class: TorchScalarVariable + default_value: 7.40084981918335 + read_only: false + value_range: + - 7.28754997253418 + - 7.523250102996826 + unit: mm + USEG:UNDH:4750:GapAct: + variable_class: TorchScalarVariable + default_value: 7.515850067138672 + read_only: false + value_range: + - 7.395750045776367 + - 7.641449928283691 + unit: mm +model: resources/lcls_fel_final_model_cpu.pt +model_class: TorchModule +output_format: tensor +output_transformers: +- resources/lcls_fel_output_scaler.pt +output_variables: + GDET:FEE1:241:ENRC: + read_only: false + variable_class: TorchScalarVariable + unit: mJ +precision: double diff --git a/examples/slac_fel/model/final_lcls_fel_model.pt b/examples/slac_fel/model/final_lcls_fel_model.pt new file mode 100644 index 0000000..ccb3a28 Binary files /dev/null and b/examples/slac_fel/model/final_lcls_fel_model.pt differ diff --git a/examples/slac_fel/model/final_lcls_fel_model_gpu.pt b/examples/slac_fel/model/final_lcls_fel_model_gpu.pt new file mode 100644 index 0000000..57e67da Binary files /dev/null and b/examples/slac_fel/model/final_lcls_fel_model_gpu.pt differ diff --git a/examples/slac_fel/model/lcls_fel_input_scaler.pt b/examples/slac_fel/model/lcls_fel_input_scaler.pt new file mode 100644 index 0000000..60d115f Binary files /dev/null and b/examples/slac_fel/model/lcls_fel_input_scaler.pt differ diff --git a/examples/slac_fel/model/lcls_fel_output_scaler.pt b/examples/slac_fel/model/lcls_fel_output_scaler.pt new file mode 100644 index 0000000..74f25ed Binary files /dev/null and b/examples/slac_fel/model/lcls_fel_output_scaler.pt differ diff --git a/examples/slac_fel/plot.py b/examples/slac_fel/plot.py new file mode 100644 index 0000000..9111e73 --- /dev/null +++ b/examples/slac_fel/plot.py @@ -0,0 +1,163 @@ +from pathlib import Path +import gc +import glob +import re + +import matplotlib +matplotlib.use("Agg") +import matplotlib.dates as mdates +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import torch +import yaml + + +DATA_DIR = Path("data") +MODEL_DIR = Path("model") +OUTPUT_PATH = Path("march_2026_3_drifts_base_full.png") +MAX_FILES = 230 # not using (plotting all) +PREDICTION_BATCH_SIZE = 8192 +WINDOW_SIZE = 50 +GROUND_TRUTH_COLUMN = "GDET:FEE1:241:ENRC" + +DRIFTS = [ + ("2026-03-15 10:46:05", "2026-03-15 12:07:17"), + ("2026-03-21 08:22:42", "2026-03-21 09:45:13"), + ("2026-03-26 16:54:16", "2026-03-26 18:42:51"), +] + +UPDATED_CHECKPOINTS = [ + (Path("../../output/slac-fel/drift_adaptation_1.pt"), "Updated Chkpt 1", DRIFTS[0][0]), + (Path("../../output/slac-fel/drift_adaptation_2.pt"), "Updated Chkpt 2", DRIFTS[1][0]), + (Path("../../output/slac-fel/drift_adaptation_3.pt"), "Updated Chkpt 3", DRIFTS[2][0]), +] + +UPDATED_PLOT_RANGES = [ + (DRIFTS[0][0], DRIFTS[1][0]), + (DRIFTS[1][0], DRIFTS[2][0]), + (DRIFTS[2][0], None), +] + + +def sorted_data_files(limit: int) -> list[str]: + files = glob.glob(str(DATA_DIR / "*.pkl")) + files.sort(key=lambda file_name: int(re.search(r"\d+", file_name).group())) + return files#[:limit] + + +def load_feature_columns() -> tuple[list[str], list[str]]: + with (MODEL_DIR / "feature_config.yml").open("r", encoding="utf-8") as file_handle: + config = yaml.safe_load(file_handle) + input_columns = list(config["input_variables"].keys()) + output_columns = list(config["output_variables"].keys()) + return input_columns, output_columns + + +def load_selected_frame(files: list[str], columns: list[str]) -> pd.DataFrame: + selected_columns = list(dict.fromkeys(columns)) + frames = [] + for file_name in files: + frame = pd.read_pickle(file_name) + frames.append(frame.loc[:, selected_columns]) + return pd.concat(frames, copy=False) + + +def predict_in_batches(model: torch.nn.Module, scaled_inputs: torch.Tensor, output_scaler) -> np.ndarray: + batches = [] + model.eval() + with torch.inference_mode(): + for start_index in range(0, scaled_inputs.shape[0], PREDICTION_BATCH_SIZE): + batch_inputs = scaled_inputs[start_index:start_index + PREDICTION_BATCH_SIZE] + batch_output = model(batch_inputs) + batch_unscaled = output_scaler.untransform(batch_output) + batches.append(batch_unscaled.detach().cpu().numpy().reshape(-1)) + return np.concatenate(batches, axis=0) + + +def load_checkpoint(model: torch.nn.Module, checkpoint_path: Path) -> None: + state_dict = torch.load(checkpoint_path, weights_only=True, map_location="cpu") + cleaned_state_dict = {key.replace("net.", ""): value for key, value in state_dict.items()} + model.load_state_dict(cleaned_state_dict) + + +def align_timestamp(timestamp_text: str, index: pd.Index) -> pd.Timestamp: + timestamp = pd.Timestamp(timestamp_text) + index_timezone = getattr(index, "tz", None) + if index_timezone is not None and timestamp.tzinfo is None: + return timestamp.tz_localize(index_timezone) + if index_timezone is None and timestamp.tzinfo is not None: + return timestamp.tz_localize(None) + return timestamp + + +def main() -> None: + input_columns, output_columns = load_feature_columns() + files = sorted_data_files(MAX_FILES) + selected_frame = load_selected_frame(files, input_columns + output_columns + [GROUND_TRUTH_COLUMN]) + + model = torch.load(MODEL_DIR / "final_lcls_fel_model.pt", weights_only=False, map_location="cpu") + input_scaler = torch.load(MODEL_DIR / "lcls_fel_input_scaler.pt", weights_only=False, map_location="cpu") + output_scaler = torch.load(MODEL_DIR / "lcls_fel_output_scaler.pt", weights_only=False, map_location="cpu") + + raw_inputs = torch.as_tensor(selected_frame[input_columns].to_numpy(dtype=np.float32, copy=False)) + scaled_inputs = input_scaler.transform(raw_inputs) + + pretrained_prediction = predict_in_batches(model, scaled_inputs, output_scaler) + + date_format = mdates.DateFormatter("%m-%d %H:%M") + fontsize = 12 + fig, ax = plt.subplots(figsize=(12, 7)) + + ground_truth = selected_frame[GROUND_TRUTH_COLUMN] + moving_avg = ground_truth.rolling(window=WINDOW_SIZE).mean() + + ax.scatter(selected_frame.index, ground_truth.to_numpy(), label="Measurement", color="salmon", marker="x", s=12, rasterized=True) + ax.plot(selected_frame.index, moving_avg, label="Moving Mean", color="red", linewidth=2) + ax.scatter(selected_frame.index, pretrained_prediction, label="Pretrained Model Prediction", color="dodgerblue", marker=".", s=15, rasterized=True) + + colors = ["blueviolet", "lightblue", "lightgreen"] + for (checkpoint_path, label, _), (range_start_text, range_end_text) in zip(UPDATED_CHECKPOINTS, UPDATED_PLOT_RANGES, strict=True): + load_checkpoint(model, checkpoint_path) + updated_prediction = predict_in_batches(model, scaled_inputs, output_scaler) + range_start = align_timestamp(range_start_text, selected_frame.index) + mask = selected_frame.index >= range_start + if range_end_text is not None: + range_end = align_timestamp(range_end_text, selected_frame.index) + mask &= selected_frame.index < range_end + ax.scatter(selected_frame.index[mask], updated_prediction[mask], label=label, color=colors.pop(0), marker=".", s=15, rasterized=True) + del updated_prediction + gc.collect() + + ax.set_xlabel("Time", fontsize=fontsize) + ax.set_ylabel("HXR pulse intensity (mJ)", fontsize=fontsize) + # ax.set_xlim( + # align_timestamp("2026-03-13 00:00", selected_frame.index), + # align_timestamp("2026-04-01 06:00", selected_frame.index), + # ) + # ax.set_ylim([0, 6]) + ax.xaxis.set_major_locator(mdates.AutoDateLocator()) + ax.xaxis.set_major_formatter(date_format) + + for drift_index, (start_text, end_text) in enumerate(DRIFTS, start=1): + ax.axvspan( + align_timestamp(start_text, selected_frame.index), + align_timestamp(end_text, selected_frame.index), + color="green", + alpha=0.3, + #label=f"Drift {drift_index}", + ) + + + + ax.legend(fontsize=12, loc="upper left") + ax.tick_params(labelsize=fontsize) + ax.tick_params(axis="x", rotation=45) + ax.grid(True, which="both", linestyle="--", linewidth=0.5) + fig.tight_layout() + fig.savefig(OUTPUT_PATH, dpi=200) + plt.close(fig) + + +if __name__ == "__main__": + main() diff --git a/examples/slac_fel/plot_data.ipynb b/examples/slac_fel/plot_data.ipynb new file mode 100644 index 0000000..68b9571 --- /dev/null +++ b/examples/slac_fel/plot_data.ipynb @@ -0,0 +1,352 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "097db665", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import torch\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", + "\n", + "# Make the apeiron package and the example modules importable from the repo root.\n", + "REPO_ROOT = os.path.abspath(\"../..\")\n", + "if REPO_ROOT not in sys.path:\n", + " sys.path.insert(0, REPO_ROOT)\n", + "\n", + "from examples.slac_fel.model import FELNet\n", + "from examples.slac_fel.utils import (\n", + " discover_window_files,\n", + " load_feature_config,\n", + " load_scalers,\n", + " load_window_file,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "21045a91", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "341 input features, target = ['GDET:FEE1:241:ENRC']\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/smiskov/miniconda3/envs/base-sim/lib/python3.13/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "# Paths\n", + "CONFIG_DIR = \"model\" # scalers + feature_config.yml\n", + "DATA_DIR = \"data\" # all data_*.pkl windows\n", + "ORIGINAL_MODEL_PATH = \"model/final_lcls_fel_model.pt\" # baseline model\n", + "ADAPTED_CKPT_PATH = \"../../output/slac-fel/drift_adaptation_3.pt\" # last CL checkpoint\n", + "\n", + "DEVICE = \"cpu\"\n", + "\n", + "input_cols, output_cols = load_feature_config(CONFIG_DIR)\n", + "input_scaler, output_scaler = load_scalers(CONFIG_DIR, device=DEVICE)\n", + "print(f\"{len(input_cols)} input features, target = {output_cols}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8363e917", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded original model and adapted checkpoint: drift_adaptation_3.pt\n" + ] + } + ], + "source": [ + "# Load both models.\n", + "# Original baseline is a raw nn.Sequential saved directly.\n", + "original_model = torch.load(ORIGINAL_MODEL_PATH, weights_only=False, map_location=DEVICE)\n", + "original_model.eval()\n", + "\n", + "# The drift-adaptation checkpoint is a FELNet state_dict.\n", + "adapted_model = FELNet(input_size=len(input_cols), output_size=len(output_cols))\n", + "adapted_state = torch.load(ADAPTED_CKPT_PATH, weights_only=False, map_location=DEVICE)\n", + "adapted_model.load_state_dict(adapted_state, strict=True)\n", + "adapted_model.eval()\n", + "print(\"Loaded original model and adapted checkpoint:\", os.path.basename(ADAPTED_CKPT_PATH))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "727cd6c0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 308 window files\n", + " processed 50/308 files\n", + " processed 100/308 files\n", + " processed 150/308 files\n", + " processed 200/308 files\n", + " processed 250/308 files\n", + " processed 300/308 files\n", + " processed 308/308 files\n", + "Combined timeseries: 1,535,405 samples from 2026-03-04 00:14:32.394081280-08:00 to 2026-03-31 23:59:59.707322368-07:00\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
measurementpred_originalpred_adapted
2026-03-04 00:14:32.394081280-08:002.2054711.7956480.100002
2026-03-04 00:14:33.344012288-08:002.1555391.8135480.100002
2026-03-04 00:14:34.302200576-08:001.8948771.7977580.100002
2026-03-04 00:14:35.252262400-08:002.1543341.7648210.100002
2026-03-04 00:14:36.202193408-08:002.0473061.7834940.100002
\n", + "
" + ], + "text/plain": [ + " measurement pred_original pred_adapted\n", + "2026-03-04 00:14:32.394081280-08:00 2.205471 1.795648 0.100002\n", + "2026-03-04 00:14:33.344012288-08:00 2.155539 1.813548 0.100002\n", + "2026-03-04 00:14:34.302200576-08:00 1.894877 1.797758 0.100002\n", + "2026-03-04 00:14:35.252262400-08:00 2.154334 1.764821 0.100002\n", + "2026-03-04 00:14:36.202193408-08:00 2.047306 1.783494 0.100002" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Load every data_*.pkl window, run both models, and accumulate a single timeseries.\n", + "# Files are processed one at a time to keep memory bounded (the full input tensor\n", + "# would otherwise be ~2 GB).\n", + "files = discover_window_files(DATA_DIR)\n", + "print(f\"Found {len(files)} window files\")\n", + "\n", + "times, measurement, pred_original, pred_adapted = [], [], [], []\n", + "\n", + "with torch.no_grad():\n", + " for i, path in enumerate(files):\n", + " X, y, idx = load_window_file(\n", + " path, input_cols, output_cols, input_scaler, output_scaler\n", + " )\n", + " y_meas = output_scaler.untransform(y).squeeze(-1).numpy()\n", + " y_orig = output_scaler.untransform(original_model(X)).squeeze(-1).numpy()\n", + " y_adapt = output_scaler.untransform(adapted_model(X)).squeeze(-1).numpy()\n", + "\n", + " times.append(np.asarray(idx))\n", + " measurement.append(y_meas)\n", + " pred_original.append(y_orig)\n", + " pred_adapted.append(y_adapt)\n", + "\n", + " if (i + 1) % 50 == 0 or i == len(files) - 1:\n", + " print(f\" processed {i + 1}/{len(files)} files\")\n", + "\n", + "results = pd.DataFrame(\n", + " {\n", + " \"measurement\": np.concatenate(measurement),\n", + " \"pred_original\": np.concatenate(pred_original),\n", + " \"pred_adapted\": np.concatenate(pred_adapted),\n", + " },\n", + " index=pd.DatetimeIndex(np.concatenate(times)),\n", + ").sort_index()\n", + "\n", + "print(f\"Combined timeseries: {len(results):,} samples \"\n", + " f\"from {results.index.min()} to {results.index.max()}\")\n", + "results.head()" + ] + }, + { + "cell_type": "markdown", + "id": "dd256e6b", + "metadata": {}, + "source": [ + "# Plot: original model vs. last drift-adaptation checkpoint\n", + "\n", + "The full stream is plotted as one continuous timeseries. Raw measurements are shown\n", + "as faint points; the lines are rolling means that make the model comparison legible\n", + "across ~1.5M samples. The y-axis is clipped to the measurement range because the\n", + "original model over-predicts well off-scale (>30 mJ) on this newer data." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "7f1c3000", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAKyCAYAAAA6kpdwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnQWYHEX6xr+JuxN3LAGCHe6uwV2DO0Eu6GHhDncO7ggcJLj7wfHH7XCOEOQ4JJ4Qd092+/+8tfTSMzu70z3b3SX9/p5nktmZnu7qr9/+quqr6q9ynud5QgghhBBCCCGEEEIIIYSQGjSo+REhhBBCCCGEEEIIIYQQQhhEJ4QQQgghhBBCCCGEEELqgDPRCSGEEEIIIYQQQgghhJBaYBCdEEIIIYQQQgghhBBCCKkFBtEJIYQQQgghhBBCCCGEkFpgEJ0QQgghhBBCCCGEEEIIqQUG0QkhhBBCCCGEEEIIIYSQWmAQnRBCCCGEEEIIIYQQQgipBQbRCSGEEEIIIYQQQgghhJBaYBCdEEIIIaEZP3685HI5ueqqq7RYbYcddpC+ffuKi4waNUrZ9t1339VdFEKcAv4K9xb8V7ng98cdd5ykgem+AHZA+dLCdHtEBeeB88F52UR9r3sc9yEhhBCiEwbRCSGEkBg6w7W9Pvnkk+pt69oOrw8//DAvWNyqVStem5gZPXq06sjb0om3rbzEXKglQsJx++23WxfgJoQQQkjyNErhGIQQQojzHHHEEbLXXnvV+HyNNdbI+3vDDTeUP/7xj0X3sfbaaydWPld4/fXXxfO8egUShw8fbuSM9mOOOUYOP/xwadKkiRXlJXaRZS1ddtllcvHFF0vTpk3L3sfSpUulYcOGsZaLmBtExz2S1pMHhBBCCLEDBtEJIYSQGNh4443l6KOPLrldjx49Qm1HihMMMLsGAnQM0pkBAqaNGzeWRo3YVLaZhQsXSuvWrdV1rO+1bNasWWzlIoQQQggh9sF0LoQQQojDecsff/xxWX/99VUAqHfv3uqzVatW5W1f28zUKPnPH3roIdlss82kXbt20rJlS+nfv78cddRRMnPmzLztfvrpJzXjulu3biogjuNecMEFsnjx4lDnVqys/mdTp05VTwS0b99eWrRoIbvvvrv8+OOP1dvhPI4//nj1fscdd6xOoxOcbbh8+XK59tprZd1111U2w/nss88+8tVXX9Wa03bkyJFqe8xy7dOnj9x44401yv3RRx/JnnvuKV27dlX7xWAKnlwIpvspzPtbV3mff/559f6+++4raieUB09BYNb+rFmz5IcffpD58+eXtG/wmj/11FPqyYnmzZurfeE8wcSJE+Xggw+WDh06qAAlBoUQrCzk119/ldNPP13pDte6e/fucsopp8iMGTPytsN1w9MZOBauHeyzzjrryA033CAVFRV52y5btkyVDU9t4Brj+gwaNEhpqNg5hMnJ6+f5hVZPOOEE6dKli9Lw5MmT1few20UXXaRsgGu82mqrKZ2NHTs2b9/+9Xvrrbfk6quvVlqA7TbffPPq6/zee+/JNttso/aPe+DPf/5z0evwxRdfyAEHHCCdOnVSx8T5XnPNNbXeu3FovxCcM7YZM2ZMje9gE5zb/vvvX/3ZK6+8Ittvv70qM77DdT/wwAPzyhEVnC90AD1AFx07dlR2+eabb/K2C17zJ598Uv7whz+oMpx99tl15mLGue22227qemDfQ4YMUfdLMdvU9dnHH3+szt3fz0knnSSLFi3K2xb34BlnnKHuTdw3uE4o5z/+8Y+y7RN1v74d/ve//8mll14qPXv2VPraYIMN5NVXX62xPe433Fu4d2FP+Hg8DRQFXI99991X6QHHgj6gm2K6AvBpAwYMUNvinsOs8GJPH0XxG/69+eabbyob4N7E/lE3PvHEE3nbYrsJEyaoezWYbi2onbD3J3jxxRdlo402UuXr1auXXH755bJy5crQ9vP90+zZs9V7HBPXGTacNm2a2ubee++VgQMHqmPAdjhmufdSOde9PvX6nDlz5LzzzpPVV1+9ulzQ70033RTaRoQQQkhacHoNIYQQEgNLlixRwZcg6FyjsxsEnefC7QA6yeg8xslLL72kAn1nnnmmCt7ib6RzQIDAD4jGwcMPP6yCT9tuu60KHqLTPWnSJBWUQcAUQUfw5Zdfyk477aQCn6eeeqoKJH/99ddy5513yr///W8VtMDs33JAZ3277baTLbbYQgXBx40bJ3fccYfst99+8u2336oZ3gjoIbCLgAMCSAg6AHTe/Wuzxx57qIA3AgJnnXWWChYiqLP11lvL+++/L5tssknece+55x6ZPn26nHjiieq8HnnkERV8RHDqyCOPVNsgYLXrrruqa3DOOeeoIC1+gxz4OH+UuRh1lXfTTTdV+3vggQfk5JNPzvsdArbff/+9CupAV3fddZe67rjmYdMT/POf/1TnhuAcguX333+/CjAjQIKy4DrCzp9//rkqA4IfwaAdAu1bbrmlrFixQtkGZf7555/l73//u7zzzjsqCNW2bVu1LYJpzz33nAroYDtch9dee02l34B+R4wYUb1faBnHO/bYY+X8889XgSEEcN5++22pL/41QpALesKaBLj+W221lTofnD8Clbgmf/vb31RwHOeBgFwQlBtBPFxrnP8tt9yiArUYaIItMJCAASYMUlxxxRXSr1+/vKdTEIzGtUcAEUFC2B9BWmyLlCxPP/107NovBu5pDAih3DfffHPedyg7Am3YBuDeRaB0vfXWk0suuUTdCwhyImiJ677WWmuVdU18O+HaYEAGQcO7775baeuDDz5QwckgL7zwgvIn2Pa0006TNm3a1Lpv6AY+q7KyUoYOHar8EXwWfEAUcE0GDx6sBilwz2MQDPdLgwYNlL198Dl8CLbFNcd1w7XE/YsBHNitHMrZL64bfO2wYcOURhGoRlAWAx7BQUoMzMCmGEjEwMwvv/yitITjhAX+B3UbdI/7C/uAXeBT//Of/8iaa65ZvS3KgYAqgvrQMupVaK9z58419hvFb/jAN8M+8GsAPhHnCC37vhH1GcqAYPWf/vSn6t/69ViU+xODnQcddJCyKb7H0xA4JvYRFegS9QrqWNxT0DnOHWWBPeFb4IfxOQY5cS2D1ynKvRTlute3Xj/kkEOUfnG/YlADTwH997//VboODo4SQgghRuARQgghpGzeeecdTJEr+jrssMPytq1tO7xatmyZt+32229f47OwjBs3Tu2zQYMG3pdffln9eWVlpbf//vur7z7++OO8Y/Xp06fW/Vx55ZV1fnbAAQd4rVu39lauXFlnudZff31v7bXX9hYsWJD3+XPPPaf2OXLkyJLnVqys+Ay/v+GGG/I+v/HGG9Xnr732WvVnOAY+w3Ur5NZbb62xPZg/f77Xq1cvdZzC696tWzdv3rx51Z8vXrzY69Spk7fFFltUf3bHHXeobT/99NM6z61Y2eoq7yWXXKK+++677/I+P+mkk7yGDRt6U6ZMUX/jWoW1r399W7Ro4Y0fP7768xkzZnhNmzb1crmcd8stt+T9Bte/cePG3sKFC6s/23fffb3VVlvNmzRpUt62n3/+uSpbUD9LlixR2izk6KOPVhqeOnVq9Wft27f39txzz1DnEDyGj28LbOMzZMgQ9dlRRx1VY/uhQ4d6zZo180aPHp33OWwDzeO3hddqo4028pYvX179+Ysvvqg+b9SokTp/H2zTtWvXPK0sXbrU69Kli7ftttvWuJ98fQa1EJf2a2OTTTZRGl+1alXe59tss43XsWPH6vM877zz1L6nT5/uxcXrr7+u9nnooYfm6QPXAhpCGQqvOWz8/fffh7ruhxxyiPrsww8/zNsWx8PnwWsLavsM98Qnn3yS9/lee+2lyhK8JxYtWlSjXBUVFeoatmnTxluxYkVZ1yrKfn077L333nk2/eyzz9TnF198cfVn//d//1f0nJ9//vnqeisMxcqHa9SkSRPv9NNPr/5s7ty5yu8MHDhQ+VEf+BDUhYX2iOI3fHv27t07z1/jPT6DX8H+fFDHBP19Ofcn7hnUG7hPZs6cWeOYYX2y75/OOOOMvM/9ew7HQB3l8/XXX9e4llHupajXPUq9Xngfwhb4O6gDQgghxGSYzoUQQgiJAcyye+ONN/JeWMyuEMxeLdwOL8z8jRvMOEOudh/MSr7wwgurZ8jFBWYUY8YgZtfVtugnHhnHzEHM1ETKFMzG919+eouoaQKCYNYnZpMGwew4f8ZpGDCLHI/C41HyYPkwUxO2xMxxzJILgtmn/oxqgFQKmBEcPKb/PR6xx4zHuMBMU1xTzHr1wSxLpE9A6hg8ig+QvgDXJcoieZiVGpxhjVmYSFkAO2M2eBDM5sUsUD/dAWZvQ8+YmYyZkUFbYkYmZnAGrzWeXMB5ANgaj/djW8yAxCxhzPYO2vK7775TM6zjBrNyg8Bmjz76qJrljdmVwfOAXnGdi2kWszyDufthH//eDz7JgG2QJiGoFfgCPKUAXc2bNy/vmP7CxYXHjEP7tYEZy5jBjnL5YKY7Zphitqp/nr7Gn3322aIpLcrB91GYDezrA2CWMmbI4n4sTBe19957V8+yrws8KYBZ57A/ZkQHqW3h59rATF5c20L7ww7BFCDQjA/8ANJzQOt4SmHBggUqLUs5lLNfPCURtCmebMGTF0G9YCYyKJwNDN8QZRFsv3y4n1AeaNn3J59++mn1dtA16hH4F/hRH8y+xizqQqL4jeC9GfTXeI8Z0HPnzq1Oo1UXUe5PzNDGE1nYFrPaC48ZlXPPPTfvb9+v4Kmc4BMXmM2Nv4PXMsq9FOW617dexzXEE3vQQWGqJUIIIcREmM6FEEIIiQE8kr7LLruU3A6d6TDbxUGxYBLyoYLCfM71Aekh8Dg2Otl4bB+5gRHEPeyww6rT2eDxbHDllVeqVzEQnCgXBIwLF/7z0+MgqBQGlBFBcv+x/WIgOIC8tj7I/V4Ijhs85uGHH64C9EhPcNttt6ngKwI9+LwwFUgU8Gg9tIT0A9dff716ZB6P6yM/OXIy14di54W8w8h5i6BH4efAP2ekr0EQC8H9YIC/tv0j2IjyI20I0hQUDsQgwBVM94BUO8iDjn0gvzeCQHghmFwfClOOIKiEc0IQqDZNFDtmoe18+xRLhYDvglrx7xOkjqmNwvskDu3XBgLlCCrj2vhpTvAe1wjBOx+kPsIgEdJkIGUGAmjYHr+v636qCwTrYd9ifgxpdRDswzbB/YdNG4NriwGnYsHgKAHiunxAof2RI91fawDB1UKCOo9COfsN47dQR8D+xWyKa4L7PAxYTwIpkhCkLsyRHbwn/DoJA5m11VtBoviNYLnrUydGuT+jnk8p6uNXotxLUa57fet1DMLBp2NQB+cBu2AACm2JnXfeudbfEUIIIbpgEJ0QQgjJOMGZaUHCzijFAAJycGNBRbyQAxWzpNGpRnAd+Wr9AAcCcrXlHPaDAuWAvM+1Udvs+GLbITh766231rpNYUCwruP6IOiMGYyfffaZ/N///Z+yCfLjIvD12GOPqby29XkCAjllke8euXcRtEbeYczIrQ+1nVcYO/v/I8+3nzO72AxEH+Q2/+tf/6oGXTBTEvmPMSCAfMkIyCIg74M835ixiFnE0BlybuOcMSsT7xGUqU3PpTQdnP0aPA8MVKAcSdqu8JhYVA8LJhbDf8IgTu3XBgKrmGGLIBsGZzAohkEbBNMwezm4HfLjI7cytA6NI680fACuFWZrp0HhNUyDsPbHbF08oYF7Fk83wGb4LeyDwbWgzqNQzn5rK3N99VII1hJAmTAzGoF0DFBgdjLuUcysLlx8NQpR/EZclHN/xkVUvxL3tazrGPWp1zErH34dT7LBpz/zzDMqjz6ua+Gir4QQQohuGEQnhBBCHMWfJRYEwe7CWW1YGA2PnhcSZbY6AsUItvmPtCOAg0AuAtJYvMxfPA4d/rRm4hejrgAryogZqpgJV99ZzcVA6gi8AGaMYiE3pPypK4heV3kBgg8IHiGQjEUdkWYDASQsYKcLpGtBuZFiIcy1RlAWgbbCgAlmlxYDekWAHi8EcbCQIBbAxExoDCjge4D0DvXRNAZMsFgeUlCkpVn/PkGgMe5jltJSbWAgBEF0LJiIICgWGcQM4EJwb++www7qBZDmAamR/vKXv5S1kCJ8FAKh8GNIUVHMj0VZ4LLw2sLGxWZTh51hHQWk/kCgG09RYMHeIBj8MW2/QftjgUrMVi5VtxQDaUQQKMcgH54aCYKZ0sGnWvw6CelnCmch+9e7Pn7DLzd8Zqk6sbZ7Jcr9GTyfQoqdT5JEuZeiXPe46nU84YSnp/BCqiXo+fHHH1fB+eBgHSGEEKIb5kQnhBBCHAUzQjErzwcBRwQbAR6X9sFj25hlipnSPuhEYxZjGJDipBA/F7sfyETAGEFeBHqKBTIxQ7hY0DNukPc3WK4gSE8xbdq0Wmeil5tupph9kOcXgbxS51xXeQFmXiLXOWa4Dx8+XH124okn1jg+AjnIVZ4G/uzl5557Tj755JMa30OHwVzWCMAUzppE2odC/SG4gqBhEAS7oK2gjTBbGrPx33777bz9Qnd+vt8wYCAFuZhxX2B2ZDFmzJghcYI0PxgUQZC62DVHuiHcq+VQSku1gcEwpKFC2gy8YBcMYJTSONJY4ImD4PGgQWix2PaF+D7quuuuy7uOyIePoCxSxpSbKgaaQ8opXFsMPAW55ZZbytpnqeOBQp0j3/w//vEP4/YL/GAzZl0HwT0UdqChtvLdd999ytcGwboT0AsGXZEb3Wfy5MnqiZ1i+w7jN4L8/e9/z/ODeI86CYNlSEMWvFeK3SdR7k8MIMHPjxw5Mk/vGJQrHPBImij3UpTrXt96Hdc5eK396+oH+tNoExBCCCFR4Ex0QgghJEWmTJmi8mMXAykPkPrEB4s1YhZnMQ488MCSeVWxaBhmVWOhNsz0wkxdzE7ELK9gegWkAUDgCDOikZsUKTEQNAybzgUL2CEIgZQayBeOQOeoUaNUgBPHAniPmYMoDzrIyCmLWW7oQGPmIAKu6OBHWfyyHDCrDUHAa665RuXMxYxCzMDDwoA4dww8YEE1BGBRVqQhQEoCpKlB3ul33nkn8jFxDZFXe/DgwepYCGK8/PLLKpjoL/RaTnl9kDoHAQ/M3EMgyJ8d6INH4xFgRzAnafsGg1UIzGCmKAYnEGzBwAwCLdAhPkM6G3DwwQfLiBEj1OP7mM2IwYoHHnigOq+0D4JT0DEWLMX+EMxCHl8cCykDkBc9mKMbs/wRKEUAaerUqSrQg4AP0o6EBXZHkPXQQw9VL+Szx/0xYcIE9bQFAmXQelzg+iJQ7S/ih/sEM/txT0EvuE8wu9ef7R2FMFqqbaAGuc2hIzyxgmuEhVaDQIMIdsIXIM8/golY4BbXLJg7HWXHQotI8+Jf/9pAUBU2x0xjlBf3DwKvCLLiXrzzzjulPuC+xOAT0lBALwh4Ysa8P8BT7sz9YmBgB7aB70egGNcCGoLucQ3KzV2f1H79gDHuqQcffFAFM2EnPIWAfeM+CrO4L+4/pNhBPQAb4z7F/YR7B3VdsI7Bd3/+85/VAr9bbbWV0g3qB9y38GnIrR4krN8IgsEg6B0aBPCJ8O8YcAimAsJ9jqd7kIIGqYtw38AWUe5PBIMR0IeG8QQS7hE8IeSXEcdNiyj3UpTrXt96HbPdUWeh7YF9QwOY7Q6fDv36i6cSQgghxuARQgghpGzeeecdTOvybrrpppLbYru6Xvfdd1/1tttvv32d2z7++OO1HmfcuHFqmyuvvNJ77LHHvEGDBnlNmjTxevbs6V1++eXeihUravzmlVde8TbYYAO1Xbdu3bwLL7zQ++GHH6r3U2zfPvfee6+3yy67eF26dPEaN27sde3a1dtzzz29t99+u8Zxxo8f75166qlenz591LYdOnTwNt54Y+/iiy/2Jk6cWNKGsAt+W+qz2soKRo0a5Q0cOFAdH98PGTKk+ruVK1d6d9xxh7fJJpt4LVq0UK811ljDO/LII73/+7//q3HdR44cWeO42F+wiYVtDz30UFXGZs2aee3bt/c222wzdb0rKyurt8O+8DtsH7a8PjvttJP67qGHHqrxHc6/trKGtVlddq6t3DNnzvSGDRvmrbnmml7Tpk29tm3beuutt543dOhQ77vvvqvebvHixWq73r17q+1g7+uuu857880388q9fPlypZNNN91U6QZaRXmOP/5478cff8w7Nq7jBRdcoLSIfW600UbeSy+9VG0LnGdt16sQlO/qq69WZcf1a9WqlTdgwADvpJNO8j755JOSdgC1Xbfajv3NN994Rx11lNe9e3d13Tt37uxtueWWqhyzZ89ORPt18cUXX1T7nkceeaTG988++6y3zz77eD169FDXpVOnTt52223nPfPMM3nb+TYqpq9i4Dpef/31yt7YL+6d/fbbzxszZkyo8/Updt3BV1995e28885e8+bN1b6POeYYb+zYsWrb008/PW/bYvaqzYbFtID74cQTT1T+FZqEnuA7i21bl5YKibLf2uwAoCPoKciSJUu8888/X/l2aB/3HvxgqXsmyHvvvedtvfXW6r6BD9hrr72UvmvT7j333OOttdZa6nqvvvrq3m233eY98MADNc4lrN8I2vONN97wrrjiCq9Xr15q/7DVo48+WqMM06dP9w488ECliVwuV8NmYe9P/97w61bUwZdddpn3+uuvh/bJtdm6rjqo2LUMey+Vc93D1uuF+ps1a5Z37rnnKvtAGzgWrvk555zjTZ06taRtCCGEkLTJ4R/dgXxCCCGExAcWXsQsrjCzPYkbIH3Kxx9/rGZcBxftJIREA7PtN9lkEzWDFvn2if3gaRHMPseTROU8xUEIIYQQApgTnRBCCCHEYvDYPNJSIE81A+iEhAdpZ4IE141ACgxCCCGEEEJ8mBOdEEIIIcRCPv30U5U/Fvlskaf7j3/8o+4iEWIVG264ocrnPGjQILUoJdYq+OCDD1SebeS7J4QQQgghxIdBdEIIIYQQC8Hia1jkrn///vLoo49K3759dReJEKvYb7/9VOAciyNikUukwcLilhdddJHuohFCCCGEEMMwKid6RUWFyt2KFeaxYnj37t3Vat6XXXaZWv2bEEIIIYQQQgghhBBCCMnsTPQbbrhBzap68MEHZd1115UvvvhCLQLTtm1bGTp0qO7iEUIIIYQQQgghhBBCCMkYRs1EHzx4sHTp0kXuv//+6s8OOuggtUgWZqcTQgghhBBCCCGEEEIIIZmdib7VVlvJvffeKz/++KOstdZa8vXXX8uHH34ot956a9Htly9frl4+lZWVMmfOHOnYsSPTvxBCCCGEEEIIIYQQQgipFcwvX7hwoUor3qBBAzuC6BdffLEsWLBABgwYIA0bNlQ50q+55ho56qijim5/3XXXyfDhw1MvJyGEEEIIIYQQQgghhBA3mDRpkvTs2dOOdC5PPPGEXHDBBXLTTTepnOijR4+Wc889V81EHzJkSMmZ6PPnz5fevXurk27Tpk3KpSf1ZerUqWrUJy02vldkeYXI2h1Enjss/7uNRoisqBQZ0EHk2YLvCLFB34TogDoPz0FPifwwW6RxTmT0aZI4s5eIbPdg1fsd+4rctaekyseTRE76Z9X7UzYWOWfz8L899/9E3hhb9f7tY0S6tIq3bFe8I/LsD1XvXzhUZM2O8Wj86+kiRz5X9f7oQSKXbCOx8c44kbNeq3o/dFORUzcRrVz3ocgj31S9f/xAkfW76C2P7ez4oMiMJSJdW4q8dWy03/7zR5GL3qp6f8nWIkevH/349OUkCxTTedBvB/n7XiLb9REr2X6UyKylIt1aibx5TLz7Trp+TpInvxW5+oOq93/ZUeSAAfHte8oCkd0erXq/5xoiN+8az34nzRfZ47Gq93utIXLTrvH68yRjIDs8KDJzSTI6vPljkZGjq94/uJ/IJjF3uYP16sVbiRyzQbz7/3yKyHEvVb0/fkORYVuKFrJe9y9YsEB69eol8+bNU+tyWjETHQF0zEY//PDD1d+DBg2SCRMmqBnnxYLoTZs2Va9CEEBnEN0+Zs2alep1a9BMpEGFSKMW0Ez+dw2bV33XsMh3hNigb0J0QJ2HB3VPg8UiDRumU8+saFRV74HGzdOv21q2/v34zVpGO36TFr//tlVrkTat4y1b05YF+28Tj8ZbLSn/nKPYs3kr/W2VKDYkpWmAdmilSKMy7tUWreqvDfpykgWK6bzl4t/vn8L7yla/pvq1XjJ1f9L1c5I0C/jKuK/vgt9iDSBOu7f2ft8vbB9mv1H8eZIxEBV7KbNeKwXaWL5d0D6Ke//BerVFAvtvtTC59mIUWPdXkcvlpC5qT/SigSVLltTIPYO0Lsh1TtynWbMiLZYUKHaLlLhvCLFG34SkCXUenbSqG5Oqtah1bNJl91LQeNyPfRrzGKllZbONctqjcbRh6ctJFsiKzqvzDuTcbluYdB5p2CWsr4+i8zRiIEkcwqR2Yr2PpbERlRWfWF+Mmom+zz77qBzoSMmCdC5fffWVSuVywgkn6C4aSYHOnTvTzsRZqG+SBajzCDDSaCSlOpBRNJ7aAIkBUQwDikBihL6cZIGs6DzBGDqJYH9dZEXnPuYkqw6PKfdm1rRSLkbNRP/rX/8qBx98sJxxxhkycOBAGTZsmJx66qny5z//WXfRSApMnDjRODvb6ISJmZiob0LihjoPj5exY8dVn+qulqlxYtX9UuZ+qHOSBYrp3DO07okliJ5wpM42GyXZz0/K1uWUuRx/blsMxKmZ6KIP1v0WzkRv3bq13H777epFiE6va8poICGEEDfxOyhpzSI2YbayT9SiJN7xT6HHYluHtD5k6VyTphzpG3SrE0JMam843rbI2nnYmBYlvYPYpRXLTZI5jAqip0lFRYWsXLlSdzFIgFatWsmyZctSs0m3ZiIrK0U6NREpPCy+W14hslqR7wixQd9RaNy4sVp/gpD60qFDBxrRgoazjiCnl0GN5zIUqGYH0EzKlQl9OckCkXRumM+NAtO5aLa/Zu2U488tlnsyZfeyoRfW/eHIXBDd8zyZNm2azJs3T3dRSAFYQHb27Nmp2eXy9aucVJOGIuPG5X932SCRSqxi3qDmd4TYoO+otGvXTrp27VpyNWpC6oL6CU/abWST7uycxZ1REzVuXolIbGhaWNREnRMSN8V0rruOsfnJN9tsl2RxcwaVOYo/T1IjNqbP8QkWPZFDGVLlsu4PR+aC6H4AHUnzW7RoQaEYxIoVK6RJkyapHW/l7Cpn3rShSN/2xb9DgL1fwXeE2KDvKAOLS5YskRkzZqi/u3XrprtIxGIwUNS2bVvdxbCCtHKUuoBJuS6pcZIFqHOSBbKi8yRnorvShEn0ybGE9hu2/WiazhNv03nZaZPGjWlaMZVGWUvh4gfQO3bsqLs4pMjIV9OmTVOzS+439TdsJNKsWf53DRpXzUQv9h0hNug7Cs2bN1f/I5AO/8jULoQ4ns4lI8c0ajEww/eXlbLZgu6FRQkhBfeSzQZJeQ0WYtbComUdR+yCgXmSJg0kQ/g50DEDnZiZl5kQVzFd375f5FoRpD706tWLBjQ0uGVS57k+ZfEs0nimFo01oQwOomthUfpykgWK6Vx3HZMElRpSXtiAZ3l7L5dEu0WSwzZ9aGtzaTQU6/5wZCqI7sNcP2ayatUq3UUgJLP6pl8kcTBr1iwa0oJ0LloWFvXc6LBQ4yQNdAcbqHOSBaLoXPc9GUtOdFcHceMg5vMwySzl+HNX8pebvM/abKLT17DuD0cmg+jETJCbmRBXob5JFli6dKnuIlhDkp1a0zt0JpUlatnK1XiWmjhZOlfTKfdS0JeTLFBU5w76L67B4g5ewv7c2kGRFMvt8toCrPvDwSA6MQYTZ8I62I4imjBR34TEjYmL55oOPYNd9XIUjSf6WLRuQxRAHSdk1zIMG0dzg76cZIGs6DytQXvDqiXn84uH9fWm6Nzm9Dlptrl03kemaMV0GES3lKuuukoF5Xr06CGVlX6ms9/Zeuut1ffHHXec2ILpOaNr491335Vrr7020m8222wzufvuu0UX11xzjey6667ajp9FbNU3IVHo1q0bDWYBti0salKA1kSNm2QfYtY96jmkc0LiJorOTRu4LGsmegL7dqX+yTlsmHL8eZJyt1GHQXskMS/OlLl2rPvDwSC65UE55C16//338z6fMGGCfPzxx9KqVSuxiRUrVkgWgujPP/+8jB8/Xk444QTRxZlnnimfffaZvPPOO9rKkDVs1TchUUD9QyJ2yDOYz8WUzkI5ncVyNW5x/IVoRNetQl9OskAxnXsuz0Q3rO4l0fES9udZeoLO2IC9Rjux7g8Hg+gWg8ct9txzT3n88cfzPn/iiSdk3XXXldVXX11sI808TLr80+233y5HHHGENG/evNZtKioqZOXKlYmVoV27dnLQQQfJHXfckdgxCCGElIZ9WrM6F7YEGUzui5pcNkIIyapfczn4Z5pt0mhK2BrwtqSZlW7bM9ndk5hhEN1yEIx95pln8gKujz32mBx55JFFt//vf/8r++23n7Rt21Zatmwpe++9t/zyyy9529xyyy2y6aabqm06d+4sgwcPlh9//DFvm++++0722msv6dixo7Ro0ULWXnttufHGG6u/32GHHdTvgowePVqlmMHMbR/8ff3118tFF10kffr0UcfzF2G8+eabZa211pKmTZtK//795bbbbquR0gaz7b/66ivZcsstVVB64403Vn8vW7ZMTj/9dGnfvr307NlTBa4L+fqLj+Wkg3aSDXq3VOcKm82YMaOqXCIyZeJ4GdApJ4888oicddZZal94xGXYsGGyatWq6jIMHz5cFi9erM4FL5x7bYwbN04++OADOfjgg/M+9+314IMPKlvinL/++mv59ddf1Yx1nD/Ob80115RLL71Uli9fXv3bE088Ubbddtvqv/F0QoMGDdQ19Fm0aJF6cuHpp5+u/uyQQw6RV155haswp0TDhg3TOhQh2oCfJOFIu6+pu4Fuc+e6bI1n6CkDWwYfbCGu+6Xc/dCXkyyQFZ1XuwH66Uy2f6Lo3FaJpNkGSfpYOuWSFZ9YXxhEt5x99tlHBVRff/119ff3338vY8aMkcMPP7zGtmPHjpWtttpK5syZI6NGjVLB9pkzZ8rOO++cF5SdPHmyChq/+OKL8o9/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VmITy5cvT+1YnsYg+vPPP68C3SeccEKMpSh9zGHDhqV2PJto3bq1nH322XLppZc6o29CdDFu3DgaPwQ6+pk5i89Zd9nL1bgTM7osvEYuoPvy0peTLFBM584tLJrwTHT6/nTt4iXdbuEFLW73FO9/na6GdX84GES3mCZNmsiee+4pjz/+eN7nTzzxhKy77rqy+uqri20sXbpUXOf222+XI444Qpo3b17nIpQrV66M7ZgbbbSRmo1OioMBDQxGff311zQRIfXAs7WXqZFMdlgMPudS18NEjRtsTmIQUZRros4JiZtSOnfBt6Y5E906UnJzSbnTnGX+3JFsLk63203RiukwiG45CMYibUcw4PrYY4/JkUceWXT7//73v7LffvtJ27ZtpWXLlrL33nvLL7/8krfNLbfcIptuuqnapnPnzjJ48GD58ccf87b57rvvZK+99pKOHTtKixYtZO2115Ybb7yx+vsddthB/S7I6NGjVZoRzNz2wd/XX3+9XHTRRerxERzPv4FvvvlmWWuttVQajP79+8ttt91WI6UNZtt/9dVXsuWWW6qg9MYbb6z+XrZsmZx++unSvn176dmzpwpcF/L1Fx/LSQftJIN6tVTnCpvNmDGj+vspE8fLwNVy8sgjj6hUKNhXt27d1IzuVatWVZdh+PDhsnjxYnUueOHc6xrd++CDD+Tggw/O+9y314MPPqhsiXP2A7ojRoyo/gyB8L/85S+RF6ksTOeCND/rrbeeuhYIsEMLSDHz5Zdf5v1u/vz5cvTRR6vZ2rg2mK0NfeA8w6SY+eKLL2S33Xar1sibb76pyn7ZZZdJly5d1OuSSy6pcT5x6TTseUJ7+BzlTooGDehuifu0adNGdxGsQHcb1eYmsmepxnWXm9hJWX31GDr49OUkC0TRuedCED3pxRfFXuK2jUkz0cvy5wleTBsXuE1V2xpvJNb94ch8VAfBWgRAdb7qM+Kzzz77qDQRr7/+uvr7+++/lzFjxsjhhx9eY9uxY8fKVlttJXPmzFHBQgTbZ86cKTvvvHNeqonJkyergOuLL74o//jHP1SA0/9d8Lhz586V+++/X1555RUVWMa5lMMdd9yhgp/33nuvCliDc845R6644goZMmSI2j+CoQi033PPPXm/xeABtjnllFPk2WefVX8feOCBctJJJ6mg+lNPPSX777+/nHfeefLRRx9V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34TogjrPXicrLK70CUzRuCv2JOktLBplv6bonJAkKaXzvIVFLb0UutLHkeLXoL6Us6so/twFidh6r5pgfNb9MQfRfTDT/K233pJRo0bJww8/LGuttZY89NBDteZJJyQsSBekg2INCgN8GHEMXfomJE2o83DobjLpPn59KllPsz2iaDyttoRpgRHt+iL1hr6cZFXneUFnsR/OttZHzpC63wR/bv3CohlZW8AErTgZRPc55JBD5IcffpATTzxRTj/9dNl9992rFx4lpBzmz59vpOHYFyQu65uQOKHOo5NmyylnaWDVpAU6y9W4620J9gDMt2sUDdKXkyyQNZ2nGWi0gazM0jet3eKyreuDCWbJmk9MPYgOmjVrpnKkf/fdd7L55pvLdtttpxYgJcR0SlXydO6EEEISq4MyfnwTOgq2Y1uwgoSHl5YQQ8jZ73MtLTZxbNFM223EnOikrIVF66Jv374qpQsh9SHsqtGE2Aj1TbIAdW74THR2joriJaRxk2bQpwmDNvYHFujLSRYopXPTfKuRQddkd283OTN2X64/jzWXO3VoRRuddX8KM9EJiZOJEycaaVBbZx4QszBV34TECXUeDlYr0TApt3i5Gne9LWFC588VvHraNY5rQV9OskApnQfvJRdceNJu2jYbpVVe3fV/FH+eRlVuvQ4dzonOuj+BIPqMGTPkiiuuUPnQkQf9vffeK7rdiy++yFEMEplVq1alZrVSzol9QWKzvgnRBXVeBhoqHN0dOpsDrtQ4sZUotz11TrJAKZ1bXFVZG9h2iZwh1zML/jzxwHwKN5IJ/iYLWkk1ncu0adNk4403Vv936NBBFi1aJPfee68cdthhct9990nLli2rt8V3EyZMiKWAJDsENZQmNnfmiT3o0jchaUKdmx3EtnVh0bz9xLOb/H16yWg8SXszMJINdN2z9OUkCxTTue5B5thJePFMq/vRll/rsLYv15/HaR7LTe3WTPo6YN0f80z0yy+/XBYvXqxmn8+aNUtmz56tFhV95plnZPvtt5fp06eXf7UIEZF27dqlZwcvm06fZETfhGiCOo+Ojv6nZ9k5m5Rb3ESNmxbEcC4IZZn9apNDlN2aqHNC4qaUzvN8q6V+jQsi6q9HYw1Gl7GzKP48jfZE0sdIZLJF4H0uYbvobEOx7o85iP7222/L2WefLdtuu231KMVll10mb775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bwuLcsLaeTBUanBc0cSisTtQcYeLo43HzSdhx03xvLe+Ws86yq4IO7ea6BbViiB2Hrf2NXZyLvp8Up2oVsd+0HIX055Xc32nYn68QM9ShR6mOI5xa4ZE//73vy+33357+vOnn34qRx55pPkPnHfeeXLDDTeEPu51110nW265pQwcONC8dt55Z3nggQeKKaJFFaJv374SF1RpX2oRY8TJvi0sooK187Vj4tZbhL3sRIzuh7Vxn7or9c1Yi1HuybNXJHoYO7eR6BbVikJ2HodEf72BTSwaooIiRqnsp5jjrA3jljiNE0uBSjU3a4OtVIxEf+ONN2S33XZLf/7b3/4m9fX18tprr8kLL7wgRx99tPzpT38Kfdzx48fLL37xC3nllVfk5Zdfln322UcOP/xweeedd4oppkWVoZyZgKtwHGRR5bCZri3WBlg7D4Y4TMbjUIa1wcY54bLVbVHpCXsYTfQwdp62cWvkFlUGLzt323E1O7tTZb4O2wRkI1HlY/NStunl7B9KLp8na4+92HlchCT68uXLZdiwYenP999/v+y///4yfPhw8xnvP/7449DH/fznPy+HHHKIbLDBBrLhhhvKz3/+c+nfv79MnTq1mGJaVBkqpcFUUM6lTOWwqG1YjTGLtQHWzuM9YK6onEuporCksoiLjVe6HixqB93SO010K+diUa2IS3seFbykmkqNWnEy1NK53CimPY8S1ZZYtBIseqWc0rXeJlaURB8zZoy899575v3cuXNN5PgBBxyQ/n3VqlVSV9e7nKXJZFL+8Y9/yOrVq42si4VFKVGoXari8YCFhYWFRcwRBwK0mhKLRjk5qono2ZgNWmqhSmux/gJpohdhS1bOxaKW4CeBYts1izj0zWsL8b+2w9Z9vNFQzE6QWLnmmmukra3NyLc0NzcbTXQt97LuuusWVaC33nrLkOY4NqLQ77rrLtl00009t21vbzcvYsWKFUWd0yIe4EqGtX3yaVGbqJh9W1iUEdbOYx7BZfu7XldPsTZeE2R9HljTile9hrE3yrmQDA9r5zYS3aJaEcTObdtW+/1cWaRuUpUrd6j2PKK6qFLTKGtugTi0NXYeFyGJftlll8nChQvllltukcGDB8uUKVNk1KhRaSL7X//6l5x11lnFHFo22mgjef31141kDI5z0kknyVNPPeVJpF9xxRXy05/+NOd7JDgd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ipgATPYgEhHRSkT7jugGRDuP6HTktXF9TgWc4jMRUY+NyXZUlHCybCjabbG+aodnPWQ37dK2dkW79ctE3q9oG93Th+3evm657/q8CNpVVlkl+bcd7ot/Le3QpqmAtiPRzz33XPfe977XffSjH3XXXnut22677dx+++3nHnnkkcluWkSLUSRtNCJiqiHad0Q3INp5RKcj2nhENyDaeUQ3INp5RDcg2nlEtJUOJ9G/9KUvueOOO84dffTRbquttnLf+ta3Eu/ImWeeOdlNi2gx7r777tjHER2LaN8R3YBo5xGdjmjjEd2AaOcR3YBo5xHdgGjnEdFWOriwqDR5/vWvf7mTTjqp8poK4rzwhS90V1xxxbjPL126NPkB0q5ByyZi6uGZZ56J9y6iYxHtO6IbEO08otMRbTyiGxDtPKIbEO08ohsQ7Twi2ko+wCPXKhvaViS6KsEPDw+7NdZYo+p1/f3f//533Oc/85nPuI9//OPjXl9vvfVa2s6IiIiIiIiIiIiIiIiIiIiIiIiIiIjOcTxJt35KkOhFoYh16aeDkZER9/jjjydi/apKHjG1vD5yftx7772ZlXAjIqYion1HdAOinUd0OqKNR3QDop1HdAOinUd0A6KdR0RbyQ9FoItAX3vttTM/11Yk+qqrrur6+vrcww8/XPW6/l5zzTXHfX7atGnJj8XcuXNb3s6I1kEEeiTRIzoV0b4jugHRziM6HdHGI7oB0c4jugHRziO6AdHOI6Kt5ENWBHpbFhYdHBx0z3nOc9wll1xSFV2uv3fddddJbVtERERERERERERERERERERERERERET3oa0i0QXJsxx11FFup512crvssov78pe/7BYuXOiOPvroyW5aREREREREREREREREREREREREREREl6HtSPTDDz/cPfroo+6UU05xDz30kNt+++3d7373u3HFRiM6C5Ll+ehHPzpOniciohMQ7TuiGxDtPKLTEW08ohsQ7TyiGxDtPKIbEO08ItpK89FTknp6RERERERERERERERERERERERERERERER7a6JHREREREREREREREREREREREREREREtBMiiR4RERERERERERERERERERERERERERGRgkiiR0RERERERERERERERERERERERERERKQgkugRERERERERERERERERERERERERERERKYgkekTXINbQjYiI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0v5VRExRiioeptcUhaaC0JKe01gfETGVEO08otMRbTyiKEpdysdFOZeIKQvS40gXkUf0oosuStLnpNt17733ugsvvNBdeeWVUVc0Ykoh2nZEN9m5TQe1US9K/bv22mvdZZddlmiKRkRMRUQ7j+hWOxfOO+8895Of/CQZw7/4xS+6f/zjH0nGRUTEVES084hOR7TxiHrsZaTL+LjOiKeP6DoowkUP7N13350UC7300ksrES4q3nXjjTcmUYtXXHFFRz2wEZ2PaNsR3WbnL3jBC5IFlkAE4wknnJCQ5xrbI4EeMVUR7Tyim+1cEKn+m9/8xn3lK19xl19+eSTQI6Ysop1HdDqijUekQXI+ijAPEeh3dyEfF+VcItoaSgv50Y9+5ObNm+f22msvd/TRRyevK0VUD+zuu++eVI/eY489ktf33HPP5EfRjJ1SuCCiMxFtO6IbkNfODzjggMp39J4iFaUTvd12201i6yMi8iHaeUQ3oB4732CDDZLxXAXpttxyy0lsfUREPkQ7j+h0RBuPKILbbrvNHXbYYUntHv07Y8aM5HUI9G7k46KcS0Tb4oYbbnAveclL3A477JA8pEoN+fa3v50UJBLe8IY3JJqK0s31NbwiItoZ0bYjugHRziO6AdHOI7oB9dg5ePTRR91qq602SS2PiMiPaOcRnY5o4xFFcdJJJyXR5Wuvvbb7whe+4F7xilckEebi3eRMlyP9O9/5TlfxcTESPaItcfvttyceLS3Kpa2kBfsxxxyT6CqB7373u8lDa9HpD2zE1Ee07YhuQLTziG5AtPOIbkC9do5GaiTQI6YCop1HdDqijUfUg7333juZ95csWZKQ5sPDw+6II45IeLezzjprHP/WDXxcjESPaDugh/vMM8+4r33ta2769OnJ66973euSIgXybikS5vDDD0/0lyIipgqibUd0A6KdR3QDop1HdAOinUd0A6KdR3Q6oo1H1Is//OEP7n3ve1+ica7ss7PPPtude+657oILLnDbbrute/vb3951nRsj0SPaDopkedvb3ubuv//+CoH+qU99yp1zzjnuzW9+s1t11VXd17/+dXfrrbcmr8kzFhExFRBtO6IbEO08ohsQ7TyiGxDtPKIbEO08otMRbTyiXjzvec9zK6+8chKJrqyzWbNmuUMOOcTNnj3bvelNb+rKjo0kekRbYtNNN3WbbLJJ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ohsQ7TyiGxDtPKIbEO08otMRbTwi2ksboxQR0QBuv/320rrrrls64YQTSk8++WTpmmuuKR111FGlN77xjaWlS5dWPveTn/yktP/++5d6enpKW2+9dWnTTTctXXvttbHvI9oW0bYjugHRziO6AdHOI7oB0c4jugHRziM6HdHGI6K9tDd69L/JJvIjpiaWLVvmTjrpJHffffclRUMHBweT188880x3wgknuFtvvdWtssoqVd+59tpr3Yorrpj8rL766pPU8oiIbETbjugGRDuP6AZEO4/oBkQ7j+gGRDuP6HREG4+I9tL+iHIuEXVDRULXXXddt+WWWyYEuvwxPT09brfddks0z5cvX558jteF7bffvqKLHhHRroi2HdENiHYe0Q2Idh7RDYh2HtENiHYe0emINh4R7aX9EUn0iLoxffr0ROd8o402qnpdBUMHBgYqJLoI9Ouuu87tsMMOkUCPmBKIth3RDYh2HtENiHYe0Q2Idh7RDYh2HtHpiDYeEe2l/RFDgiMK4cEHH3RXX321+93vfpd4SiHQVTyUaPOnnnrKPfHEE5XvnHLKKW7fffd18+fPT6LSIyLaEdG2I7oB0c4jugHRziO6AdHOI7oB0c4jOh3RxiOivUwtxEj0iNy44YYb3Mtf/nI3bdo09/DDD7u11lorIcj3228/t/LKK1dkW/QjyRZJupx66qnutNNOc5dddtk4ffSIiHZBtO2IbkC084huwP+3dy+hVZ1rAIa/rdGiQUXBWmoV79qCVq3agUZR1AiChaKiYi+ik1bbQRGcOVG8pE68EbzgwAsOHYkDQR2IdBANHEgmZiAWJyoq2mhtNfuw1iGbBt3nWDjW7PU/D4SdtdiJO4uXJH78+de//K5CAnROCnRO0WkcvdQeNxbljdy7dy/mz58fX375ZWzcuDH/U6Offvop/8a/evXq2Lx5cwwfPjx/7t27d2PZsmUxadKkOHfuXFy7di0+++wzV5peSdukQOekQOekQOekQOcUncbRS40qwxtoa2srjxkzptzS0tLj/LZt28pTp04tNzU1lTs7O/Nz7e3t5VKpVB4wYEC5tbXV9aVX0zYp0Dkp0Dkp0Dkp0DlFp3H0Upvsic4byW4S+uLFi3j69Gl+/OzZs/xxz549sXDhwmhubo6Ojo783NChQ+P777+PGzduxPTp011hejVtkwKdkwKdkwKd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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "window = 2000 # rolling-mean window (samples)\n", + "min_periods = 200\n", + "downsample = 50 # plot every Nth raw measurement point\n", + "\n", + "roll = results.rolling(window=window, min_periods=min_periods).mean()\n", + "\n", + "fig, ax = plt.subplots(figsize=(15, 7))\n", + "\n", + "raw = results.iloc[::downsample]\n", + "ax.scatter(\n", + " raw.index, raw[\"measurement\"],\n", + " s=4, color=\"lightgray\", alpha=0.4, label=\"Measurement (raw)\", rasterized=True,\n", + ")\n", + "ax.plot(roll.index, roll[\"measurement\"], color=\"black\", lw=1.5,\n", + " label=\"Measurement (rolling mean)\")\n", + "ax.plot(roll.index, roll[\"pred_original\"], color=\"dodgerblue\", lw=2,\n", + " label=\"Original model\")\n", + "ax.plot(roll.index, roll[\"pred_adapted\"], color=\"crimson\", lw=2,\n", + " label=\"Adapted model (drift_adaptation_3)\")\n", + "\n", + "ax.set_xlabel(\"Time\", fontsize=12)\n", + "ax.set_ylabel(\"HXR pulse intensity (mJ) [GDET:FEE1:241:ENRC]\", fontsize=12)\n", + "ax.set_title(\"FEL pulse intensity: measurement vs. original and adapted models\", fontsize=13)\n", + "ax.set_ylim(0, 8) # original model spikes off-scale (>30 mJ); clip to the comparison range\n", + "ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%Y-%m-%d\"))\n", + "ax.tick_params(axis=\"x\", rotation=45)\n", + "ax.grid(True, linestyle=\"--\", linewidth=0.5, alpha=0.6)\n", + "ax.legend(fontsize=11, loc=\"upper left\")\n", + "fig.tight_layout()\n", + "\n", + "os.makedirs(\"plotting\", exist_ok=True)\n", + "fig.savefig(\"plotting/model_comparison.png\", dpi=120, bbox_inches=\"tight\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4de6903c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original model MAE: 3.5206 mJ\n", + "Adapted model MAE: 1.1677 mJ\n" + ] + } + ], + "source": [ + "# Error summary over the full stream (MAE against the measurement).\n", + "mae_original = (results[\"pred_original\"] - results[\"measurement\"]).abs().mean()\n", + "mae_adapted = (results[\"pred_adapted\"] - results[\"measurement\"]).abs().mean()\n", + "print(f\"Original model MAE: {mae_original:.4f} mJ\")\n", + "print(f\"Adapted model MAE: {mae_adapted:.4f} mJ\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "840fc8c0-b930-4f58-9d70-a7a7077f826b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/slac_fel/slac-fel.toml b/examples/slac_fel/slac-fel.toml new file mode 100644 index 0000000..8ddab9c --- /dev/null +++ b/examples/slac_fel/slac-fel.toml @@ -0,0 +1,64 @@ +# slac-fel.toml — LCLS FEL continuous-learning experiment +seed = 42 +device = "auto" +multi_gpu = false +verbosity = "DEBUG" + +[model] +name = "fel" +# Set to "" to train from scratch, or point to a saved state_dict .pt file +pretrained_path = "examples/slac_fel/model/final_lcls_fel_model.pt" +# Directory containing: input_scaler.pt, output_scaler.pt, feature_config.yml +config_path = "examples/slac_fel/model" +max_ckpts = 5 +ckpts_path = "output/slac-fel/" + +[data] +name = "slac-fel" +path = "examples/slac_fel/data" +# Number of samples per time window (smaller = finer drift granularity) +batch_size = 5000 + +[train] +batch_size = 512 +num_workers = 0 +init_lr = 1e-5 +max_iter = 600 +grad_accumulation_steps = 1 + +[continual_learning] +update_mode = "base" + +# JVP regularization (used when update_mode = "jvp_reg") +jvp_lambda = 10 +jvp_deltax_norm = 1 + +# EWC (used when update_mode = "ewc_online") +ewc_lambda = 1000.0 +ewc_ema_decay = 0.95 + +# KFAC (used when update_mode = "kfac_online") +kfac_lambda = 1e-2 +kfac_ema_decay = 0.95 + +[drift_detection] +detector_name = "ADWINDetector" +# Check for drift every N batches. With batch_size=512 and 5000 samples per window +detection_interval = 2 +aggregation = "mean" +reset_after_learning = false +max_stream_updates = 307 + +# ADWIN hyperparameters +adwin_delta = 0.05 +adwin_minor_threshold = 0.005 +adwin_moderate_threshold = 0.05 + +[logging] +backend = "mlflow" +experiment_name = "slac-fel-continual-learning" +mlflow_tracking_uri = "https://ard-mlflow.slac.stanford.edu/" + +[visualization] +input = "output/slac-fel.csv" + diff --git a/examples/slac_fel/utils.py b/examples/slac_fel/utils.py new file mode 100644 index 0000000..ea5e1f7 --- /dev/null +++ b/examples/slac_fel/utils.py @@ -0,0 +1,426 @@ +# examples/slac_fel/utils.py +"""Data-loading utilities for the SLAC FEL continuous-learning example. + +The data pipeline assumes that all heavy cleaning (archive pull, filtering, +exclusion windows, invalid-PV removal, column selection) has already been done +and the results saved as individual pickle files (``data_1.pkl``, +``data_2.pkl``, …). All pickle files are loaded, concatenated into a single +dataset in chronological order, and then split into fixed-size windows +controlled by ``cfg.data.batch_size``. + +If only a single ``data.pkl`` is present (legacy layout), it is loaded in its +entirety and split into fixed-size windows via ``window_size``. + +Expected directory layout (pointed to by ``cfg.data.path``):: + + / + data_1.pkl # pandas DataFrame, datetime-indexed, sorted + data_2.pkl # ... + ... +""" + +from __future__ import annotations + +import glob +import logging +import os +import re +import warnings +from typing import List, Tuple + +import pandas as pd +import torch +import yaml +from torch import Tensor +from torch.utils.data import DataLoader, Dataset + +_log = logging.getLogger(__name__) + + +# --------------------------------------------------------------------------- +# Dataset +# --------------------------------------------------------------------------- +class FELDataset(Dataset): + """Simple dataset wrapping pre-scaled input/output tensors.""" + + def __init__(self, X: Tensor, y: Tensor) -> None: + assert X.shape[0] == y.shape[0], "X and y must have the same number of samples" + self.X = X.float() + self.y = y.float() + + def __len__(self) -> int: + return self.X.shape[0] + + def __getitem__(self, idx: int) -> Tuple[Tensor, Tensor]: + return self.X[idx], self.y[idx] + + +# --------------------------------------------------------------------------- +# DataLoader helper +# --------------------------------------------------------------------------- +def make_loader( + ds: Dataset, + batch_size: int, + shuffle: bool, + num_workers: int = 4, + pin_memory: bool = True, + persistent_workers: bool = True, + prefetch_factor: int = 2, +) -> DataLoader: + """Build a ``DataLoader`` from a ``Dataset``. + + Args: + ds: The base dataset. + batch_size: Batch size. + shuffle: Whether to shuffle. + num_workers: Number of data-loading workers. + pin_memory: Pin CUDA memory for faster transfers. + persistent_workers: Keep worker processes alive between iterations. + prefetch_factor: Samples to prefetch per worker. + + Returns: + DataLoader built from *ds* with the given settings. + """ + kwargs: dict = dict(batch_size=batch_size, shuffle=shuffle, drop_last=False) + if num_workers > 0: + kwargs.update( + dict( + num_workers=num_workers, + pin_memory=pin_memory, + persistent_workers=persistent_workers, + prefetch_factor=prefetch_factor, + ) + ) + return DataLoader(ds, **kwargs) # type: ignore[arg-type] + + +# --------------------------------------------------------------------------- +# Feature-config helpers +# --------------------------------------------------------------------------- +def load_feature_config(data_path: str) -> Tuple[List[str], List[str]]: + """Read ``feature_config.yml`` and return ``(input_cols, output_cols)``. + + The YAML file is expected to have top-level keys ``input_variables`` and + ``output_variables``, each mapping variable names to metadata dicts. + """ + cfg_path = os.path.join(data_path, "feature_config.yml") + with open(cfg_path, "r") as fh: + yml = yaml.safe_load(fh) + input_cols = list(yml["input_variables"].keys()) + output_cols = list(yml["output_variables"].keys()) + return input_cols, output_cols + + +# --------------------------------------------------------------------------- +# Scaler helpers +# --------------------------------------------------------------------------- +def load_scalers( + data_path: str, device: str = "cpu" +) -> Tuple[torch.nn.Module, torch.nn.Module]: + """Load the saved BoTorch ``AffineInputTransform`` scalers. + + Tries the new naming convention (``input_scaler.pt``) first, then + falls back to the legacy names (``lcls_fel_input_scaler.pt``). + + Args: + data_path: Directory containing the scaler ``.pt`` files. + device: Device to map the scalers to. + + Returns: + Tuple of ``(input_scaler, output_scaler)``. + """ + # New names (train_fel_model.py v2) → legacy names (fallback) + input_candidates = ["input_scaler.pt", "lcls_fel_input_scaler.pt"] + output_candidates = ["output_scaler.pt", "lcls_fel_output_scaler.pt"] + + def _load_first(candidates: list[str]) -> torch.nn.Module: + for name in candidates: + path = os.path.join(data_path, name) + if os.path.exists(path): + return torch.load(path, map_location=device, weights_only=False) + raise FileNotFoundError(f"No scaler found in {data_path}; tried {candidates}") + + input_scaler = _load_first(input_candidates) + output_scaler = _load_first(output_candidates) + return input_scaler, output_scaler + + +# --------------------------------------------------------------------------- +# Data loading +# --------------------------------------------------------------------------- +def load_fel_data( + data_path: str, config_path: str, device: str = "cpu" +) -> Tuple[Tensor, Tensor, pd.Index]: + """Load a single ``data.pkl``, apply scalers, and return scaled tensors. + + Note that with the current workflow, prefer :func:`discover_window_files` + + :func:`load_window_file` for per-file lazy loading. + + Args: + data_path: Directory containing ``data.pkl``, scalers, and + ``feature_config.yml``. + config_path: Directory containing ``feature_config.yml`` and scaler files. + device: Device string (used for scaler loading only; tensors stay on + CPU here). + + Returns: + Tuple of ``(X_scaled, y_scaled, timestamps)``. + """ + df: pd.DataFrame = pd.read_pickle(os.path.join(data_path, "data.pkl")) + + # Ensure sorted by time + df = df.sort_index() + + input_cols, output_cols = load_feature_config(config_path) + input_scaler, output_scaler = load_scalers(config_path, device=device) + + # Drop rows with NaN in any input or output column + all_cols = input_cols + output_cols + n_before = len(df) + df = df.dropna(subset=all_cols) + n_dropped = n_before - len(df) + if n_dropped > 0: + pct = 100.0 * n_dropped / n_before + msg = ( + f"[load_fel_data] Dropped {n_dropped}/{n_before} rows " + f"({pct:.1f}%) containing NaN values" + ) + warnings.warn(msg, stacklevel=2) + _log.warning(msg) + + X_raw = torch.as_tensor(df[input_cols].values, dtype=torch.float32) + y_raw = torch.as_tensor(df[output_cols].values, dtype=torch.float32) + + # TODO: maybe import botorch scalers differently to avoid the type: ignore here + X_scaled: Tensor = input_scaler.transform(X_raw) # type: ignore[operator] + y_scaled: Tensor = output_scaler.transform(y_raw) # type: ignore[operator] + + return X_scaled, y_scaled, df.index + + +# --------------------------------------------------------------------------- +# Per-file window discovery & lazy loading +# --------------------------------------------------------------------------- + + +def _natural_sort_key(path: str) -> Tuple[str, int]: + """Sort key that orders ``data_1.pkl`` < ``data_2.pkl`` < ``data_10.pkl``. + + Falls back to lexicographic order if no numeric suffix is found. + """ + basename = os.path.basename(path) + m = re.search(r"(\d+)", basename) + if m: + return (basename[: m.start()], int(m.group(1))) + return (basename, 0) + + +def discover_window_files(data_path: str) -> List[str]: + """Return sorted paths to ``data_*.pkl`` files in *data_path*. + + Files are sorted by the numeric suffix so that ``data_1.pkl`` comes + before ``data_2.pkl`` and ``data_10.pkl``. + + Args: + data_path: Directory to search. + + Returns: + List of absolute paths, one per window file, sorted by numeric suffix. + """ + pattern = os.path.join(data_path, "data_*.pkl") + paths = glob.glob(pattern) + paths.sort(key=_natural_sort_key) + return paths + + +def load_window_file( + pkl_path: str, + input_cols: List[str], + output_cols: List[str], + input_scaler: torch.nn.Module, + output_scaler: torch.nn.Module, +) -> Tuple[Tensor, Tensor, pd.Index]: + """Load a single window pickle, scale, and return ``(X, y, index)`` tensors. + + Args: + pkl_path: Path to a single ``data_.pkl`` file. + input_cols: Column names for input features (from ``feature_config.yml``). + output_cols: Column names for output targets. + input_scaler: Pre-fitted scaler for inputs. + output_scaler: Pre-fitted scaler for outputs. + + Returns: + Tuple ``(X_scaled, y_scaled, index)`` where ``X_scaled`` is + ``[N, n_inputs]`` float32, ``y_scaled`` is ``[N, n_outputs]`` float32, + and ``index`` is the DataFrame index after NaN filtering. + """ + df: pd.DataFrame = pd.read_pickle(pkl_path) + df = df.sort_index() + + # Drop rows with NaN in any input or output column + all_cols = input_cols + output_cols + n_before = len(df) + df = df.dropna(subset=all_cols) + n_dropped = n_before - len(df) + if n_dropped > 0: + pct = 100.0 * n_dropped / n_before + basename = os.path.basename(pkl_path) + msg = ( + f"[load_window_file] {basename}: Dropped {n_dropped}/{n_before} rows " + f"({pct:.1f}%) containing NaN values" + ) + warnings.warn(msg, stacklevel=2) + _log.warning(msg) + + X_raw = torch.as_tensor(df[input_cols].values, dtype=torch.float32) + y_raw = torch.as_tensor(df[output_cols].values, dtype=torch.float32) + + X_scaled: Tensor = input_scaler.transform(X_raw) # type: ignore[operator] + y_scaled: Tensor = output_scaler.transform(y_raw) # type: ignore[operator] + + return X_scaled, y_scaled, df.index + + +def load_all_window_files( + data_path: str, + input_cols: List[str], + output_cols: List[str], + input_scaler: torch.nn.Module, + output_scaler: torch.nn.Module, +) -> Tuple[Tensor, Tensor, pd.Index]: + """Load all ``data_*.pkl`` files, concatenate, and return scaled tensors. + + Each pickle is loaded and scaled individually via :func:`load_window_file`, + then the results are concatenated into a single pair of tensors in + chronological order (files are sorted by numeric suffix). + + Args: + data_path: Directory containing ``data_*.pkl`` files. + input_cols: Column names for input features. + output_cols: Column names for output targets. + input_scaler: Pre-fitted scaler for inputs. + output_scaler: Pre-fitted scaler for outputs. + + Returns: + Tuple ``(X_all, y_all, timestamps)`` with all windows concatenated + along dim 0. ``timestamps`` is the combined DataFrame index + preserving the chronological order of every row. + + Raises: + FileNotFoundError: If no ``data_*.pkl`` files are found in *data_path*. + """ + window_files = discover_window_files(data_path) + if not window_files: + raise FileNotFoundError(f"No data_*.pkl files found in {data_path}") + + X_parts: List[Tensor] = [] + y_parts: List[Tensor] = [] + index_parts: List[pd.Index] = [] + total_samples = 0 + + for pkl_path in window_files: + X_w, y_w, idx = load_window_file( + pkl_path, input_cols, output_cols, input_scaler, output_scaler + ) + X_parts.append(X_w) + y_parts.append(y_w) + index_parts.append(idx) + total_samples += X_w.shape[0] + _log.info( + "[load_all_window_files] Loaded %s: %d samples", + os.path.basename(pkl_path), + X_w.shape[0], + ) + + X_all = torch.cat(X_parts, dim=0) + y_all = torch.cat(y_parts, dim=0) + timestamps = index_parts[0].append(index_parts[1:]) + + _log.info( + "[load_all_window_files] Combined %d files → %d total samples", + len(window_files), + total_samples, + ) + + return X_all, y_all, timestamps + + +# --------------------------------------------------------------------------- +# Windowing +# --------------------------------------------------------------------------- + +# Default number of samples per time window. Can be overridden by the caller. +DEFAULT_WINDOW_SIZE: int = 5000 + + +def split_into_windows( + X: Tensor, + y: Tensor, + window_size: int = DEFAULT_WINDOW_SIZE, + min_window_size: int = 2, +) -> List[Tuple[Tensor, Tensor]]: + """Split chronologically-ordered tensors into non-overlapping windows. + + If the final chunk has fewer than *min_window_size* samples it is merged + into the preceding window so that every window is large enough for a + meaningful train/val split. + + Args: + X: Input features ``[N, D]``. + y: Targets ``[N, T]``. + window_size: Number of samples per window. + min_window_size: Minimum samples in a window. A trailing chunk + smaller than this is merged into the previous window. + + Returns: + List of ``(X_chunk, y_chunk)`` tuples. + """ + n = X.shape[0] + windows: List[Tuple[Tensor, Tensor]] = [] + for start in range(0, n, window_size): + end = min(start + window_size, n) + windows.append((X[start:end], y[start:end])) + + # Merge a too-small trailing window into the previous one + if len(windows) > 1 and windows[-1][0].shape[0] < min_window_size: + prev_X, prev_y = windows[-2] + tail_X, tail_y = windows[-1] + windows[-2] = ( + torch.cat([prev_X, tail_X], dim=0), + torch.cat([prev_y, tail_y], dim=0), + ) + windows.pop() + + return windows + + +def split_timestamps( + timestamps: pd.Index, + window_size: int = DEFAULT_WINDOW_SIZE, + min_window_size: int = 2, +) -> List[pd.Index]: + """Split a timestamp index to match :func:`split_into_windows`. + + Applies the same chunking and merging logic so that + ``split_timestamps(ts, ws)[i]`` aligns row-for-row with + ``split_into_windows(X, y, ws)[i]``. + + Args: + timestamps: Row-aligned index (same length as the tensors). + window_size: Number of samples per window. + min_window_size: Merge trailing chunk if smaller than this. + + Returns: + List of ``pd.Index`` slices, one per window. + """ + n = len(timestamps) + chunks: List[pd.Index] = [] + for start in range(0, n, window_size): + end = min(start + window_size, n) + chunks.append(timestamps[start:end]) + + if len(chunks) > 1 and len(chunks[-1]) < min_window_size: + chunks[-2] = chunks[-2].append(chunks[-1]) + chunks.pop() + + return chunks diff --git a/examples/utils.py b/examples/utils.py index 0cde7b7..213af54 100644 --- a/examples/utils.py +++ b/examples/utils.py @@ -15,6 +15,10 @@ def get_example(cfg: Config) -> BaseModelHarness: from examples.imagenet.model import IMAGENET_VISION return IMAGENET_VISION(cfg=cfg) + elif cfg.data.name == "slac-fel": + from examples.slac_fel.model import SLAC_FEL + + return SLAC_FEL(cfg=cfg) else: raise NotImplementedError( f"Example for dataset {cfg.data.name} is not implemented." diff --git a/poetry.lock b/poetry.lock index f89f9e5..1a8c8c8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,174 +1,5 @@ # This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. -[[package]] -name = "aiohappyeyeballs" -version = "2.6.1" -description = "Happy Eyeballs for asyncio" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"}, - {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"}, -] - -[[package]] -name = "aiohttp" -version = "3.13.5" -description = "Async http client/server framework (asyncio)" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "aiohttp-3.13.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:02222e7e233295f40e011c1b00e3b0bd451f22cf853a0304c3595633ee47da4b"}, - {file = "aiohttp-3.13.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bace460460ed20614fa6bc8cb09966c0b8517b8c58ad8046828c6078d25333b5"}, - {file = "aiohttp-3.13.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f546a4dc1e6a5edbb9fd1fd6ad18134550e096a5a43f4ad74acfbd834fc6670"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c86969d012e51b8e415a8c6ce96f7857d6a87d6207303ab02d5d11ef0cad2274"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b6f6cd1560c5fa427e3b6074bb24d2c64e225afbb7165008903bd42e4e33e28a"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:636bc362f0c5bbc7372bc3ae49737f9e3030dbce469f0f422c8f38079780363d"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6a7cbeb06d1070f1d14895eeeed4dac5913b22d7b456f2eb969f11f4b3993796"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca9ef7517fd7874a1a08970ae88f497bf5c984610caa0bf40bd7e8450852b95"}, - {file = "aiohttp-3.13.5-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:019a67772e034a0e6b9b17c13d0a8fe56ad9fb150fc724b7f3ffd3724288d9e5"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f34ecee82858e41dd217734f0c41a532bd066bcaab636ad830f03a30b2a96f2a"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:4eac02d9af4813ee289cd63a361576da36dba57f5a1ab36377bc2600db0cbb73"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4beac52e9fe46d6abf98b0176a88154b742e878fdf209d2248e99fcdf73cd297"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:c180f480207a9b2475f2b8d8bd7204e47aec952d084b2a2be58a782ffcf96074"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2837fb92951564d6339cedae4a7231692aa9f73cbc4fb2e04263b96844e03b4e"}, - {file = "aiohttp-3.13.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d9010032a0b9710f58012a1e9c222528763d860ba2ee1422c03473eab47703e7"}, - {file = "aiohttp-3.13.5-cp310-cp310-win32.whl", hash = "sha256:7c4b6668b2b2b9027f209ddf647f2a4407784b5d88b8be4efcc72036f365baf9"}, - {file = "aiohttp-3.13.5-cp310-cp310-win_amd64.whl", hash = "sha256:cd3db5927bf9167d5a6157ddb2f036f6b6b0ad001ac82355d43e97a4bde76d76"}, - {file = "aiohttp-3.13.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ab7229b6f9b5c1ba4910d6c41a9eb11f543eadb3f384df1b4c293f4e73d44d6"}, - {file = "aiohttp-3.13.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8f14c50708bb156b3a3ca7230b3d820199d56a48e3af76fa21c2d6087190fe3d"}, - {file = "aiohttp-3.13.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7d2f8616f0ff60bd332022279011776c3ac0faa0f1b463f7bb12326fbc97a1c"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2567b72e1ffc3ab25510db43f355b29eeada56c0a622e58dcdb19530eb0a3cb"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fb0540c854ac9c0c5ad495908fdfd3e332d553ec731698c0e29b1877ba0d2ec6"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c9883051c6972f58bfc4ebb2116345ee2aa151178e99c3f2b2bbe2af712abd13"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2294172ce08a82fb7c7273485895de1fa1186cc8294cfeb6aef4af42ad261174"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a807cabd5115fb55af198b98178997a5e0e57dead43eb74a93d9c07d6d4a7dc"}, - {file = "aiohttp-3.13.5-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:aa6d0d932e0f39c02b80744273cd5c388a2d9bc07760a03164f229c8e02662f6"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60869c7ac4aaabe7110f26499f3e6e5696eae98144735b12a9c3d9eae2b51a49"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:26d2f8546f1dfa75efa50c3488215a903c0168d253b75fba4210f57ab77a0fb8"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1162a1492032c82f14271e831c8f4b49f2b6078f4f5fc74de2c912fa225d51d"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:8b14eb3262fad0dc2f89c1a43b13727e709504972186ff6a99a3ecaa77102b6c"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ca9ac61ac6db4eb6c2a0cd1d0f7e1357647b638ccc92f7e9d8d133e71ed3c6ac"}, - {file = "aiohttp-3.13.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7996023b2ed59489ae4762256c8516df9820f751cf2c5da8ed2fb20ee50abab3"}, - {file = "aiohttp-3.13.5-cp311-cp311-win32.whl", hash = "sha256:77dfa48c9f8013271011e51c00f8ada19851f013cde2c48fca1ba5e0caf5bb06"}, - {file = "aiohttp-3.13.5-cp311-cp311-win_amd64.whl", hash = "sha256:d3a4834f221061624b8887090637db9ad4f61752001eae37d56c52fddade2dc8"}, - {file = "aiohttp-3.13.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:023ecba036ddd840b0b19bf195bfae970083fd7024ce1ac22e9bba90464620e9"}, - {file = "aiohttp-3.13.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15c933ad7920b7d9a20de151efcd05a6e38302cbf0e10c9b2acb9a42210a2416"}, - {file = "aiohttp-3.13.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab2899f9fa2f9f741896ebb6fa07c4c883bfa5c7f2ddd8cf2aafa86fa981b2d2"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60eaa2d440cd4707696b52e40ed3e2b0f73f65be07fd0ef23b6b539c9c0b0b4"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55b3bdd3292283295774ab585160c4004f4f2f203946997f49aac032c84649e9"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c2b2355dc094e5f7d45a7bb262fe7207aa0460b37a0d87027dcf21b5d890e7d5"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b38765950832f7d728297689ad78f5f2cf79ff82487131c4d26fe6ceecdc5f8e"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b18f31b80d5a33661e08c89e202edabf1986e9b49c42b4504371daeaa11b47c1"}, - {file = "aiohttp-3.13.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:33add2463dde55c4f2d9635c6ab33ce154e5ecf322bd26d09af95c5f81cfa286"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:327cc432fdf1356fb4fbc6fe833ad4e9f6aacb71a8acaa5f1855e4b25910e4a9"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7c35b0bf0b48a70b4cb4fc5d7bed9b932532728e124874355de1a0af8ec4bc88"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:df23d57718f24badef8656c49743e11a89fd6f5358fa8a7b96e728fda2abf7d3"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:02e048037a6501a5ec1f6fc9736135aec6eb8a004ce48838cb951c515f32c80b"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31cebae8b26f8a615d2b546fee45d5ffb76852ae6450e2a03f42c9102260d6fe"}, - {file = "aiohttp-3.13.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:888e78eb5ca55a615d285c3c09a7a91b42e9dd6fc699b166ebd5dee87c9ccf14"}, - {file = "aiohttp-3.13.5-cp312-cp312-win32.whl", hash = "sha256:8bd3ec6376e68a41f9f95f5ed170e2fcf22d4eb27a1f8cb361d0508f6e0557f3"}, - {file = "aiohttp-3.13.5-cp312-cp312-win_amd64.whl", hash = "sha256:110e448e02c729bcebb18c60b9214a87ba33bac4a9fa5e9a5f139938b56c6cb1"}, - {file = "aiohttp-3.13.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5029cc80718bbd545123cd8fe5d15025eccaaaace5d0eeec6bd556ad6163d61"}, - {file = "aiohttp-3.13.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4bb6bf5811620003614076bdc807ef3b5e38244f9d25ca5fe888eaccea2a9832"}, - {file = "aiohttp-3.13.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a84792f8631bf5a94e52d9cc881c0b824ab42717165a5579c760b830d9392ac9"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57653eac22c6a4c13eb22ecf4d673d64a12f266e72785ab1c8b8e5940d0e8090"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5e5f7debc7a57af53fdf5c5009f9391d9f4c12867049d509bf7bb164a6e295b"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c719f65bebcdf6716f10e9eff80d27567f7892d8988c06de12bbbd39307c6e3a"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d97f93fdae594d886c5a866636397e2bcab146fd7a132fd6bb9ce182224452f8"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3df334e39d4c2f899a914f1dba283c1aadc311790733f705182998c6f7cae665"}, - {file = "aiohttp-3.13.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7becdf835feff2f4f335d7477f121af787e3504b48b449ff737afb35869ba7bb"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:676e5651705ad5d8a70aeb8eb6936c436d8ebbd56e63436cb7dd9bb36d2a9a46"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9b16c653d38eb1a611cc898c41e76859ca27f119d25b53c12875fd0474ae31a8"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:999802d5fa0389f58decd24b537c54aa63c01c3219ce17d1214cbda3c2b22d2d"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec707059ee75732b1ba130ed5f9580fe10ff75180c812bc267ded039db5128c6"}, - {file = "aiohttp-3.13.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d6d44a5b48132053c2f6cd5c8cb14bc67e99a63594e336b0f2af81e94d5530c"}, - {file = "aiohttp-3.13.5-cp313-cp313-win32.whl", hash = "sha256:329f292ed14d38a6c4c435e465f48bebb47479fd676a0411936cc371643225cc"}, - {file = "aiohttp-3.13.5-cp313-cp313-win_amd64.whl", hash = "sha256:69f571de7500e0557801c0b51f4780482c0ec5fe2ac851af5a92cfce1af1cb83"}, - {file = "aiohttp-3.13.5-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:eb4639f32fd4a9904ab8fb45bf3383ba71137f3d9d4ba25b3b3f3109977c5b8c"}, - {file = "aiohttp-3.13.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:7e5dc4311bd5ac493886c63cbf76ab579dbe4641268e7c74e48e774c74b6f2be"}, - {file = "aiohttp-3.13.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:756c3c304d394977519824449600adaf2be0ccee76d206ee339c5e76b70ded25"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecc26751323224cf8186efcf7fbcbc30f4e1d8c7970659daf25ad995e4032a56"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10a75acfcf794edf9d8db50e5a7ec5fc818b2a8d3f591ce93bc7b1210df016d2"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f7a18f258d124cd678c5fe072fe4432a4d5232b0657fca7c1847f599233c83a"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:df6104c009713d3a89621096f3e3e88cc323fd269dbd7c20afe18535094320be"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:241a94f7de7c0c3b616627aaad530fe2cb620084a8b144d3be7b6ecfe95bae3b"}, - {file = "aiohttp-3.13.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c974fb66180e58709b6fc402846f13791240d180b74de81d23913abe48e96d94"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:6e27ea05d184afac78aabbac667450c75e54e35f62238d44463131bd3f96753d"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a79a6d399cef33a11b6f004c67bb07741d91f2be01b8d712d52c75711b1e07c7"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c632ce9c0b534fbe25b52c974515ed674937c5b99f549a92127c85f771a78772"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f92995dfec9420bb69ae629abf422e516923ba79ba4403bc750d94fb4a6c68c1"}, - {file = "aiohttp-3.13.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20ae0ff08b1f2c8788d6fb85afcb798654ae6ba0b747575f8562de738078457b"}, - {file = "aiohttp-3.13.5-cp314-cp314-win32.whl", hash = "sha256:b20df693de16f42b2472a9c485e1c948ee55524786a0a34345511afdd22246f3"}, - {file = "aiohttp-3.13.5-cp314-cp314-win_amd64.whl", hash = "sha256:f85c6f327bf0b8c29da7d93b1cabb6363fb5e4e160a32fa241ed2dce21b73162"}, - {file = "aiohttp-3.13.5-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:1efb06900858bb618ff5cee184ae2de5828896c448403d51fb633f09e109be0a"}, - {file = "aiohttp-3.13.5-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254"}, - {file = "aiohttp-3.13.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:20058e23909b9e65f9da62b396b77dfa95965cbe840f8def6e572538b1d32e36"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cf20a8d6868cb15a73cab329ffc07291ba8c22b1b88176026106ae39aa6df0f"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:330f5da04c987f1d5bdb8ae189137c77139f36bd1cb23779ca1a354a4b027800"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f1cbf0c7926d315c3c26c2da41fd2b5d2fe01ac0e157b78caefc51a782196cf"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:53fc049ed6390d05423ba33103ded7281fe897cf97878f369a527070bd95795b"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:898703aa2667e3c5ca4c54ca36cd73f58b7a38ef87a5606414799ebce4d3fd3a"}, - {file = "aiohttp-3.13.5-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0494a01ca9584eea1e5fbd6d748e61ecff218c51b576ee1999c23db7066417d8"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6cf81fe010b8c17b09495cbd15c1d35afbc8fb405c0c9cf4738e5ae3af1d65be"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:c564dd5f09ddc9d8f2c2d0a301cd30a79a2cc1b46dd1a73bef8f0038863d016b"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2994be9f6e51046c4f864598fd9abeb4fba6e88f0b2152422c9666dcd4aea9c6"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:157826e2fa245d2ef46c83ea8a5faf77ca19355d278d425c29fda0beb3318037"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a8aca50daa9493e9e13c0f566201a9006f080e7c50e5e90d0b06f53146a54500"}, - {file = "aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3b13560160d07e047a93f23aaa30718606493036253d5430887514715b67c9d9"}, - {file = "aiohttp-3.13.5-cp314-cp314t-win32.whl", hash = "sha256:9a0f4474b6ea6818b41f82172d799e4b3d29e22c2c520ce4357856fced9af2f8"}, - {file = "aiohttp-3.13.5-cp314-cp314t-win_amd64.whl", hash = "sha256:18a2f6c1182c51baa1d28d68fea51513cb2a76612f038853c0ad3c145423d3d9"}, - {file = "aiohttp-3.13.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:347542f0ea3f95b2a955ee6656461fa1c776e401ac50ebce055a6c38454a0adf"}, - {file = "aiohttp-3.13.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:178c7b5e62b454c2bc790786e6058c3cc968613b4419251b478c153a4aec32b1"}, - {file = "aiohttp-3.13.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af545c2cffdb0967a96b6249e6f5f7b0d92cdfd267f9d5238d5b9ca63e8edb10"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:206b7b3ef96e4ce211754f0cd003feb28b7d81f0ad26b8d077a5d5161436067f"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ee5e86776273de1795947d17bddd6bb19e0365fd2af4289c0d2c5454b6b1d36b"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:95d14ca7abefde230f7639ec136ade282655431fd5db03c343b19dda72dd1643"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:912d4b6af530ddb1338a66229dac3a25ff11d4448be3ec3d6340583995f56031"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e999f0c88a458c836d5fb521814e92ed2172c649200336a6df514987c1488258"}, - {file = "aiohttp-3.13.5-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:39380e12bd1f2fdab4285b6e055ad48efbaed5c836433b142ed4f5b9be71036a"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9efcc0f11d850cefcafdd9275b9576ad3bfb539bed96807663b32ad99c4d4b88"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:147b4f501d0292077f29d5268c16bb7c864a1f054d7001c4c1812c0421ea1ed0"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d147004fede1b12f6013a6dbb2a26a986a671a03c6ea740ddc76500e5f1c399f"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:9277145d36a01653863899c665243871434694bcc3431922c3b35c978061bdb8"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4e704c52438f66fdd89588346183d898bb42167cf88f8b7ff1c0f9fc957c348f"}, - {file = "aiohttp-3.13.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a8a4d3427e8de1312ddf309cc482186466c79895b3a139fed3259fc01dfa9a5b"}, - {file = "aiohttp-3.13.5-cp39-cp39-win32.whl", hash = "sha256:6f497a6876aa4b1a102b04996ce4c1170c7040d83faa9387dd921c16e30d5c83"}, - {file = "aiohttp-3.13.5-cp39-cp39-win_amd64.whl", hash = "sha256:cb979826071c0986a5f08333a36104153478ce6018c58cba7f9caddaf63d5d67"}, - {file = "aiohttp-3.13.5.tar.gz", hash = "sha256:9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1"}, -] - -[package.dependencies] -aiohappyeyeballs = ">=2.5.0" -aiosignal = ">=1.4.0" -attrs = ">=17.3.0" -frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" -propcache = ">=0.2.0" -yarl = ">=1.17.0,<2.0" - -[package.extras] -speedups = ["Brotli (>=1.2) ; platform_python_implementation == \"CPython\"", "aiodns (>=3.3.0)", "backports.zstd ; platform_python_implementation == \"CPython\" and python_version < \"3.14\"", "brotlicffi (>=1.2) ; platform_python_implementation != \"CPython\""] - -[[package]] -name = "aiosignal" -version = "1.4.0" -description = "aiosignal: a list of registered asynchronous callbacks" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e"}, - {file = "aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7"}, -] - -[package.dependencies] -frozenlist = ">=1.1.0" - [[package]] name = "alembic" version = "1.18.4" @@ -244,18 +75,6 @@ files = [ {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, ] -[[package]] -name = "attrs" -version = "26.1.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309"}, - {file = "attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32"}, -] - [[package]] name = "black" version = "25.11.0" @@ -318,6 +137,35 @@ files = [ {file = "blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf"}, ] +[[package]] +name = "botorch" +version = "0.17.0" +description = "Bayesian Optimization in PyTorch" +optional = false +python-versions = ">=3.11" +groups = ["main"] +files = [ + {file = "botorch-0.17.0-py3-none-any.whl", hash = "sha256:fb8610cbf43a48746aa5935141b12063723abf0f8c353132cfcd9757703d02c2"}, + {file = "botorch-0.17.0.tar.gz", hash = "sha256:32e5c3ee99504b909d3a495e35c0b193566a5851e6a50e761b67338d11086749"}, +] + +[package.dependencies] +gpytorch = ">=1.15.1" +linear_operator = ">=0.6" +multipledispatch = "*" +pyre_extensions = "*" +pyro-ppl = ">=1.8.4" +scipy = "*" +threadpoolctl = "*" +torch = ">=2.2" +typing_extensions = "*" + +[package.extras] +dev = ["botorch[test]", "flake8", "flake8-docstrings", "sphinx", "sphinx-rtd-theme", "ufmt"] +pymoo = ["pymoo"] +test = ["pfns", "pymoo", "pytest", "pytest-cov", "requests"] +tutorials = ["cma", "jupyter", "lxml", "matplotlib", "mdformat", "mdformat-myst", "memory_profiler", "pandas", "papermill", "pykeops", "tabulate", "torchvision"] + [[package]] name = "cachetools" version = "6.2.6" @@ -816,61 +664,66 @@ toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "cryptography" -version = "46.0.7" +version = "46.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = "!=3.9.0,!=3.9.1,>=3.8" groups = ["main"] files = [ - {file = "cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb"}, - {file = "cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b"}, - {file = "cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85"}, - {file = "cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e"}, - {file = "cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457"}, - {file = "cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b"}, - {file = "cryptography-46.0.7-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1"}, - {file = "cryptography-46.0.7-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2"}, - {file = "cryptography-46.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e"}, - {file = "cryptography-46.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee"}, - {file = "cryptography-46.0.7-cp314-cp314t-win32.whl", hash = "sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298"}, - {file = "cryptography-46.0.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb"}, - {file = "cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006"}, - {file = "cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0"}, - {file = "cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85"}, - {file = "cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e"}, - {file = "cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246"}, - {file = "cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3"}, - {file = "cryptography-46.0.7-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:fc9ab8856ae6cf7c9358430e49b368f3108f050031442eaeb6b9d87e4dcf4e4f"}, - {file = "cryptography-46.0.7-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d3b99c535a9de0adced13d159c5a9cf65c325601aa30f4be08afd680643e9c15"}, - {file = "cryptography-46.0.7-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d02c738dacda7dc2a74d1b2b3177042009d5cab7c7079db74afc19e56ca1b455"}, - {file = "cryptography-46.0.7-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:04959522f938493042d595a736e7dbdff6eb6cc2339c11465b3ff89343b65f65"}, - {file = "cryptography-46.0.7-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:3986ac1dee6def53797289999eabe84798ad7817f3e97779b5061a95b0ee4968"}, - {file = "cryptography-46.0.7-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:258514877e15963bd43b558917bc9f54cf7cf866c38aa576ebf47a77ddbc43a4"}, - {file = "cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5"}, + {file = "cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e"}, + {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926"}, + {file = "cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71"}, + {file = "cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac"}, + {file = "cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018"}, + {file = "cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb"}, + {file = "cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c"}, + {file = "cryptography-46.0.3-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665"}, + {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3"}, + {file = "cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20"}, + {file = "cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de"}, + {file = "cryptography-46.0.3-cp314-cp314t-win32.whl", hash = "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914"}, + {file = "cryptography-46.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db"}, + {file = "cryptography-46.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21"}, + {file = "cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04"}, + {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506"}, + {file = "cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963"}, + {file = "cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4"}, + {file = "cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df"}, + {file = "cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f"}, + {file = "cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372"}, + {file = "cryptography-46.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a23582810fedb8c0bc47524558fb6c56aac3fc252cb306072fd2815da2a47c32"}, + {file = "cryptography-46.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e7aec276d68421f9574040c26e2a7c3771060bc0cff408bae1dcb19d3ab1e63c"}, + {file = "cryptography-46.0.3-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7ce938a99998ed3c8aa7e7272dca1a610401ede816d36d0693907d863b10d9ea"}, + {file = "cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:191bb60a7be5e6f54e30ba16fdfae78ad3a342a0599eb4193ba88e3f3d6e185b"}, + {file = "cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c70cc23f12726be8f8bc72e41d5065d77e4515efae3690326764ea1b07845cfb"}, + {file = "cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:9394673a9f4de09e28b5356e7fff97d778f8abad85c9d5ac4a4b7e25a0de7717"}, + {file = "cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:94cd0549accc38d1494e1f8de71eca837d0509d0d44bf11d158524b0e12cebf9"}, + {file = "cryptography-46.0.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:6b5063083824e5509fdba180721d55909ffacccc8adbec85268b48439423d78c"}, + {file = "cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1"}, ] [package.dependencies] @@ -883,7 +736,7 @@ nox = ["nox[uv] (>=2024.4.15)"] pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.14)", "ruff (>=0.11.11)"] sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi (>=2024)", "cryptography-vectors (==46.0.7)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] +test = ["certifi (>=2024)", "cryptography-vectors (==46.0.3)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] test-randomorder = ["pytest-randomly"] [[package]] @@ -976,14 +829,14 @@ websockets = ["websocket-client (>=1.3.0)"] [[package]] name = "dynaconf" -version = "3.2.13" +version = "3.2.12" description = "The dynamic configurator for your Python Project" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "dynaconf-3.2.13-py2.py3-none-any.whl", hash = "sha256:4305527aef4834bdba3e39479b23c005186e83fb85f65bcaa4bcea58fa26759b"}, - {file = "dynaconf-3.2.13.tar.gz", hash = "sha256:d79e0189d97b3f226b8ebb1717e2ce05d1a05cdf6ea05de66d24625fdb5a0cbd"}, + {file = "dynaconf-3.2.12-py2.py3-none-any.whl", hash = "sha256:eb2a11865917dff8810c6098cd736b8f4d2f4e39ad914500e2dfbe064b82c499"}, + {file = "dynaconf-3.2.12.tar.gz", hash = "sha256:29cea583b007d890e6031fa89c0ac489b631c73dbee83bcd5e6f97602c26354e"}, ] [package.extras] @@ -1216,146 +1069,6 @@ type1 = ["xattr ; sys_platform == \"darwin\""] unicode = ["unicodedata2 (>=15.1.0) ; python_version <= \"3.12\""] woff = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "zopfli (>=0.1.4)"] -[[package]] -name = "frozenlist" -version = "1.8.0" -description = "A list-like structure which implements collections.abc.MutableSequence" -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011"}, - {file = "frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565"}, - {file = "frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450"}, - {file = "frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f"}, - {file = "frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7"}, - {file = "frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a"}, - {file = "frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6"}, - {file = "frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e"}, - {file = "frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84"}, - {file = "frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9"}, - {file = "frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581"}, - {file = "frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd"}, - {file = "frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967"}, - {file = "frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25"}, - {file = "frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b"}, - {file = "frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a"}, - {file = "frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1"}, - {file = "frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b"}, - {file = "frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b"}, - {file = "frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608"}, - {file = "frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa"}, - {file = "frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf"}, - {file = "frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746"}, - {file = "frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd"}, - {file = "frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a"}, - {file = "frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7"}, - {file = "frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5"}, - {file = "frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8"}, - {file = "frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed"}, - {file = "frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496"}, - {file = "frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231"}, - {file = "frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62"}, - {file = "frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94"}, - {file = "frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c"}, - {file = "frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714"}, - {file = "frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0"}, - {file = "frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41"}, - {file = "frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b"}, - {file = "frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888"}, - {file = "frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042"}, - {file = "frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0"}, - {file = "frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f"}, - {file = "frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e"}, - {file = "frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30"}, - {file = "frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7"}, - {file = "frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806"}, - {file = "frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0"}, - {file = "frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b"}, - {file = "frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d"}, - {file = "frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed"}, - {file = "frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a"}, - {file = "frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a"}, - {file = "frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e"}, - {file = "frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df"}, - {file = "frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd"}, - {file = "frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79"}, - {file = "frozenlist-1.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d8b7138e5cd0647e4523d6685b0eac5d4be9a184ae9634492f25c6eb38c12a47"}, - {file = "frozenlist-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a6483e309ca809f1efd154b4d37dc6d9f61037d6c6a81c2dc7a15cb22c8c5dca"}, - {file = "frozenlist-1.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1b9290cf81e95e93fdf90548ce9d3c1211cf574b8e3f4b3b7cb0537cf2227068"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:59a6a5876ca59d1b63af8cd5e7ffffb024c3dc1e9cf9301b21a2e76286505c95"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6dc4126390929823e2d2d9dc79ab4046ed74680360fc5f38b585c12c66cdf459"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:332db6b2563333c5671fecacd085141b5800cb866be16d5e3eb15a2086476675"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9ff15928d62a0b80bb875655c39bf517938c7d589554cbd2669be42d97c2cb61"}, - {file = "frozenlist-1.8.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7bf6cdf8e07c8151fba6fe85735441240ec7f619f935a5205953d58009aef8c6"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:48e6d3f4ec5c7273dfe83ff27c91083c6c9065af655dc2684d2c200c94308bb5"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:1a7607e17ad33361677adcd1443edf6f5da0ce5e5377b798fba20fae194825f3"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3a935c3a4e89c733303a2d5a7c257ea44af3a56c8202df486b7f5de40f37e1"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:940d4a017dbfed9daf46a3b086e1d2167e7012ee297fef9e1c545c4d022f5178"}, - {file = "frozenlist-1.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b9be22a69a014bc47e78072d0ecae716f5eb56c15238acca0f43d6eb8e4a5bda"}, - {file = "frozenlist-1.8.0-cp39-cp39-win32.whl", hash = "sha256:1aa77cb5697069af47472e39612976ed05343ff2e84a3dcf15437b232cbfd087"}, - {file = "frozenlist-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:7398c222d1d405e796970320036b1b563892b65809d9e5261487bb2c7f7b5c6a"}, - {file = "frozenlist-1.8.0-cp39-cp39-win_arm64.whl", hash = "sha256:b4f3b365f31c6cd4af24545ca0a244a53688cad8834e32f56831c4923b50a103"}, - {file = "frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d"}, - {file = "frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad"}, -] - [[package]] name = "fsspec" version = "2025.10.0" @@ -1413,22 +1126,22 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" -version = "3.1.50" +version = "3.1.45" description = "GitPython is a Python library used to interact with Git repositories" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "gitpython-3.1.50-py3-none-any.whl", hash = "sha256:d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9"}, - {file = "gitpython-3.1.50.tar.gz", hash = "sha256:80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc"}, + {file = "gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77"}, + {file = "gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c"}, ] [package.dependencies] gitdb = ">=4.0.1,<5" [package.extras] -doc = ["sphinx (>=7.4.7,<8)", "sphinx-autodoc-typehints", "sphinx_rtd_theme"] -test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock ; python_version < \"3.8\"", "mypy (==1.18.2) ; python_version >= \"3.9\"", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions ; python_version < \"3.11\""] +doc = ["sphinx (>=7.1.2,<7.2)", "sphinx-autodoc-typehints", "sphinx_rtd_theme"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock ; python_version < \"3.8\"", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions ; python_version < \"3.11\""] [[package]] name = "google-auth" @@ -1458,6 +1171,33 @@ requests = ["requests (>=2.20.0,<3.0.0)"] testing = ["aiohttp (<3.10.0)", "aiohttp (>=3.6.2,<4.0.0)", "aioresponses", "flask", "freezegun", "grpcio", "oauth2client", "packaging", "pyjwt (>=2.0)", "pyopenssl (<24.3.0)", "pyopenssl (>=20.0.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-localserver", "pyu2f (>=0.1.5)", "requests (>=2.20.0,<3.0.0)", "responses", "urllib3"] urllib3 = ["packaging", "urllib3"] +[[package]] +name = "gpytorch" +version = "1.15.1" +description = "An implementation of Gaussian Processes in Pytorch" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "gpytorch-1.15.1-py3-none-any.whl", hash = "sha256:30e882a78e8c81093fab33fde9bc0a550c8dbe4a6365ade3286c961685bb8504"}, + {file = "gpytorch-1.15.1.tar.gz", hash = "sha256:76d84d4ec5c4c3e99785f1b36043dbac2ff2d867be4afa758d5202606f0d17f9"}, +] + +[package.dependencies] +jaxtyping = "*" +linear_operator = ">=0.6" +mpmath = ">=0.19,<=1.3" +scikit-learn = "*" +scipy = ">=1.6.0" + +[package.extras] +dev = ["pre-commit", "setuptools_scm", "twine", "ufmt"] +docs = ["ipykernel (<=6.17.1)", "ipython (<=8.6.0)", "lxml_html_clean", "m2r2 (<=0.3.3.post2)", "nbclient (<=0.7.3)", "nbformat (<=5.8.0)", "nbsphinx (<=0.9.1)", "platformdirs (<=3.2.0)", "setuptools_scm (<=7.1.0)", "sphinx (<=6.2.1)", "sphinx_autodoc_typehints (<=1.23.0)", "sphinx_rtd_theme (<0.5)"] +examples = ["ipython", "jupyter", "matplotlib", "scipy", "torchvision", "tqdm"] +keops = ["pykeops (>=1.1.1)"] +pyro = ["pyro-ppl (>=1.8)"] +test = ["flake8 (==4.0.1)", "flake8-print (==4.0.0)", "nbval", "pytest"] + [[package]] name = "graphene" version = "3.4.3" @@ -1612,38 +1352,38 @@ files = [ [[package]] name = "hf-xet" -version = "1.5.0" +version = "1.5.1" description = "Fast transfer of large files with the Hugging Face Hub." optional = false python-versions = ">=3.8" groups = ["main"] markers = "platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\"" files = [ - {file = "hf_xet-1.5.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:7d70fe2ce97b9db73b9c9b9c81fe3693640aec83416a966c446afea54acfae3c"}, - {file = "hf_xet-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:73a0dae8c71de3b0633a45c73f4a4a5ed09e94b43441d82981a781d4f12baa42"}, - {file = "hf_xet-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a60290ec57e9b71767fba7c3645ddafdd0759974b540441510c629c6db6db24a"}, - {file = "hf_xet-1.5.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:e5de0f6deada0dada870bb376a11bcd1f08abf3a968a6d118f33e72d1b1eb480"}, - {file = "hf_xet-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c799d49f1a5544a0ef7591c0ee75e0d6b93d6f56dc7a4979f59f7518d2872216"}, - {file = "hf_xet-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2baea1b0b989e5c152fe81425f7745ddc8901280ba3d97c98d8cdece7b706c60"}, - {file = "hf_xet-1.5.0-cp313-cp313t-win_amd64.whl", hash = "sha256:526345b3ed45f374f6317349df489167606736c876241ba984105afe7fd4839d"}, - {file = "hf_xet-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:786d28e2eb8315d5035544b9d137b4a842d600c434bb91bf7d0d953cce906ad4"}, - {file = "hf_xet-1.5.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:872d5601e6deea30d15865ede55d29eac6daf5a534ab417b99b6ef6b076dd96c"}, - {file = "hf_xet-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9929561f5abf4581c8ea79587881dfef6b8abb2a0d8a51915936fc2a614f4e73"}, - {file = "hf_xet-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f7b7bbae318e583a86fb21e5a4a175d6721d628a2874f4bd022d0e660c32a682"}, - {file = "hf_xet-1.5.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:cf7b2dc6f31a4ea754bb50f74cde482dcf5d366d184076d8530b9872787f3761"}, - {file = "hf_xet-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8dbcbab554c9ef158ef2c991545c3e970ddd8cc7acdcd0a78c5a41095dab4ded"}, - {file = "hf_xet-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5906bf7718d3636dc13402914736abe723492cb730f744834f5f5b67d3a12702"}, - {file = "hf_xet-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:5f3dc2248fc01cc0a00cd392ab497f1ca373fcbc7e3f2da1f452480b384e839e"}, - {file = "hf_xet-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:b285cea1b5bab46b758772716ba8d6854a1a0310fed1c249d678a8b38601e5a0"}, - {file = "hf_xet-1.5.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:dad0dc84e941b8ba3c860659fe1fdc35c049d47cce293f003287757e971a8f56"}, - {file = "hf_xet-1.5.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a"}, - {file = "hf_xet-1.5.0-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3531b1823a0e6d77d80f9ed15ca0e00f0d115094f8ac033d5cae88f4564cc949"}, - {file = "hf_xet-1.5.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9a0ee58cd18d5ea799f7ed11290bbccbe56bdd8b1d97ca74b9cc49a3945d7a3b"}, - {file = "hf_xet-1.5.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1e60df5a42e9bed8628b6416af2cba4cba57ae9f02de226a06b020d98e1aab18"}, - {file = "hf_xet-1.5.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4b35549ce62601b84da4ff9b24d970032ace3d4430f52d91bcbb26c901d6c690"}, - {file = "hf_xet-1.5.0-cp37-abi3-win_amd64.whl", hash = "sha256:2806c7c17b4d23f8d88f7c4814f838c3b6150773fe339c20af23e1cfaf2797e4"}, - {file = "hf_xet-1.5.0-cp37-abi3-win_arm64.whl", hash = "sha256:b6c9df403040248c76d808d3e047d64db2d923bae593eb244c41e425cf6cd7be"}, - {file = "hf_xet-1.5.0.tar.gz", hash = "sha256:e0fb0a34d9f406eed88233e829a67ec016bec5af19e480eac65a233ea289a948"}, + {file = "hf_xet-1.5.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:dbf48c0d02cf0b2e568944330c60d9120c272dabe013bd892d48e25bc6797577"}, + {file = "hf_xet-1.5.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78e4e5192ad2b674c2e1160b651cb9134db974f8ae1835bdfbfb0166b894a43"}, + {file = "hf_xet-1.5.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6f7a04a8ad962422e225bc49fbbac99dc1806764b1f3e54dbd154bffa7593947"}, + {file = "hf_xet-1.5.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:d48199c2bf4f8df0adc55d31d1368b6ec0e4d4f45bc86b08038089c23db0bed8"}, + {file = "hf_xet-1.5.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:97f212a88d14bbf573619a74b7fecb238de77d08fc702e54dec6f78276ca3283"}, + {file = "hf_xet-1.5.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f61e3665892a6c8c5e765395838b8ddf36185da835253d4bc4509a81e49fb342"}, + {file = "hf_xet-1.5.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f4ad3ebd4c32dd2b27099d69dc7b2df821e30767e46fb6ee6a0713778243b8ff"}, + {file = "hf_xet-1.5.1-cp313-cp313t-win_arm64.whl", hash = "sha256:8298485c1e36e7e67cbd01eeb1376619b7af43d4f1ec245caae306f890a8a32d"}, + {file = "hf_xet-1.5.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:3474760d10e3bb6f92ff3f024fcb00c0b3e4001e9b035c7483e49a5dd17aa70f"}, + {file = "hf_xet-1.5.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6762d89b9e3267dfd502b29b2a327b4525f33b17e7b509a78d94e2151a30ce30"}, + {file = "hf_xet-1.5.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bf67e6ed10260cef62e852789dc91ebb03f382d5bdc4b1dbeb64763ea275e7d6"}, + {file = "hf_xet-1.5.1-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:c6b6cd08ca095058780b50b8ce4d6cbf6787bcf27841705d58a9d32246e3e47a"}, + {file = "hf_xet-1.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e1af0de8ca6f190d4294a28b88023db64a1e2d1d719cab044baf75bec569e7a9"}, + {file = "hf_xet-1.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4f561cbbb92f80960772059864b7fb07eae879adde1b2e781ec6f86f6ac26c59"}, + {file = "hf_xet-1.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:e7dbb40617410f432182d918e37c12303fe6700fd6aa6c5964e30a535a4461d6"}, + {file = "hf_xet-1.5.1-cp314-cp314t-win_arm64.whl", hash = "sha256:6071d5ccb4d8d2cbd5fea5cc798da4f0ba3f44e25369591c4e89a4987050e61d"}, + {file = "hf_xet-1.5.1-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:6abd35c3221eff63836618ddfb954dcf84798603f71d8e33e3ed7b04acfdbe6e"}, + {file = "hf_xet-1.5.1-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:94e761bbd266bf4c03cee73753916062665ce8365aa40ed321f45afcb934b41e"}, + {file = "hf_xet-1.5.1-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:892e3a3a3aecc12aded8b93cf4f9cd059282c7de0732f7d55026f3abdf474350"}, + {file = "hf_xet-1.5.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:a93df2039190502835b1db8cd7e178b0b7b889fe9ab51299d5ced26e0dd879a4"}, + {file = "hf_xet-1.5.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0c97106032ef70467b4f6bc2d0ccc266d7613ee076afc56516c502f87ce1c4a6"}, + {file = "hf_xet-1.5.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6208adb15d192b90e4c2ad2a27ed864359b2cb0f2494eb6d7c7f3699ac02e2bf"}, + {file = "hf_xet-1.5.1-cp37-abi3-win_amd64.whl", hash = "sha256:f7b3002f95d1c13e24bcb4537baa8f0eb3838957067c91bb4959bc004a6435f5"}, + {file = "hf_xet-1.5.1-cp37-abi3-win_arm64.whl", hash = "sha256:93d090b57b211133f6c0dab0205ef5cb6d89162979ba75a74845045cc3063b8e"}, + {file = "hf_xet-1.5.1.tar.gz", hash = "sha256:51ef4500dab3764b41135ee1381a4b62ce56fc54d4c92b719b59e597d6df5bf6"}, ] [package.extras] @@ -1766,14 +1506,14 @@ backends = ["redis (>=3.0.0)"] [[package]] name = "huggingface-hub" -version = "1.14.0" +version = "1.16.1" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" optional = false python-versions = ">=3.10.0" groups = ["main"] files = [ - {file = "huggingface_hub-1.14.0-py3-none-any.whl", hash = "sha256:efe075535c62e130b30e836b138e13785f6f043d1f0539e0a39aa411a99e90b8"}, - {file = "huggingface_hub-1.14.0.tar.gz", hash = "sha256:d6d2c9cd6be1d02ae9ec6672d5587d10a427f377db688e82528f426a041622c2"}, + {file = "huggingface_hub-1.16.1-py3-none-any.whl", hash = "sha256:64340de934b9ce37857ef85a82de72f5629e8a270f9119eabb12bf495eb53c22"}, + {file = "huggingface_hub-1.16.1.tar.gz", hash = "sha256:7f1dc4c5ec21aed69be630ad0c3378616be16f3de1a47b141c0e812965d9c832"}, ] [package.dependencies] @@ -1885,6 +1625,26 @@ files = [ {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, ] +[[package]] +name = "jaxtyping" +version = "0.3.9" +description = "Type annotations and runtime checking for shape and dtype of JAX/NumPy/PyTorch/etc. arrays." +optional = false +python-versions = ">=3.11" +groups = ["main"] +files = [ + {file = "jaxtyping-0.3.9-py3-none-any.whl", hash = "sha256:a00557a9d616eff157491f06ed2e21ed94886fad3832399273eb912b345da378"}, + {file = "jaxtyping-0.3.9.tar.gz", hash = "sha256:f8c02d1b623d5f1b6665d4f3ddaec675d70004f16a792102c2fc51264190951d"}, +] + +[package.dependencies] +wadler-lindig = ">=0.1.3" + +[package.extras] +dev = ["pre-commit (>=4.3.0)"] +docs = ["griffe (==1.7.3)", "hippogriffe (==0.2.2)", "mkdocs (==1.6.1)", "mkdocs-include-exclude-files (==0.1.0)", "mkdocs-ipynb (==0.1.1)", "mkdocs-material (==9.6.7)", "mkdocstrings (==0.28.3)", "mkdocstrings-python (==1.16.8)", "pymdown-extensions (==10.14.3)"] +tests = ["beartype (>=0.21.0)", "cloudpickle (>=3.1.1)", "equinox (>=0.13.1)", "ipython (>=8.37.0)", "jax (>=0.9.0.1)", "mlx[cpu] (>=0.29.1)", "numpy", "pytest (>=8.4.2)", "pytest-asyncio (>=1.2.0)", "tensorflow (>=2.18.1) ; python_version <= \"3.12\"", "typeguard (==2.13.3)"] + [[package]] name = "jinja2" version = "3.1.6" @@ -2026,6 +1786,29 @@ files = [ {file = "kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d"}, ] +[[package]] +name = "linear-operator" +version = "0.6" +description = "A linear operator implementation, primarily designed for finite-dimensional positive definite operators (i.e. kernel matrices)." +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "linear_operator-0.6-py3-none-any.whl", hash = "sha256:b7c30ce0f6599e19c1cb970e00811828df98783b20c1dd2f765928415012f41c"}, + {file = "linear_operator-0.6.tar.gz", hash = "sha256:a9e2663879f1a2b28631bf7ef34892c4e5749893e711c8ef0ab0a39aff70a654"}, +] + +[package.dependencies] +jaxtyping = "*" +mpmath = ">=0.19,<=1.3" +scipy = "*" +torch = ">=2.0" + +[package.extras] +dev = ["pre-commit", "setuptools-scm", "twine", "ufmt"] +docs = ["myst-parser", "setuptools-scm", "six", "sphinx", "sphinx-autodoc-typehints", "sphinx-rtd-theme"] +test = ["flake8 (==5.0.4)", "flake8-print (==5.0.0)", "pytest", "typeguard (>=2.13.3,<2.14.0)"] + [[package]] name = "litestar" version = "2.18.0" @@ -2088,14 +1871,14 @@ files = [ [[package]] name = "mako" -version = "1.3.12" +version = "1.3.10" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "mako-1.3.12-py3-none-any.whl", hash = "sha256:8f61569480282dbf557145ce441e4ba888be453c30989f879f0d652e39f53ea9"}, - {file = "mako-1.3.12.tar.gz", hash = "sha256:9f778e93289bd410bb35daadeb4fc66d95a746f0b75777b942088b7fd7af550a"}, + {file = "mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59"}, + {file = "mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28"}, ] [package.dependencies] @@ -2322,32 +2105,31 @@ files = [ [[package]] name = "mlflow" -version = "3.12.0" +version = "3.9.0" description = "MLflow is an open source platform for the complete machine learning lifecycle" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "mlflow-3.12.0-py3-none-any.whl", hash = "sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0"}, - {file = "mlflow-3.12.0.tar.gz", hash = "sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47"}, + {file = "mlflow-3.9.0-py3-none-any.whl", hash = "sha256:280f94854e5ece42fc5538180b276661c62dbfb2c848a98e8873e78915379ac6"}, + {file = "mlflow-3.9.0.tar.gz", hash = "sha256:47a41fa22107b0ceee1f91e2184759ebfaffa31d7913b70318b78fb5369e52ec"}, ] [package.dependencies] -aiohttp = "<4" alembic = "<1.10.0 || >1.10.0,<2" cryptography = ">=43.0.0,<47" docker = ">=4.0.0,<8" Flask = "<4" Flask-CORS = "<7" graphene = "<4" -gunicorn = {version = "<26", markers = "platform_system != \"Windows\""} +gunicorn = {version = "<24", markers = "platform_system != \"Windows\""} huey = ">=2.5.4,<3" matplotlib = "<4" -mlflow-skinny = "3.12.0" -mlflow-tracing = "3.12.0" +mlflow-skinny = "3.9.0" +mlflow-tracing = "3.9.0" numpy = "<3" pandas = "<3" -pyarrow = ">=4.0.0,<24" +pyarrow = ">=4.0.0,<23" scikit-learn = "<2" scipy = "<2" skops = "<1" @@ -2357,89 +2139,84 @@ waitress = {version = "<4", markers = "platform_system == \"Windows\""} [package.extras] aliyun-oss = ["aliyunstoreplugin"] auth = ["Flask-WTF (<2)"] -azure = ["azure-identity (>=1.6.1)", "azure-storage-blob (>=12)"] databricks = ["azure-storage-file-datalake (>12)", "boto3 (>1)", "botocore", "databricks-agents (>=1.2.0,<2.0)", "google-cloud-storage (>=1.30.0)"] db = ["PyMySQL", "psycopg2-binary", "pymssql"] -extras = ["azureml-core (>=1.2.0)", "boto3", "botocore", "google-cloud-storage (>=1.30.0)", "kubernetes", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4"] -gateway = ["boto3 (>=1.28.56,<2)", "fastapi (<1)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<2)"] -genai = ["boto3 (>=1.28.56,<2)", "fastapi (<1)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<2)"] +extras = ["azureml-core (>=1.2.0)", "boto3", "botocore", "google-cloud-storage (>=1.30.0)", "kubernetes", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4", "virtualenv"] +gateway = ["aiohttp (<4)", "boto3 (>=1.28.56,<2)", "fastapi (<1)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<2)"] +genai = ["aiohttp (<4)", "boto3 (>=1.28.56,<2)", "fastapi (<1)", "litellm (>=1.0.0,<2)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<2)"] jfrog = ["mlflow-jfrog-plugin"] -kubernetes = ["kubernetes"] -langchain = ["langchain (>=0.3.25,<=1.2.15)"] -mcp = ["click (!=8.3.0)", "fastmcp (>=2.0.0,<4)"] +langchain = ["langchain (>=0.3.15,<=1.2.3)"] +mcp = ["click (!=8.3.0)", "fastmcp (>=2.0.0,<3)"] mlserver = ["mlserver (>=1.2.0,!=1.3.1,<2.0.0)", "mlserver-mlflow (>=1.2.0,!=1.3.1,<2.0.0)"] sqlserver = ["mlflow-dbstore"] [[package]] name = "mlflow-skinny" -version = "3.12.0" +version = "3.9.0" description = "MLflow is an open source platform for the complete machine learning lifecycle" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "mlflow_skinny-3.12.0-py3-none-any.whl", hash = "sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd"}, - {file = "mlflow_skinny-3.12.0.tar.gz", hash = "sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10"}, + {file = "mlflow_skinny-3.9.0-py3-none-any.whl", hash = "sha256:9b98706cdf9e07a61da7fbcd717c8d35ac89c76e084d25aafdbc150028e832d5"}, + {file = "mlflow_skinny-3.9.0.tar.gz", hash = "sha256:0598e0635dd1af9d195fb429210819aa4b56e9d6014f87134241f2325d57a290"}, ] [package.dependencies] -cachetools = ">=5.0.0,<8" +cachetools = ">=5.0.0,<7" click = ">=7.0,<9" cloudpickle = "<4" databricks-sdk = ">=0.20.0,<1" fastapi = "<1" gitpython = ">=3.1.9,<4" -importlib_metadata = ">=3.7.0,<4.7.0 || >4.7.0,<10" +importlib_metadata = ">=3.7.0,<4.7.0 || >4.7.0,<9" opentelemetry-api = ">=1.9.0,<3" opentelemetry-proto = ">=1.9.0,<3" opentelemetry-sdk = ">=1.9.0,<3" -packaging = "<27" -protobuf = ">=3.12.0,<8" +packaging = "<26" +protobuf = ">=3.12.0,<7" pydantic = ">=2.0.0,<3" python-dotenv = ">=0.19.0,<2" pyyaml = ">=5.1,<7" requests = ">=2.17.3,<3" sqlparse = ">=0.4.0,<1" -starlette = "<1" typing-extensions = ">=4.0.0,<5" uvicorn = "<1" [package.extras] aliyun-oss = ["aliyunstoreplugin"] auth = ["Flask-WTF (<2)"] -azure = ["azure-identity (>=1.6.1)", "azure-storage-blob (>=12)"] databricks = ["azure-storage-file-datalake (>12)", "boto3 (>1)", "botocore", "databricks-agents (>=1.2.0,<2.0)", "google-cloud-storage (>=1.30.0)"] db = ["PyMySQL", "psycopg2-binary", "pymssql"] -extras = ["azureml-core (>=1.2.0)", "boto3", "botocore", "google-cloud-storage (>=1.30.0)", "kubernetes", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4"] -gateway = ["boto3 (>=1.28.56,<2)", "fastapi (<1)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<2)"] -genai = ["boto3 (>=1.28.56,<2)", "fastapi (<1)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<2)"] +extras = ["azureml-core (>=1.2.0)", "boto3", "botocore", "google-cloud-storage (>=1.30.0)", "kubernetes", "prometheus-flask-exporter", "pyarrow", "pysftp", "requests-auth-aws-sigv4", "virtualenv"] +gateway = ["aiohttp (<4)", "boto3 (>=1.28.56,<2)", "fastapi (<1)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<2)"] +genai = ["aiohttp (<4)", "boto3 (>=1.28.56,<2)", "fastapi (<1)", "litellm (>=1.0.0,<2)", "slowapi (>=0.1.9,<1)", "tiktoken (<1)", "uvicorn[standard] (<1)", "watchfiles (<2)"] jfrog = ["mlflow-jfrog-plugin"] -kubernetes = ["kubernetes"] -langchain = ["langchain (>=0.3.25,<=1.2.15)"] -mcp = ["click (!=8.3.0)", "fastmcp (>=2.0.0,<4)"] +langchain = ["langchain (>=0.3.15,<=1.2.3)"] +mcp = ["click (!=8.3.0)", "fastmcp (>=2.0.0,<3)"] mlserver = ["mlserver (>=1.2.0,!=1.3.1,<2.0.0)", "mlserver-mlflow (>=1.2.0,!=1.3.1,<2.0.0)"] sqlserver = ["mlflow-dbstore"] [[package]] name = "mlflow-tracing" -version = "3.12.0" +version = "3.9.0" description = "MLflow Tracing SDK is an open-source, lightweight Python package that only includes the minimum set of dependencies and functionality to instrument your code/models/agents with MLflow Tracing." optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "mlflow_tracing-3.12.0-py3-none-any.whl", hash = "sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518"}, - {file = "mlflow_tracing-3.12.0.tar.gz", hash = "sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80"}, + {file = "mlflow_tracing-3.9.0-py3-none-any.whl", hash = "sha256:93df8df0697303ad3135df6228934e5d9d2f264d2683b97a6f06ad865ec418a0"}, + {file = "mlflow_tracing-3.9.0.tar.gz", hash = "sha256:3a0676e6f362712299d191108a5cbcd596f6d84f23f050dfbf80161e245d456c"}, ] [package.dependencies] -cachetools = ">=5.0.0,<8" +cachetools = ">=5.0.0,<7" databricks-sdk = ">=0.20.0,<1" opentelemetry-api = ">=1.9.0,<3" opentelemetry-proto = ">=1.9.0,<3" opentelemetry-sdk = ">=1.9.0,<3" -packaging = "<27" -protobuf = ">=3.12.0,<8" +packaging = "<26" +protobuf = ">=3.12.0,<7" pydantic = ">=2.0.0,<3" [[package]] @@ -2685,6 +2462,18 @@ files = [ dev = ["build", "pytest", "pytest-cov", "tox", "tox-uv", "twine"] docs = ["sphinx (>=8,<9)", "sphinx-autobuild"] +[[package]] +name = "multipledispatch" +version = "1.0.0" +description = "Multiple dispatch" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "multipledispatch-1.0.0-py3-none-any.whl", hash = "sha256:0c53cd8b077546da4e48869f49b13164bebafd0c2a5afceb6bb6a316e7fb46e4"}, + {file = "multipledispatch-1.0.0.tar.gz", hash = "sha256:5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0"}, +] + [[package]] name = "mypy" version = "1.18.2" @@ -2780,14 +2569,14 @@ test-extras = ["pytest-mpl", "pytest-randomly"] [[package]] name = "nltk" -version = "3.9.4" +version = "3.9.2" description = "Natural Language Toolkit" optional = false -python-versions = ">=3.10" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "nltk-3.9.4-py3-none-any.whl", hash = "sha256:f2fa301c3a12718ce4a0e9305c5675299da5ad9e26068218b69d692fda84828f"}, - {file = "nltk-3.9.4.tar.gz", hash = "sha256:ed03bc098a40481310320808b2db712d95d13ca65b27372f8a403949c8b523d0"}, + {file = "nltk-3.9.2-py3-none-any.whl", hash = "sha256:1e209d2b3009110635ed9709a67a1a3e33a10f799490fa71cf4bec218c11c88a"}, + {file = "nltk-3.9.2.tar.gz", hash = "sha256:0f409e9b069ca4177c1903c3e843eef90c7e92992fa4931ae607da6de49e1419"}, ] [package.dependencies] @@ -2806,84 +2595,86 @@ twitter = ["twython"] [[package]] name = "numpy" -version = "2.4.4" +version = "2.3.5" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.11" groups = ["main"] files = [ - {file = "numpy-2.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f983334aea213c99992053ede6168500e5f086ce74fbc4acc3f2b00f5762e9db"}, - {file = "numpy-2.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:72944b19f2324114e9dc86a159787333b77874143efcf89a5167ef83cfee8af0"}, - {file = "numpy-2.4.4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:86b6f55f5a352b48d7fbfd2dbc3d5b780b2d79f4d3c121f33eb6efb22e9a2015"}, - {file = "numpy-2.4.4-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:ba1f4fc670ed79f876f70082eff4f9583c15fb9a4b89d6188412de4d18ae2f40"}, - {file = "numpy-2.4.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a87ec22c87be071b6bdbd27920b129b94f2fc964358ce38f3822635a3e2e03d"}, - {file = "numpy-2.4.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:df3775294accfdd75f32c74ae39fcba920c9a378a2fc18a12b6820aa8c1fb502"}, - {file = "numpy-2.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0d4e437e295f18ec29bc79daf55e8a47a9113df44d66f702f02a293d93a2d6dd"}, - {file = "numpy-2.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6aa3236c78803afbcb255045fbef97a9e25a1f6c9888357d205ddc42f4d6eba5"}, - {file = "numpy-2.4.4-cp311-cp311-win32.whl", hash = "sha256:30caa73029a225b2d40d9fae193e008e24b2026b7ee1a867b7ee8d96ca1a448e"}, - {file = "numpy-2.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:6bbe4eb67390b0a0265a2c25458f6b90a409d5d069f1041e6aff1e27e3d9a79e"}, - {file = "numpy-2.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:fcfe2045fd2e8f3cb0ce9d4ba6dba6333b8fa05bb8a4939c908cd43322d14c7e"}, - {file = "numpy-2.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b"}, - {file = "numpy-2.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e"}, - {file = "numpy-2.4.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842"}, - {file = "numpy-2.4.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8"}, - {file = "numpy-2.4.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121"}, - {file = "numpy-2.4.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e"}, - {file = "numpy-2.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44"}, - {file = "numpy-2.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d"}, - {file = "numpy-2.4.4-cp312-cp312-win32.whl", hash = "sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827"}, - {file = "numpy-2.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a"}, - {file = "numpy-2.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec"}, - {file = "numpy-2.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50"}, - {file = "numpy-2.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115"}, - {file = "numpy-2.4.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af"}, - {file = "numpy-2.4.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c"}, - {file = "numpy-2.4.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103"}, - {file = "numpy-2.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83"}, - {file = "numpy-2.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed"}, - {file = "numpy-2.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959"}, - {file = "numpy-2.4.4-cp313-cp313-win32.whl", hash = "sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed"}, - {file = "numpy-2.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf"}, - {file = "numpy-2.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d"}, - {file = "numpy-2.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5"}, - {file = "numpy-2.4.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7"}, - {file = "numpy-2.4.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93"}, - {file = "numpy-2.4.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e"}, - {file = "numpy-2.4.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40"}, - {file = "numpy-2.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e"}, - {file = "numpy-2.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392"}, - {file = "numpy-2.4.4-cp313-cp313t-win32.whl", hash = "sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008"}, - {file = "numpy-2.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8"}, - {file = "numpy-2.4.4-cp313-cp313t-win_arm64.whl", hash = "sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233"}, - {file = "numpy-2.4.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0"}, - {file = "numpy-2.4.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a"}, - {file = "numpy-2.4.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a"}, - {file = "numpy-2.4.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b"}, - {file = "numpy-2.4.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a"}, - {file = "numpy-2.4.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d"}, - {file = "numpy-2.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252"}, - {file = "numpy-2.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f"}, - {file = "numpy-2.4.4-cp314-cp314-win32.whl", hash = "sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc"}, - {file = "numpy-2.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74"}, - {file = "numpy-2.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb"}, - {file = "numpy-2.4.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e"}, - {file = "numpy-2.4.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113"}, - {file = "numpy-2.4.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d"}, - {file = "numpy-2.4.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d"}, - {file = "numpy-2.4.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f"}, - {file = "numpy-2.4.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0"}, - {file = "numpy-2.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150"}, - {file = "numpy-2.4.4-cp314-cp314t-win32.whl", hash = "sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871"}, - {file = "numpy-2.4.4-cp314-cp314t-win_amd64.whl", hash = "sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e"}, - {file = "numpy-2.4.4-cp314-cp314t-win_arm64.whl", hash = "sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7"}, - {file = "numpy-2.4.4-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:58c8b5929fcb8287cbd6f0a3fae19c6e03a5c48402ae792962ac465224a629a4"}, - {file = "numpy-2.4.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:eea7ac5d2dce4189771cedb559c738a71512768210dc4e4753b107a2048b3d0e"}, - {file = "numpy-2.4.4-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:51fc224f7ca4d92656d5a5eb315f12eb5fe2c97a66249aa7b5f562528a3be38c"}, - {file = "numpy-2.4.4-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:28a650663f7314afc3e6ec620f44f333c386aad9f6fc472030865dc0ebb26ee3"}, - {file = "numpy-2.4.4-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:19710a9ca9992d7174e9c52f643d4272dcd1558c5f7af7f6f8190f633bd651a7"}, - {file = "numpy-2.4.4-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b2aec6af35c113b05695ebb5749a787acd63cafc83086a05771d1e1cd1e555f"}, - {file = "numpy-2.4.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f2cf083b324a467e1ab358c105f6cad5ea950f50524668a80c486ff1db24e119"}, - {file = "numpy-2.4.4.tar.gz", hash = "sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0"}, + {file = "numpy-2.3.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10"}, + {file = "numpy-2.3.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218"}, + {file = "numpy-2.3.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d"}, + {file = "numpy-2.3.5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5"}, + {file = "numpy-2.3.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7"}, + {file = "numpy-2.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4"}, + {file = "numpy-2.3.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e"}, + {file = "numpy-2.3.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748"}, + {file = "numpy-2.3.5-cp311-cp311-win32.whl", hash = "sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c"}, + {file = "numpy-2.3.5-cp311-cp311-win_amd64.whl", hash = "sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c"}, + {file = "numpy-2.3.5-cp311-cp311-win_arm64.whl", hash = "sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa"}, + {file = "numpy-2.3.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e"}, + {file = "numpy-2.3.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769"}, + {file = "numpy-2.3.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5"}, + {file = "numpy-2.3.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4"}, + {file = "numpy-2.3.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d"}, + {file = "numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28"}, + {file = "numpy-2.3.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b"}, + {file = "numpy-2.3.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c"}, + {file = "numpy-2.3.5-cp312-cp312-win32.whl", hash = "sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952"}, + {file = "numpy-2.3.5-cp312-cp312-win_amd64.whl", hash = "sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa"}, + {file = "numpy-2.3.5-cp312-cp312-win_arm64.whl", hash = "sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013"}, + {file = "numpy-2.3.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff"}, + {file = "numpy-2.3.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188"}, + {file = "numpy-2.3.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0"}, + {file = "numpy-2.3.5-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903"}, + {file = "numpy-2.3.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d"}, + {file = "numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017"}, + {file = "numpy-2.3.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf"}, + {file = "numpy-2.3.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce"}, + {file = "numpy-2.3.5-cp313-cp313-win32.whl", hash = "sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e"}, + {file = "numpy-2.3.5-cp313-cp313-win_amd64.whl", hash = "sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b"}, + {file = "numpy-2.3.5-cp313-cp313-win_arm64.whl", hash = "sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae"}, + {file = "numpy-2.3.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd"}, + {file = "numpy-2.3.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f"}, + {file = "numpy-2.3.5-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a"}, + {file = "numpy-2.3.5-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139"}, + {file = "numpy-2.3.5-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e"}, + {file = "numpy-2.3.5-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9"}, + {file = "numpy-2.3.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946"}, + {file = "numpy-2.3.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1"}, + {file = "numpy-2.3.5-cp313-cp313t-win32.whl", hash = "sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3"}, + {file = "numpy-2.3.5-cp313-cp313t-win_amd64.whl", hash = "sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234"}, + {file = "numpy-2.3.5-cp313-cp313t-win_arm64.whl", hash = "sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7"}, + {file = "numpy-2.3.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82"}, + {file = "numpy-2.3.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0"}, + {file = "numpy-2.3.5-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63"}, + {file = "numpy-2.3.5-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9"}, + {file = "numpy-2.3.5-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b"}, + {file = "numpy-2.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520"}, + {file = "numpy-2.3.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c"}, + {file = "numpy-2.3.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8"}, + {file = "numpy-2.3.5-cp314-cp314-win32.whl", hash = "sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248"}, + {file = "numpy-2.3.5-cp314-cp314-win_amd64.whl", hash = "sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e"}, + {file = "numpy-2.3.5-cp314-cp314-win_arm64.whl", hash = "sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2"}, + {file = "numpy-2.3.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41"}, + {file = "numpy-2.3.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad"}, + {file = "numpy-2.3.5-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39"}, + {file = "numpy-2.3.5-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20"}, + {file = "numpy-2.3.5-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52"}, + {file = "numpy-2.3.5-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b"}, + {file = "numpy-2.3.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3"}, + {file = "numpy-2.3.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227"}, + {file = "numpy-2.3.5-cp314-cp314t-win32.whl", hash = "sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5"}, + {file = "numpy-2.3.5-cp314-cp314t-win_amd64.whl", hash = "sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf"}, + {file = "numpy-2.3.5-cp314-cp314t-win_arm64.whl", hash = "sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42"}, + {file = "numpy-2.3.5-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310"}, + {file = "numpy-2.3.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c"}, + {file = "numpy-2.3.5-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18"}, + {file = "numpy-2.3.5-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff"}, + {file = "numpy-2.3.5-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb"}, + {file = "numpy-2.3.5-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7"}, + {file = "numpy-2.3.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425"}, + {file = "numpy-2.3.5.tar.gz", hash = "sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0"}, ] [[package]] @@ -3183,6 +2974,18 @@ files = [ opentelemetry-api = "1.39.1" typing-extensions = ">=4.5.0" +[[package]] +name = "opt-einsum" +version = "3.4.0" +description = "Path optimization of einsum functions." +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "opt_einsum-3.4.0-py3-none-any.whl", hash = "sha256:69bb92469f86a1565195ece4ac0323943e83477171b91d24c35afe028a90d7cd"}, + {file = "opt_einsum-3.4.0.tar.gz", hash = "sha256:96ca72f1b886d148241348783498194c577fa30a8faac108586b14f1ba4473ac"}, +] + [[package]] name = "packaging" version = "25.0" @@ -3340,103 +3143,103 @@ test = ["pytest", "pytest-cov", "scipy"] [[package]] name = "pillow" -version = "12.2.0" +version = "12.0.0" description = "Python Imaging Library (fork)" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "pillow-12.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:a4e8f36e677d3336f35089648c8955c51c6d386a13cf6ee9c189c5f5bd713a9f"}, - {file = "pillow-12.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e589959f10d9824d39b350472b92f0ce3b443c0a3442ebf41c40cb8361c5b97"}, - {file = "pillow-12.2.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a52edc8bfff4429aaabdf4d9ee0daadbbf8562364f940937b941f87a4290f5ff"}, - {file = "pillow-12.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:975385f4776fafde056abb318f612ef6285b10a1f12b8570f3647ad0d74b48ec"}, - {file = "pillow-12.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd9c0c7a0c681a347b3194c500cb1e6ca9cab053ea4d82a5cf45b6b754560136"}, - {file = "pillow-12.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:88d387ff40b3ff7c274947ed3125dedf5262ec6919d83946753b5f3d7c67ea4c"}, - {file = "pillow-12.2.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:51c4167c34b0d8ba05b547a3bb23578d0ba17b80a5593f93bd8ecb123dd336a3"}, - {file = "pillow-12.2.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:34c0d99ecccea270c04882cb3b86e7b57296079c9a4aff88cb3b33563d95afaa"}, - {file = "pillow-12.2.0-cp310-cp310-win32.whl", hash = "sha256:b85f66ae9eb53e860a873b858b789217ba505e5e405a24b85c0464822fe88032"}, - {file = "pillow-12.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:673aa32138f3e7531ccdbca7b3901dba9b70940a19ccecc6a37c77d5fdeb05b5"}, - {file = "pillow-12.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:3e080565d8d7c671db5802eedfb438e5565ffa40115216eabb8cd52d0ecce024"}, - {file = "pillow-12.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:8be29e59487a79f173507c30ddf57e733a357f67881430449bb32614075a40ab"}, - {file = "pillow-12.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:71cde9a1e1551df7d34a25462fc60325e8a11a82cc2e2f54578e5e9a1e153d65"}, - {file = "pillow-12.2.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f490f9368b6fc026f021db16d7ec2fbf7d89e2edb42e8ec09d2c60505f5729c7"}, - {file = "pillow-12.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8bd7903a5f2a4545f6fd5935c90058b89d30045568985a71c79f5fd6edf9b91e"}, - {file = "pillow-12.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3997232e10d2920a68d25191392e3a4487d8183039e1c74c2297f00ed1c50705"}, - {file = "pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e74473c875d78b8e9d5da2a70f7099549f9eb37ded4e2f6a463e60125bccd176"}, - {file = "pillow-12.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:56a3f9c60a13133a98ecff6197af34d7824de9b7b38c3654861a725c970c197b"}, - {file = "pillow-12.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:90e6f81de50ad6b534cab6e5aef77ff6e37722b2f5d908686f4a5c9eba17a909"}, - {file = "pillow-12.2.0-cp311-cp311-win32.whl", hash = "sha256:8c984051042858021a54926eb597d6ee3012393ce9c181814115df4c60b9a808"}, - {file = "pillow-12.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6e6b2a0c538fc200b38ff9eb6628228b77908c319a005815f2dde585a0664b60"}, - {file = "pillow-12.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:9a8a34cc89c67a65ea7437ce257cea81a9dad65b29805f3ecee8c8fe8ff25ffe"}, - {file = "pillow-12.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d192a155bbcec180f8564f693e6fd9bccff5a7af9b32e2e4bf8c9c69dbad6b5"}, - {file = "pillow-12.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3f40b3c5a968281fd507d519e444c35f0ff171237f4fdde090dd60699458421"}, - {file = "pillow-12.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:03e7e372d5240cc23e9f07deca4d775c0817bffc641b01e9c3af208dbd300987"}, - {file = "pillow-12.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b86024e52a1b269467a802258c25521e6d742349d760728092e1bc2d135b4d76"}, - {file = "pillow-12.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7371b48c4fa448d20d2714c9a1f775a81155050d383333e0a6c15b1123dda005"}, - {file = "pillow-12.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62f5409336adb0663b7caa0da5c7d9e7bdbaae9ce761d34669420c2a801b2780"}, - {file = "pillow-12.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:01afa7cf67f74f09523699b4e88c73fb55c13346d212a59a2db1f86b0a63e8c5"}, - {file = "pillow-12.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc3d34d4a8fbec3e88a79b92e5465e0f9b842b628675850d860b8bd300b159f5"}, - {file = "pillow-12.2.0-cp312-cp312-win32.whl", hash = "sha256:58f62cc0f00fd29e64b29f4fd923ffdb3859c9f9e6105bfc37ba1d08994e8940"}, - {file = "pillow-12.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f84204dee22a783350679a0333981df803dac21a0190d706a50475e361c93f5"}, - {file = "pillow-12.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:af73337013e0b3b46f175e79492d96845b16126ddf79c438d7ea7ff27783a414"}, - {file = "pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:8297651f5b5679c19968abefd6bb84d95fe30ef712eb1b2d9b2d31ca61267f4c"}, - {file = "pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:50d8520da2a6ce0af445fa6d648c4273c3eeefbc32d7ce049f22e8b5c3daecc2"}, - {file = "pillow-12.2.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:766cef22385fa1091258ad7e6216792b156dc16d8d3fa607e7545b2b72061f1c"}, - {file = "pillow-12.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5d2fd0fa6b5d9d1de415060363433f28da8b1526c1c129020435e186794b3795"}, - {file = "pillow-12.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56b25336f502b6ed02e889f4ece894a72612fe885889a6e8c4c80239ff6e5f5f"}, - {file = "pillow-12.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f1c943e96e85df3d3478f7b691f229887e143f81fedab9b20205349ab04d73ed"}, - {file = "pillow-12.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:03f6fab9219220f041c74aeaa2939ff0062bd5c364ba9ce037197f4c6d498cd9"}, - {file = "pillow-12.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5cdfebd752ec52bf5bb4e35d9c64b40826bc5b40a13df7c3cda20a2c03a0f5ed"}, - {file = "pillow-12.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eedf4b74eda2b5a4b2b2fb4c006d6295df3bf29e459e198c90ea48e130dc75c3"}, - {file = "pillow-12.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:00a2865911330191c0b818c59103b58a5e697cae67042366970a6b6f1b20b7f9"}, - {file = "pillow-12.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e1757442ed87f4912397c6d35a0db6a7b52592156014706f17658ff58bbf795"}, - {file = "pillow-12.2.0-cp313-cp313-win32.whl", hash = "sha256:144748b3af2d1b358d41286056d0003f47cb339b8c43a9ea42f5fea4d8c66b6e"}, - {file = "pillow-12.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:390ede346628ccc626e5730107cde16c42d3836b89662a115a921f28440e6a3b"}, - {file = "pillow-12.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:8023abc91fba39036dbce14a7d6535632f99c0b857807cbbbf21ecc9f4717f06"}, - {file = "pillow-12.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:042db20a421b9bafecc4b84a8b6e444686bd9d836c7fd24542db3e7df7baad9b"}, - {file = "pillow-12.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:dd025009355c926a84a612fecf58bb315a3f6814b17ead51a8e48d3823d9087f"}, - {file = "pillow-12.2.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88ddbc66737e277852913bd1e07c150cc7bb124539f94c4e2df5344494e0a612"}, - {file = "pillow-12.2.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d362d1878f00c142b7e1a16e6e5e780f02be8195123f164edf7eddd911eefe7c"}, - {file = "pillow-12.2.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c727a6d53cb0018aadd8018c2b938376af27914a68a492f59dfcaca650d5eea"}, - {file = "pillow-12.2.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:efd8c21c98c5cc60653bcb311bef2ce0401642b7ce9d09e03a7da87c878289d4"}, - {file = "pillow-12.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f08483a632889536b8139663db60f6724bfcb443c96f1b18855860d7d5c0fd4"}, - {file = "pillow-12.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dac8d77255a37e81a2efcbd1fc05f1c15ee82200e6c240d7e127e25e365c39ea"}, - {file = "pillow-12.2.0-cp313-cp313t-win32.whl", hash = "sha256:ee3120ae9dff32f121610bb08e4313be87e03efeadfc6c0d18f89127e24d0c24"}, - {file = "pillow-12.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:325ca0528c6788d2a6c3d40e3568639398137346c3d6e66bb61db96b96511c98"}, - {file = "pillow-12.2.0-cp313-cp313t-win_arm64.whl", hash = "sha256:2e5a76d03a6c6dcef67edabda7a52494afa4035021a79c8558e14af25313d453"}, - {file = "pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:3adc9215e8be0448ed6e814966ecf3d9952f0ea40eb14e89a102b87f450660d8"}, - {file = "pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6a9adfc6d24b10f89588096364cc726174118c62130c817c2837c60cf08a392b"}, - {file = "pillow-12.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:6a6e67ea2e6feda684ed370f9a1c52e7a243631c025ba42149a2cc5934dec295"}, - {file = "pillow-12.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2bb4a8d594eacdfc59d9e5ad972aa8afdd48d584ffd5f13a937a664c3e7db0ed"}, - {file = "pillow-12.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:80b2da48193b2f33ed0c32c38140f9d3186583ce7d516526d462645fd98660ae"}, - {file = "pillow-12.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22db17c68434de69d8ecfc2fe821569195c0c373b25cccb9cbdacf2c6e53c601"}, - {file = "pillow-12.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7b14cc0106cd9aecda615dd6903840a058b4700fcb817687d0ee4fc8b6e389be"}, - {file = "pillow-12.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cbeb542b2ebc6fcdacabf8aca8c1a97c9b3ad3927d46b8723f9d4f033288a0f"}, - {file = "pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4bfd07bc812fbd20395212969e41931001fd59eb55a60658b0e5710872e95286"}, - {file = "pillow-12.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9aba9a17b623ef750a4d11b742cbafffeb48a869821252b30ee21b5e91392c50"}, - {file = "pillow-12.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:deede7c263feb25dba4e82ea23058a235dcc2fe1f6021025dc71f2b618e26104"}, - {file = "pillow-12.2.0-cp314-cp314-win32.whl", hash = "sha256:632ff19b2778e43162304d50da0181ce24ac5bb8180122cbe1bf4673428328c7"}, - {file = "pillow-12.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e6c62e9d237e9b65fac06857d511e90d8461a32adcc1b9065ea0c0fa3a28150"}, - {file = "pillow-12.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:b1c1fbd8a5a1af3412a0810d060a78b5136ec0836c8a4ef9aa11807f2a22f4e1"}, - {file = "pillow-12.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:57850958fe9c751670e49b2cecf6294acc99e562531f4bd317fa5ddee2068463"}, - {file = "pillow-12.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d5d38f1411c0ed9f97bcb49b7bd59b6b7c314e0e27420e34d99d844b9ce3b6f3"}, - {file = "pillow-12.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c0a9f29ca8e79f09de89293f82fc9b0270bb4af1d58bc98f540cc4aedf03166"}, - {file = "pillow-12.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1610dd6c61621ae1cf811bef44d77e149ce3f7b95afe66a4512f8c59f25d9ebe"}, - {file = "pillow-12.2.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a34329707af4f73cf1782a36cd2289c0368880654a2c11f027bcee9052d35dd"}, - {file = "pillow-12.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e9c4f5b3c546fa3458a29ab22646c1c6c787ea8f5ef51300e5a60300736905e"}, - {file = "pillow-12.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb043ee2f06b41473269765c2feae53fc2e2fbf96e5e22ca94fb5ad677856f06"}, - {file = "pillow-12.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f278f034eb75b4e8a13a54a876cc4a5ab39173d2cdd93a638e1b467fc545ac43"}, - {file = "pillow-12.2.0-cp314-cp314t-win32.whl", hash = "sha256:6bb77b2dcb06b20f9f4b4a8454caa581cd4dd0643a08bacf821216a16d9c8354"}, - {file = "pillow-12.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6562ace0d3fb5f20ed7290f1f929cae41b25ae29528f2af1722966a0a02e2aa1"}, - {file = "pillow-12.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aa88ccfe4e32d362816319ed727a004423aab09c5cea43c01a4b435643fa34eb"}, - {file = "pillow-12.2.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0538bd5e05efec03ae613fd89c4ce0368ecd2ba239cc25b9f9be7ed426b0af1f"}, - {file = "pillow-12.2.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:394167b21da716608eac917c60aa9b969421b5dcbbe02ae7f013e7b85811c69d"}, - {file = "pillow-12.2.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5d04bfa02cc2d23b497d1e90a0f927070043f6cbf303e738300532379a4b4e0f"}, - {file = "pillow-12.2.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0c838a5125cee37e68edec915651521191cef1e6aa336b855f495766e77a366e"}, - {file = "pillow-12.2.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a6c9fa44005fa37a91ebfc95d081e8079757d2e904b27103f4f5fa6f0bf78c0"}, - {file = "pillow-12.2.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:25373b66e0dd5905ed63fa3cae13c82fbddf3079f2c8bf15c6fb6a35586324c1"}, - {file = "pillow-12.2.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:bfa9c230d2fe991bed5318a5f119bd6780cda2915cca595393649fc118ab895e"}, - {file = "pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5"}, + {file = "pillow-12.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:3adfb466bbc544b926d50fe8f4a4e6abd8c6bffd28a26177594e6e9b2b76572b"}, + {file = "pillow-12.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1ac11e8ea4f611c3c0147424eae514028b5e9077dd99ab91e1bd7bc33ff145e1"}, + {file = "pillow-12.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d49e2314c373f4c2b39446fb1a45ed333c850e09d0c59ac79b72eb3b95397363"}, + {file = "pillow-12.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c7b2a63fd6d5246349f3d3f37b14430d73ee7e8173154461785e43036ffa96ca"}, + {file = "pillow-12.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d64317d2587c70324b79861babb9c09f71fbb780bad212018874b2c013d8600e"}, + {file = "pillow-12.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d77153e14b709fd8b8af6f66a3afbb9ed6e9fc5ccf0b6b7e1ced7b036a228782"}, + {file = "pillow-12.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32ed80ea8a90ee3e6fa08c21e2e091bba6eda8eccc83dbc34c95169507a91f10"}, + {file = "pillow-12.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c828a1ae702fc712978bda0320ba1b9893d99be0badf2647f693cc01cf0f04fa"}, + {file = "pillow-12.0.0-cp310-cp310-win32.whl", hash = "sha256:bd87e140e45399c818fac4247880b9ce719e4783d767e030a883a970be632275"}, + {file = "pillow-12.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:455247ac8a4cfb7b9bc45b7e432d10421aea9fc2e74d285ba4072688a74c2e9d"}, + {file = "pillow-12.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6ace95230bfb7cd79ef66caa064bbe2f2a1e63d93471c3a2e1f1348d9f22d6b7"}, + {file = "pillow-12.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0fd00cac9c03256c8b2ff58f162ebcd2587ad3e1f2e397eab718c47e24d231cc"}, + {file = "pillow-12.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3475b96f5908b3b16c47533daaa87380c491357d197564e0ba34ae75c0f3257"}, + {file = "pillow-12.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:110486b79f2d112cf6add83b28b627e369219388f64ef2f960fef9ebaf54c642"}, + {file = "pillow-12.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5269cc1caeedb67e6f7269a42014f381f45e2e7cd42d834ede3c703a1d915fe3"}, + {file = "pillow-12.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa5129de4e174daccbc59d0a3b6d20eaf24417d59851c07ebb37aeb02947987c"}, + {file = "pillow-12.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bee2a6db3a7242ea309aa7ee8e2780726fed67ff4e5b40169f2c940e7eb09227"}, + {file = "pillow-12.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:90387104ee8400a7b4598253b4c406f8958f59fcf983a6cea2b50d59f7d63d0b"}, + {file = "pillow-12.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc91a56697869546d1b8f0a3ff35224557ae7f881050e99f615e0119bf934b4e"}, + {file = "pillow-12.0.0-cp311-cp311-win32.whl", hash = "sha256:27f95b12453d165099c84f8a8bfdfd46b9e4bda9e0e4b65f0635430027f55739"}, + {file = "pillow-12.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:b583dc9070312190192631373c6c8ed277254aa6e6084b74bdd0a6d3b221608e"}, + {file = "pillow-12.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:759de84a33be3b178a64c8ba28ad5c135900359e85fb662bc6e403ad4407791d"}, + {file = "pillow-12.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:53561a4ddc36facb432fae7a9d8afbfaf94795414f5cdc5fc52f28c1dca90371"}, + {file = "pillow-12.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71db6b4c1653045dacc1585c1b0d184004f0d7e694c7b34ac165ca70c0838082"}, + {file = "pillow-12.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2fa5f0b6716fc88f11380b88b31fe591a06c6315e955c096c35715788b339e3f"}, + {file = "pillow-12.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82240051c6ca513c616f7f9da06e871f61bfd7805f566275841af15015b8f98d"}, + {file = "pillow-12.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55f818bd74fe2f11d4d7cbc65880a843c4075e0ac7226bc1a23261dbea531953"}, + {file = "pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b87843e225e74576437fd5b6a4c2205d422754f84a06942cfaf1dc32243e45a8"}, + {file = "pillow-12.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c607c90ba67533e1b2355b821fef6764d1dd2cbe26b8c1005ae84f7aea25ff79"}, + {file = "pillow-12.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:21f241bdd5080a15bc86d3466a9f6074a9c2c2b314100dd896ac81ee6db2f1ba"}, + {file = "pillow-12.0.0-cp312-cp312-win32.whl", hash = "sha256:dd333073e0cacdc3089525c7df7d39b211bcdf31fc2824e49d01c6b6187b07d0"}, + {file = "pillow-12.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe611163f6303d1619bbcb653540a4d60f9e55e622d60a3108be0d5b441017a"}, + {file = "pillow-12.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:7dfb439562f234f7d57b1ac6bc8fe7f838a4bd49c79230e0f6a1da93e82f1fad"}, + {file = "pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0869154a2d0546545cde61d1789a6524319fc1897d9ee31218eae7a60ccc5643"}, + {file = "pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a7921c5a6d31b3d756ec980f2f47c0cfdbce0fc48c22a39347a895f41f4a6ea4"}, + {file = "pillow-12.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1ee80a59f6ce048ae13cda1abf7fbd2a34ab9ee7d401c46be3ca685d1999a399"}, + {file = "pillow-12.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c50f36a62a22d350c96e49ad02d0da41dbd17ddc2e29750dbdba4323f85eb4a5"}, + {file = "pillow-12.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5193fde9a5f23c331ea26d0cf171fbf67e3f247585f50c08b3e205c7aeb4589b"}, + {file = "pillow-12.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bde737cff1a975b70652b62d626f7785e0480918dece11e8fef3c0cf057351c3"}, + {file = "pillow-12.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6597ff2b61d121172f5844b53f21467f7082f5fb385a9a29c01414463f93b07"}, + {file = "pillow-12.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b817e7035ea7f6b942c13aa03bb554fc44fea70838ea21f8eb31c638326584e"}, + {file = "pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4f1231b7dec408e8670264ce63e9c71409d9583dd21d32c163e25213ee2a344"}, + {file = "pillow-12.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e51b71417049ad6ab14c49608b4a24d8fb3fe605e5dfabfe523b58064dc3d27"}, + {file = "pillow-12.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d120c38a42c234dc9a8c5de7ceaaf899cf33561956acb4941653f8bdc657aa79"}, + {file = "pillow-12.0.0-cp313-cp313-win32.whl", hash = "sha256:4cc6b3b2efff105c6a1656cfe59da4fdde2cda9af1c5e0b58529b24525d0a098"}, + {file = "pillow-12.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:4cf7fed4b4580601c4345ceb5d4cbf5a980d030fd5ad07c4d2ec589f95f09905"}, + {file = "pillow-12.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:9f0b04c6b8584c2c193babcccc908b38ed29524b29dd464bc8801bf10d746a3a"}, + {file = "pillow-12.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7fa22993bac7b77b78cae22bad1e2a987ddf0d9015c63358032f84a53f23cdc3"}, + {file = "pillow-12.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f135c702ac42262573fe9714dfe99c944b4ba307af5eb507abef1667e2cbbced"}, + {file = "pillow-12.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c85de1136429c524e55cfa4e033b4a7940ac5c8ee4d9401cc2d1bf48154bbc7b"}, + {file = "pillow-12.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38df9b4bfd3db902c9c2bd369bcacaf9d935b2fff73709429d95cc41554f7b3d"}, + {file = "pillow-12.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d87ef5795da03d742bf49439f9ca4d027cde49c82c5371ba52464aee266699a"}, + {file = "pillow-12.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aff9e4d82d082ff9513bdd6acd4f5bd359f5b2c870907d2b0a9c5e10d40c88fe"}, + {file = "pillow-12.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d8ca2b210ada074d57fcee40c30446c9562e542fc46aedc19baf758a93532ee"}, + {file = "pillow-12.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:99a7f72fb6249302aa62245680754862a44179b545ded638cf1fef59befb57ef"}, + {file = "pillow-12.0.0-cp313-cp313t-win32.whl", hash = "sha256:4078242472387600b2ce8d93ade8899c12bf33fa89e55ec89fe126e9d6d5d9e9"}, + {file = "pillow-12.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2c54c1a783d6d60595d3514f0efe9b37c8808746a66920315bfd34a938d7994b"}, + {file = "pillow-12.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:26d9f7d2b604cd23aba3e9faf795787456ac25634d82cd060556998e39c6fa47"}, + {file = "pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:beeae3f27f62308f1ddbcfb0690bf44b10732f2ef43758f169d5e9303165d3f9"}, + {file = "pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d4827615da15cd59784ce39d3388275ec093ae3ee8d7f0c089b76fa87af756c2"}, + {file = "pillow-12.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:3e42edad50b6909089750e65c91aa09aaf1e0a71310d383f11321b27c224ed8a"}, + {file = "pillow-12.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e5d8efac84c9afcb40914ab49ba063d94f5dbdf5066db4482c66a992f47a3a3b"}, + {file = "pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:266cd5f2b63ff316d5a1bba46268e603c9caf5606d44f38c2873c380950576ad"}, + {file = "pillow-12.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58eea5ebe51504057dd95c5b77d21700b77615ab0243d8152793dc00eb4faf01"}, + {file = "pillow-12.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f13711b1a5ba512d647a0e4ba79280d3a9a045aaf7e0cc6fbe96b91d4cdf6b0c"}, + {file = "pillow-12.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6846bd2d116ff42cba6b646edf5bf61d37e5cbd256425fa089fee4ff5c07a99e"}, + {file = "pillow-12.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c98fa880d695de164b4135a52fd2e9cd7b7c90a9d8ac5e9e443a24a95ef9248e"}, + {file = "pillow-12.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa3ed2a29a9e9d2d488b4da81dcb54720ac3104a20bf0bd273f1e4648aff5af9"}, + {file = "pillow-12.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d034140032870024e6b9892c692fe2968493790dd57208b2c37e3fb35f6df3ab"}, + {file = "pillow-12.0.0-cp314-cp314-win32.whl", hash = "sha256:1b1b133e6e16105f524a8dec491e0586d072948ce15c9b914e41cdadd209052b"}, + {file = "pillow-12.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:8dc232e39d409036af549c86f24aed8273a40ffa459981146829a324e0848b4b"}, + {file = "pillow-12.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:d52610d51e265a51518692045e372a4c363056130d922a7351429ac9f27e70b0"}, + {file = "pillow-12.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1979f4566bb96c1e50a62d9831e2ea2d1211761e5662afc545fa766f996632f6"}, + {file = "pillow-12.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2e4b27a6e15b04832fe9bf292b94b5ca156016bbc1ea9c2c20098a0320d6cf6"}, + {file = "pillow-12.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb3096c30df99fd01c7bf8e544f392103d0795b9f98ba71a8054bcbf56b255f1"}, + {file = "pillow-12.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7438839e9e053ef79f7112c881cef684013855016f928b168b81ed5835f3e75e"}, + {file = "pillow-12.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d5c411a8eaa2299322b647cd932586b1427367fd3184ffbb8f7a219ea2041ca"}, + {file = "pillow-12.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e091d464ac59d2c7ad8e7e08105eaf9dafbc3883fd7265ffccc2baad6ac925"}, + {file = "pillow-12.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:792a2c0be4dcc18af9d4a2dfd8a11a17d5e25274a1062b0ec1c2d79c76f3e7f8"}, + {file = "pillow-12.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:afbefa430092f71a9593a99ab6a4e7538bc9eabbf7bf94f91510d3503943edc4"}, + {file = "pillow-12.0.0-cp314-cp314t-win32.whl", hash = "sha256:3830c769decf88f1289680a59d4f4c46c72573446352e2befec9a8512104fa52"}, + {file = "pillow-12.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:905b0365b210c73afb0ebe9101a32572152dfd1c144c7e28968a331b9217b94a"}, + {file = "pillow-12.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:99353a06902c2e43b43e8ff74ee65a7d90307d82370604746738a1e0661ccca7"}, + {file = "pillow-12.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b22bd8c974942477156be55a768f7aa37c46904c175be4e158b6a86e3a6b7ca8"}, + {file = "pillow-12.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:805ebf596939e48dbb2e4922a1d3852cfc25c38160751ce02da93058b48d252a"}, + {file = "pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cae81479f77420d217def5f54b5b9d279804d17e982e0f2fa19b1d1e14ab5197"}, + {file = "pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aeaefa96c768fc66818730b952a862235d68825c178f1b3ffd4efd7ad2edcb7c"}, + {file = "pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f2d0abef9e4e2f349305a4f8cc784a8a6c2f58a8c4892eea13b10a943bd26e"}, + {file = "pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdee52571a343d721fb2eb3b090a82d959ff37fc631e3f70422e0c2e029f3e76"}, + {file = "pillow-12.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:b290fd8aa38422444d4b50d579de197557f182ef1068b75f5aa8558638b8d0a5"}, + {file = "pillow-12.0.0.tar.gz", hash = "sha256:87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353"}, ] [package.extras] @@ -3539,137 +3342,6 @@ wcwidth = "*" [package.extras] tests = ["pytest", "pytest-cov", "pytest-lazy-fixtures"] -[[package]] -name = "propcache" -version = "0.5.2" -description = "Accelerated property cache" -optional = false -python-versions = ">=3.10" -groups = ["main"] -files = [ - {file = "propcache-0.5.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b"}, - {file = "propcache-0.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c"}, - {file = "propcache-0.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb"}, - {file = "propcache-0.5.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e"}, - {file = "propcache-0.5.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e"}, - {file = "propcache-0.5.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b"}, - {file = "propcache-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d"}, - {file = "propcache-0.5.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d"}, - {file = "propcache-0.5.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0"}, - {file = "propcache-0.5.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b"}, - {file = "propcache-0.5.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf"}, - {file = "propcache-0.5.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf"}, - {file = "propcache-0.5.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e"}, - {file = "propcache-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274"}, - {file = "propcache-0.5.2-cp310-cp310-win32.whl", hash = "sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe"}, - {file = "propcache-0.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d"}, - {file = "propcache-0.5.2-cp310-cp310-win_arm64.whl", hash = "sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5"}, - {file = "propcache-0.5.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78"}, - {file = "propcache-0.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959"}, - {file = "propcache-0.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7"}, - {file = "propcache-0.5.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511"}, - {file = "propcache-0.5.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660"}, - {file = "propcache-0.5.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66"}, - {file = "propcache-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b"}, - {file = "propcache-0.5.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67"}, - {file = "propcache-0.5.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f"}, - {file = "propcache-0.5.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c"}, - {file = "propcache-0.5.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0"}, - {file = "propcache-0.5.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6"}, - {file = "propcache-0.5.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27"}, - {file = "propcache-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f"}, - {file = "propcache-0.5.2-cp311-cp311-win32.whl", hash = "sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0"}, - {file = "propcache-0.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82"}, - {file = "propcache-0.5.2-cp311-cp311-win_arm64.whl", hash = "sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab"}, - {file = "propcache-0.5.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba"}, - {file = "propcache-0.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a"}, - {file = "propcache-0.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf"}, - {file = "propcache-0.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144"}, - {file = "propcache-0.5.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9"}, - {file = "propcache-0.5.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42"}, - {file = "propcache-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476"}, - {file = "propcache-0.5.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba"}, - {file = "propcache-0.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a"}, - {file = "propcache-0.5.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64"}, - {file = "propcache-0.5.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913"}, - {file = "propcache-0.5.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1"}, - {file = "propcache-0.5.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33"}, - {file = "propcache-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a"}, - {file = "propcache-0.5.2-cp312-cp312-win32.whl", hash = "sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031"}, - {file = "propcache-0.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42"}, - {file = "propcache-0.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84"}, - {file = "propcache-0.5.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a"}, - {file = "propcache-0.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117"}, - {file = "propcache-0.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098"}, - {file = "propcache-0.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4"}, - {file = "propcache-0.5.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e"}, - {file = "propcache-0.5.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7"}, - {file = "propcache-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d"}, - {file = "propcache-0.5.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a"}, - {file = "propcache-0.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2"}, - {file = "propcache-0.5.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa"}, - {file = "propcache-0.5.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853"}, - {file = "propcache-0.5.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a"}, - {file = "propcache-0.5.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704"}, - {file = "propcache-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4"}, - {file = "propcache-0.5.2-cp313-cp313-win32.whl", hash = "sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d"}, - {file = "propcache-0.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757"}, - {file = "propcache-0.5.2-cp313-cp313-win_arm64.whl", hash = "sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f"}, - {file = "propcache-0.5.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d"}, - {file = "propcache-0.5.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa"}, - {file = "propcache-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94"}, - {file = "propcache-0.5.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164"}, - {file = "propcache-0.5.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f"}, - {file = "propcache-0.5.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c"}, - {file = "propcache-0.5.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc"}, - {file = "propcache-0.5.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f"}, - {file = "propcache-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb"}, - {file = "propcache-0.5.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751"}, - {file = "propcache-0.5.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836"}, - {file = "propcache-0.5.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f"}, - {file = "propcache-0.5.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55"}, - {file = "propcache-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568"}, - {file = "propcache-0.5.2-cp313-cp313t-win32.whl", hash = "sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191"}, - {file = "propcache-0.5.2-cp313-cp313t-win_amd64.whl", hash = "sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7"}, - {file = "propcache-0.5.2-cp313-cp313t-win_arm64.whl", hash = "sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96"}, - {file = "propcache-0.5.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999"}, - {file = "propcache-0.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e"}, - {file = "propcache-0.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539"}, - {file = "propcache-0.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e"}, - {file = "propcache-0.5.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979"}, - {file = "propcache-0.5.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80"}, - {file = "propcache-0.5.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825"}, - {file = "propcache-0.5.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39"}, - {file = "propcache-0.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4"}, - {file = "propcache-0.5.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5"}, - {file = "propcache-0.5.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702"}, - {file = "propcache-0.5.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3"}, - {file = "propcache-0.5.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5"}, - {file = "propcache-0.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4"}, - {file = "propcache-0.5.2-cp314-cp314-win32.whl", hash = "sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0"}, - {file = "propcache-0.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c"}, - {file = "propcache-0.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0"}, - {file = "propcache-0.5.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb"}, - {file = "propcache-0.5.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078"}, - {file = "propcache-0.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa"}, - {file = "propcache-0.5.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917"}, - {file = "propcache-0.5.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe"}, - {file = "propcache-0.5.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03"}, - {file = "propcache-0.5.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335"}, - {file = "propcache-0.5.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285"}, - {file = "propcache-0.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837"}, - {file = "propcache-0.5.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8"}, - {file = "propcache-0.5.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366"}, - {file = "propcache-0.5.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56"}, - {file = "propcache-0.5.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d"}, - {file = "propcache-0.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2"}, - {file = "propcache-0.5.2-cp314-cp314t-win32.whl", hash = "sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821"}, - {file = "propcache-0.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370"}, - {file = "propcache-0.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6"}, - {file = "propcache-0.5.2-py3-none-any.whl", hash = "sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe"}, - {file = "propcache-0.5.2.tar.gz", hash = "sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427"}, -] - [[package]] name = "protobuf" version = "6.33.1" @@ -3983,14 +3655,14 @@ typing-extensions = ">=4.14.1" [[package]] name = "pygments" -version = "2.20.0" +version = "2.19.2" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, - {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, + {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, + {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, ] [package.extras] @@ -4011,16 +3683,76 @@ files = [ [package.extras] diagrams = ["jinja2", "railroad-diagrams"] +[[package]] +name = "pyre-extensions" +version = "0.0.32" +description = "Type system extensions for use with the pyre type checker" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "pyre_extensions-0.0.32-py3-none-any.whl", hash = "sha256:a63ba6883ab02f4b1a9f372ed4eb4a2f4c6f3d74879aa2725186fdfcfe3e5c68"}, + {file = "pyre_extensions-0.0.32.tar.gz", hash = "sha256:5396715f14ea56c4d5fd0a88c57ca7e44faa468f905909edd7de4ad90ed85e55"}, +] + +[package.dependencies] +typing-extensions = "*" +typing-inspect = "*" + +[[package]] +name = "pyro-api" +version = "0.1.2" +description = "Generic API for dispatch to Pyro backends." +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "pyro-api-0.1.2.tar.gz", hash = "sha256:a1b900d9580aa1c2fab3b123ab7ff33413744da7c5f440bd4aadc4d40d14d920"}, + {file = "pyro_api-0.1.2-py3-none-any.whl", hash = "sha256:10e0e42e9e4401ce464dab79c870e50dfb4f413d326fa777f3582928ef9caf8f"}, +] + +[package.extras] +dev = ["ipython", "sphinx (>=2.0)", "sphinx-rtd-theme"] +test = ["flake8", "pytest (>=5.0)"] + +[[package]] +name = "pyro-ppl" +version = "1.9.1" +description = "A Python library for probabilistic modeling and inference" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "pyro_ppl-1.9.1-py3-none-any.whl", hash = "sha256:91fb2c8740d9d3bd548180ac5ecfa04552ed8c471a1ab66870180663b8f09852"}, + {file = "pyro_ppl-1.9.1.tar.gz", hash = "sha256:5e1596de276c038a3f77d2580a90d0a97126e0104900444a088eee620bb0d65e"}, +] + +[package.dependencies] +numpy = ">=1.7" +opt-einsum = ">=2.3.2" +pyro-api = ">=0.1.1" +torch = ">=2.0" +tqdm = ">=4.36" + +[package.extras] +dev = ["black (>=21.4b0)", "graphviz (>=0.8)", "ipywidgets", "matplotlib (>=1.3)", "mypy (>=0.812)", "nbformat", "nbsphinx (>=0.3.2)", "nbstripout", "nbval", "ninja", "notebook", "pandas", "pillow (>=8.3.1)", "pypandoc", "pytest (>=5.0)", "pytest-xdist", "ruff", "scikit-learn", "scipy (>=1.1)", "seaborn (>=0.11.0)", "sphinx", "sphinx-rtd-theme", "torchvision (>=0.15.0)", "visdom (>=0.1.4,<0.2.2)", "wget", "yapf"] +extras = ["graphviz (>=0.8)", "ipywidgets", "matplotlib (>=1.3)", "notebook", "pandas", "pillow (>=8.3.1)", "scikit-learn", "scipy (>=1.1)", "seaborn (>=0.11.0)", "torchvision (>=0.15.0)", "visdom (>=0.1.4,<0.2.2)", "wget"] +funsor = ["funsor[torch] (==0.4.4)"] +horovod = ["horovod[pytorch] (>=0.19)"] +lightning = ["lightning"] +profile = ["prettytable", "pytest-benchmark", "snakeviz"] +test = ["black (>=21.4b0)", "graphviz (>=0.8)", "ipywidgets", "matplotlib (>=1.3)", "nbval", "notebook", "pandas", "pillow (>=8.3.1)", "pytest (>=5.0)", "pytest-cov", "pytest-xdist", "ruff", "scikit-learn", "scipy (>=1.1)", "seaborn (>=0.11.0)", "torchvision (>=0.15.0)", "visdom (>=0.1.4,<0.2.2)", "wget"] + [[package]] name = "pytest" -version = "9.0.3" +version = "9.0.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9"}, - {file = "pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c"}, + {file = "pytest-9.0.1-py3-none-any.whl", hash = "sha256:67be0030d194df2dfa7b556f2e56fb3c3315bd5c8822c6951162b92b32ce7dad"}, + {file = "pytest-9.0.1.tar.gz", hash = "sha256:3e9c069ea73583e255c3b21cf46b8d3c56f6e3a1a8f6da94ccb0fcf57b9d73c8"}, ] [package.dependencies] @@ -4070,14 +3802,14 @@ six = ">=1.5" [[package]] name = "python-dotenv" -version = "1.2.2" +version = "1.2.1" description = "Read key-value pairs from a .env file and set them as environment variables" optional = false -python-versions = ">=3.10" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a"}, - {file = "python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3"}, + {file = "python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61"}, + {file = "python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6"}, ] [package.extras] @@ -4351,25 +4083,25 @@ files = [ [[package]] name = "requests" -version = "2.34.0" +version = "2.32.5" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.10" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "requests-2.34.0-py3-none-any.whl", hash = "sha256:917520a21b767485ce7c588f4ebb917c436b24a31231b44228715eaeb5a52c60"}, - {file = "requests-2.34.0.tar.gz", hash = "sha256:7d62fe92f50eb82c529b0916bb445afa1531a566fc8f35ffdc64446e771b856a"}, + {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, + {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, ] [package.dependencies] -certifi = ">=2023.5.7" +certifi = ">=2017.4.17" charset_normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.26,<3" +urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<8)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "rich" @@ -5239,14 +4971,14 @@ telegram = ["requests"] [[package]] name = "transformers" -version = "5.8.1" +version = "5.12.1" description = "Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training." optional = false python-versions = ">=3.10.0" groups = ["main"] files = [ - {file = "transformers-5.8.1-py3-none-any.whl", hash = "sha256:5340fb95962162cdfdae5cc91d7f8fedd92ed75216c1154c5e1f590fcf56dd0e"}, - {file = "transformers-5.8.1.tar.gz", hash = "sha256:4dd5b6de4105725104d84fd6abd74b305f4debfc251b38c648ee5dd087cf543b"}, + {file = "transformers-5.12.1-py3-none-any.whl", hash = "sha256:2a5e109d2021265df7098ffbb738295acaf5ad256f12cbc586db2ea4dcbb1a8a"}, + {file = "transformers-5.12.1.tar.gz", hash = "sha256:679ee731c8225347889ad4fb3b2c926a62e9da3b7d284e9d12c791da7272466b"}, ] [package.dependencies] @@ -5257,7 +4989,7 @@ pyyaml = ">=5.1" regex = ">=2025.10.22" safetensors = ">=0.4.3" tokenizers = ">=0.22.0,<=0.23.0" -tqdm = ">=4.27" +tqdm = ">=4.60" typer = "*" [package.extras] @@ -5276,7 +5008,6 @@ ja = ["fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "rhoknp (>=1.1.0,<1.3.1)", "su kernels = ["kernels (>=0.12.0,<0.13)"] mistral-common = ["mistral-common[image] (>=1.10.0)"] num2words = ["num2words"] -open-telemetry = ["opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk"] optuna = ["optuna"] quality = ["GitPython (<3.1.19)", "datasets (>=2.15.0)", "libcst", "rich", "ruff (==0.14.10)", "tomli", "transformers-mlinter (==0.1.1)", "ty (==0.0.20)", "urllib3 (<2.0.0)"] ray = ["ray[tune] (>=2.7.0)"] @@ -5352,6 +5083,18 @@ files = [ {file = "types_pytz-2025.2.0.20251108.tar.gz", hash = "sha256:fca87917836ae843f07129567b74c1929f1870610681b4c92cb86a3df5817bdb"}, ] +[[package]] +name = "types-pyyaml" +version = "6.0.12.20250915" +description = "Typing stubs for PyYAML" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "types_pyyaml-6.0.12.20250915-py3-none-any.whl", hash = "sha256:e7d4d9e064e89a3b3cae120b4990cd370874d2bf12fa5f46c97018dd5d3c9ab6"}, + {file = "types_pyyaml-6.0.12.20250915.tar.gz", hash = "sha256:0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3"}, +] + [[package]] name = "types-requests" version = "2.32.4.20250913" @@ -5533,21 +5276,21 @@ files = [ [[package]] name = "urllib3" -version = "2.7.0" +version = "2.5.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.10" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897"}, - {file = "urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c"}, + {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, + {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, ] [package.extras] -brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "uuid6" @@ -5652,6 +5395,22 @@ dev = ["Cython (>=3.0,<4.0)", "setuptools (>=60)"] docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx_rtd_theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] test = ["aiohttp (>=3.10.5)", "flake8 (>=6.1,<7.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=25.3.0,<25.4.0)", "pycodestyle (>=2.11.0,<2.12.0)"] +[[package]] +name = "wadler-lindig" +version = "0.1.7" +description = "A Wadler–Lindig pretty-printer for Python." +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "wadler_lindig-0.1.7-py3-none-any.whl", hash = "sha256:e3ec83835570fd0a9509f969162aeb9c65618f998b1f42918cfc8d45122fe953"}, + {file = "wadler_lindig-0.1.7.tar.gz", hash = "sha256:81d14d3fe77d441acf3ebd7f4aefac20c74128bf460e84b512806dccf7b2cd55"}, +] + +[package.extras] +dev = ["numpy", "pre-commit", "pytest"] +docs = ["hippogriffe (==0.1.0)", "mkdocs (==1.6.1)", "mkdocs-include-exclude-files (==0.1.0)", "mkdocs-ipynb (==0.1.0)", "mkdocs-material (==9.6.7)", "mkdocstrings[python] (==0.28.3)", "pymdown-extensions (==10.14.3)"] + [[package]] name = "waitress" version = "3.0.2" @@ -5988,149 +5747,6 @@ markupsafe = ">=2.1.1" [package.extras] watchdog = ["watchdog (>=2.3)"] -[[package]] -name = "yarl" -version = "1.23.0" -description = "Yet another URL library" -optional = false -python-versions = ">=3.10" -groups = ["main"] -files = [ - {file = "yarl-1.23.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cff6d44cb13d39db2663a22b22305d10855efa0fa8015ddeacc40bc59b9d8107"}, - {file = "yarl-1.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c53f8347cd4200f0d70a48ad059cabaf24f5adc6ba08622a23423bc7efa10d"}, - {file = "yarl-1.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a6940a074fb3c48356ed0158a3ca5699c955ee4185b4d7d619be3c327143e05"}, - {file = "yarl-1.23.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ed5f69ce7be7902e5c70ea19eb72d20abf7d725ab5d49777d696e32d4fc1811d"}, - {file = "yarl-1.23.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:389871e65468400d6283c0308e791a640b5ab5c83bcee02a2f51295f95e09748"}, - {file = "yarl-1.23.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dda608c88cf709b1d406bdfcd84d8d63cff7c9e577a403c6108ce8ce9dcc8764"}, - {file = "yarl-1.23.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8c4fe09e0780c6c3bf2b7d4af02ee2394439d11a523bbcf095cf4747c2932007"}, - {file = "yarl-1.23.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:31c9921eb8bd12633b41ad27686bbb0b1a2a9b8452bfdf221e34f311e9942ed4"}, - {file = "yarl-1.23.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5f10fd85e4b75967468af655228fbfd212bdf66db1c0d135065ce288982eda26"}, - {file = "yarl-1.23.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dbf507e9ef5688bada447a24d68b4b58dd389ba93b7afc065a2ba892bea54769"}, - {file = "yarl-1.23.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:85e9beda1f591bc73e77ea1c51965c68e98dafd0fec72cdd745f77d727466716"}, - {file = "yarl-1.23.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0e1fdaa14ef51366d7757b45bde294e95f6c8c049194e793eedb8387c86d5993"}, - {file = "yarl-1.23.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:75e3026ab649bf48f9a10c0134512638725b521340293f202a69b567518d94e0"}, - {file = "yarl-1.23.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:80e6d33a3d42a7549b409f199857b4fb54e2103fc44fb87605b6663b7a7ff750"}, - {file = "yarl-1.23.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5ec2f42d41ccbd5df0270d7df31618a8ee267bfa50997f5d720ddba86c4a83a6"}, - {file = "yarl-1.23.0-cp310-cp310-win32.whl", hash = "sha256:debe9c4f41c32990771be5c22b56f810659f9ddf3d63f67abfdcaa2c6c9c5c1d"}, - {file = "yarl-1.23.0-cp310-cp310-win_amd64.whl", hash = "sha256:ab5f043cb8a2d71c981c09c510da013bc79fd661f5c60139f00dd3c3cc4f2ffb"}, - {file = "yarl-1.23.0-cp310-cp310-win_arm64.whl", hash = "sha256:263cd4f47159c09b8b685890af949195b51d1aa82ba451c5847ca9bc6413c220"}, - {file = "yarl-1.23.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99"}, - {file = "yarl-1.23.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c"}, - {file = "yarl-1.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432"}, - {file = "yarl-1.23.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a"}, - {file = "yarl-1.23.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05"}, - {file = "yarl-1.23.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83"}, - {file = "yarl-1.23.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c"}, - {file = "yarl-1.23.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598"}, - {file = "yarl-1.23.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b"}, - {file = "yarl-1.23.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c"}, - {file = "yarl-1.23.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788"}, - {file = "yarl-1.23.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222"}, - {file = "yarl-1.23.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb"}, - {file = "yarl-1.23.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc"}, - {file = "yarl-1.23.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2"}, - {file = "yarl-1.23.0-cp311-cp311-win32.whl", hash = "sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5"}, - {file = "yarl-1.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46"}, - {file = "yarl-1.23.0-cp311-cp311-win_arm64.whl", hash = "sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928"}, - {file = "yarl-1.23.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860"}, - {file = "yarl-1.23.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069"}, - {file = "yarl-1.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25"}, - {file = "yarl-1.23.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8"}, - {file = "yarl-1.23.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072"}, - {file = "yarl-1.23.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8"}, - {file = "yarl-1.23.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7"}, - {file = "yarl-1.23.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51"}, - {file = "yarl-1.23.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67"}, - {file = "yarl-1.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7"}, - {file = "yarl-1.23.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d"}, - {file = "yarl-1.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760"}, - {file = "yarl-1.23.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2"}, - {file = "yarl-1.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86"}, - {file = "yarl-1.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34"}, - {file = "yarl-1.23.0-cp312-cp312-win32.whl", hash = "sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d"}, - {file = "yarl-1.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e"}, - {file = "yarl-1.23.0-cp312-cp312-win_arm64.whl", hash = "sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9"}, - {file = "yarl-1.23.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e"}, - {file = "yarl-1.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5"}, - {file = "yarl-1.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b"}, - {file = "yarl-1.23.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035"}, - {file = "yarl-1.23.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5"}, - {file = "yarl-1.23.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735"}, - {file = "yarl-1.23.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401"}, - {file = "yarl-1.23.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4"}, - {file = "yarl-1.23.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f"}, - {file = "yarl-1.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a"}, - {file = "yarl-1.23.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2"}, - {file = "yarl-1.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f"}, - {file = "yarl-1.23.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b"}, - {file = "yarl-1.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a"}, - {file = "yarl-1.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543"}, - {file = "yarl-1.23.0-cp313-cp313-win32.whl", hash = "sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957"}, - {file = "yarl-1.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3"}, - {file = "yarl-1.23.0-cp313-cp313-win_arm64.whl", hash = "sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3"}, - {file = "yarl-1.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa"}, - {file = "yarl-1.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120"}, - {file = "yarl-1.23.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59"}, - {file = "yarl-1.23.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512"}, - {file = "yarl-1.23.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4"}, - {file = "yarl-1.23.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1"}, - {file = "yarl-1.23.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea"}, - {file = "yarl-1.23.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9"}, - {file = "yarl-1.23.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123"}, - {file = "yarl-1.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24"}, - {file = "yarl-1.23.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de"}, - {file = "yarl-1.23.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b"}, - {file = "yarl-1.23.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6"}, - {file = "yarl-1.23.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6"}, - {file = "yarl-1.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5"}, - {file = "yarl-1.23.0-cp313-cp313t-win32.whl", hash = "sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595"}, - {file = "yarl-1.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090"}, - {file = "yarl-1.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144"}, - {file = "yarl-1.23.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912"}, - {file = "yarl-1.23.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474"}, - {file = "yarl-1.23.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719"}, - {file = "yarl-1.23.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319"}, - {file = "yarl-1.23.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434"}, - {file = "yarl-1.23.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723"}, - {file = "yarl-1.23.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039"}, - {file = "yarl-1.23.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52"}, - {file = "yarl-1.23.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c"}, - {file = "yarl-1.23.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae"}, - {file = "yarl-1.23.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e"}, - {file = "yarl-1.23.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85"}, - {file = "yarl-1.23.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd"}, - {file = "yarl-1.23.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6"}, - {file = "yarl-1.23.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe"}, - {file = "yarl-1.23.0-cp314-cp314-win32.whl", hash = "sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169"}, - {file = "yarl-1.23.0-cp314-cp314-win_amd64.whl", hash = "sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70"}, - {file = "yarl-1.23.0-cp314-cp314-win_arm64.whl", hash = "sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e"}, - {file = "yarl-1.23.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679"}, - {file = "yarl-1.23.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412"}, - {file = "yarl-1.23.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4"}, - {file = "yarl-1.23.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c"}, - {file = "yarl-1.23.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4"}, - {file = "yarl-1.23.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94"}, - {file = "yarl-1.23.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28"}, - {file = "yarl-1.23.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6"}, - {file = "yarl-1.23.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277"}, - {file = "yarl-1.23.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4"}, - {file = "yarl-1.23.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a"}, - {file = "yarl-1.23.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb"}, - {file = "yarl-1.23.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41"}, - {file = "yarl-1.23.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2"}, - {file = "yarl-1.23.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4"}, - {file = "yarl-1.23.0-cp314-cp314t-win32.whl", hash = "sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4"}, - {file = "yarl-1.23.0-cp314-cp314t-win_amd64.whl", hash = "sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2"}, - {file = "yarl-1.23.0-cp314-cp314t-win_arm64.whl", hash = "sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25"}, - {file = "yarl-1.23.0-py3-none-any.whl", hash = "sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f"}, - {file = "yarl-1.23.0.tar.gz", hash = "sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -propcache = ">=0.2.1" - [[package]] name = "zipp" version = "3.23.0" @@ -6154,4 +5770,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = ">=3.13,<3.14" -content-hash = "98a4b09d08bfbd332266d02866b7ffdf266b0ec01736902c169cc80cca046fcb" +content-hash = "91c6cfdb6efa69fd7c9385f775386f15374d66cc2638240331173f8dcf8a79d7" diff --git a/pyproject.toml b/pyproject.toml index bd8de23..8e444bb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,9 @@ dependencies = [ "transformers (>=5.0.0)", "river (>=0.21.0,<0.24.0)", "evidently (>=0.4.0,<0.8.0)", - "matplotlib (>=3.10.7,<4.0.0)" + "matplotlib (>=3.10.7,<4.0.0)", + "types-pyyaml (>=6.0.12.20250915,<7.0.0.0)", + "botorch" ] [dependency-groups] diff --git a/src/apeiron/config/configuration.py b/src/apeiron/config/configuration.py index e79a566..0e5464b 100644 --- a/src/apeiron/config/configuration.py +++ b/src/apeiron/config/configuration.py @@ -90,6 +90,7 @@ class ModelCfg: # FIFO checkpointing: 0 disables, N keeps last N post-CL snapshots max_ckpts: int = 0 ckpts_path: str = "" + config_path: str = "" @dataclass(frozen=True)