diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8c8f455..0cedb2f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: - id: mixed-line-ending - id: check-case-conflict - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.14.9 # must match uv.lock + rev: v0.14.14 # must match uv.lock hooks: - id: ruff-check - id: ruff-format diff --git a/pyproject.toml b/pyproject.toml index faee58b..e18a29d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,10 +25,10 @@ tests = [ "types-networkx>=3.4.2", ] dev = [ - "ruff>=0.9.2", + "ruff>=0.14.14", "pytest>=8.0", "rich-argparse>=1.6.0", - "mypy>=1.14.1", + "mypy>=1.19.1", "pyright>=1.1.392", { include-group = "tests" }, ] diff --git a/stubs/pandapower-stubs/auxiliary.pyi b/stubs/pandapower-stubs/auxiliary.pyi index 5893f08..6e06399 100644 --- a/stubs/pandapower-stubs/auxiliary.pyi +++ b/stubs/pandapower-stubs/auxiliary.pyi @@ -1,7 +1,6 @@ import logging from collections.abc import Iterable, Mapping, MutableMapping from typing import Any, Final, Literal, NoReturn, Self, overload -from typing_extensions import deprecated import geopandas as gpd import numpy as np @@ -124,8 +123,6 @@ class pandapowerNet(ADict[pd.DataFrame]): res_protection: pd.DataFrame # Optional? @classmethod def create_dataframes(cls, data): ... - @deprecated("Use copy.deepcopy(net) instead of net.deepcopy()") - def deepcopy(self) -> Self: ... class GeoAccessor: def __init__(self, pandas_obj) -> None: ... diff --git a/stubs/pandapower-stubs/control/controller/station_control.pyi b/stubs/pandapower-stubs/control/controller/station_control.pyi index 846e2bc..572e01a 100644 --- a/stubs/pandapower-stubs/control/controller/station_control.pyi +++ b/stubs/pandapower-stubs/control/controller/station_control.pyi @@ -20,7 +20,6 @@ class BinarySearchControl(Controller): voltage_ctrl, name="", input_inverted=[], - gen_Q_response=[], bus_idx=None, tol=0.001, in_service=True, diff --git a/stubs/pandapower-stubs/control/util/auxiliary.pyi b/stubs/pandapower-stubs/control/util/auxiliary.pyi index 3039ab3..d340b3f 100644 --- a/stubs/pandapower-stubs/control/util/auxiliary.pyi +++ b/stubs/pandapower-stubs/control/util/auxiliary.pyi @@ -19,3 +19,4 @@ def create_trafo_characteristic_object(net: pandapowerNet) -> None: ... def _create_trafo_characteristics(net: pandapowerNet, trafotable, trafo_index, variable, x_points, y_points) -> None: ... def create_shunt_characteristic_object(net: pandapowerNet) -> None: ... def create_q_capability_characteristics_object(net: pandapowerNet) -> None: ... +def get_min_max_q_mvar_from_characteristics_object(net: pandapowerNet, element: str, element_index): ... diff --git a/stubs/pandapower-stubs/convert_format.pyi b/stubs/pandapower-stubs/convert_format.pyi index 1be278d..593bb65 100644 --- a/stubs/pandapower-stubs/convert_format.pyi +++ b/stubs/pandapower-stubs/convert_format.pyi @@ -2,6 +2,8 @@ from collections.abc import Container from pandapower.auxiliary import pandapowerNet -def convert_format(net: pandapowerNet, elements_to_deserialize: Container[str] | None = None) -> pandapowerNet: ... +def convert_format( + net: pandapowerNet, elements_to_deserialize: Container[str] | None = None, drop_invalid_geodata: bool = False +) -> pandapowerNet: ... def correct_dtypes(net: pandapowerNet, error: bool) -> None: ... def convert_trafo_pst_logic(net: pandapowerNet) -> None: ... diff --git a/stubs/pandapower-stubs/create.pyi b/stubs/pandapower-stubs/create.pyi deleted file mode 100644 index 3ef8222..0000000 --- a/stubs/pandapower-stubs/create.pyi +++ /dev/null @@ -1,1136 +0,0 @@ -from collections.abc import Collection, Mapping -from typing import Any, Literal - -import numpy as np -import pandas as pd -from numpy.typing import DTypeLike - -from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector -from pandapower.auxiliary import pandapowerNet - -type _CostElementType = Literal["gen", "sgen", "ext_grid", "load", "dcline", "storage"] -type _SGenGeneratorType = Literal["current_source", "async", "async_doubly_fed"] - -def create_empty_network(name: str = "", f_hz: Float = 50.0, sn_mva: Float = 1, add_stdtypes: Bool = True) -> pandapowerNet: ... -def create_bus( - net: pandapowerNet, - vn_kv: Float, - name: str | None = None, - index: Int | None = None, - geodata: tuple[Float, Float] | None = None, - type: Literal["b", "m", "n"] = "b", - zone: str | None = None, - in_service: Bool = True, - max_vm_pu: Float = ..., - min_vm_pu: Float = ..., - coords: Collection[tuple[Float, Float]] | None = None, - **kwargs, -) -> np.int64: ... -def create_bus_dc( - net: pandapowerNet, - vn_kv: Float, - name: str | None = None, - index: Int | None = None, - geodata: tuple[Float, Float] | None = None, - type: Literal["b", "m", "n"] = "b", - zone: str | None = None, - in_service: Bool | None = True, - max_vm_pu: Float = ..., - min_vm_pu: Float = ..., - coords: Collection[tuple[Float, Float]] | None = None, - **kwargs, -) -> np.int64: ... -def create_buses( - net: pandapowerNet, - nr_buses: Int, - vn_kv: ScalarOrVector[Float], - index: ScalarOrVector[Int] | None = None, - name: ScalarOrVector[str] | None = None, - type: ScalarOrVector[Literal["b", "m", "n"]] = "b", - geodata: ScalarOrVector[tuple[Float, Float]] | None = None, - zone: ScalarOrVector[str] | None = None, - in_service: ScalarOrVector[Bool] = True, - max_vm_pu: ScalarOrVector[Float] = ..., - min_vm_pu: ScalarOrVector[Float] = ..., - coords: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, - **kwargs, -) -> Array1D[np.int64]: ... -def create_buses_dc( - net: pandapowerNet, - nr_buses_dc: Int, - vn_kv: ScalarOrVector[Float], - index: ScalarOrVector[Int] | None = None, - name: ScalarOrVector[str] | None = None, - type: ScalarOrVector[Literal["b", "m", "n"]] = "b", - geodata: ScalarOrVector[tuple[Float, Float]] | None = None, - zone: ScalarOrVector[str] | None = None, - in_service: ScalarOrVector[Bool] = True, - max_vm_pu: ScalarOrVector[Float] = ..., - min_vm_pu: ScalarOrVector[Float] = ..., - coords: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, - **kwargs, -) -> Array1D[np.int64]: ... -def create_load( - net: pandapowerNet, - bus: Int, - p_mw: Float, - q_mvar: Float = 0, - const_z_p_percent: Float = 0, - const_i_p_percent: Float = 0, - const_z_q_percent: Float = 0, - const_i_q_percent: Float = 0, - sn_mva: Float = ..., - name: str | None = None, - scaling: Float = 1.0, - index: Int | None = None, - in_service: Bool = True, - type: Literal["wye", "delta"] = "wye", - max_p_mw: Float = ..., - min_p_mw: Float = ..., - max_q_mvar: Float = ..., - min_q_mvar: Float = ..., - controllable: Bool | float = ..., # float because default value is nan - **kwargs, -) -> np.int64: ... -def create_loads( - net: pandapowerNet, - buses: Collection[Int], - p_mw: ScalarOrVector[Float], - q_mvar: ScalarOrVector[Float] = 0, - const_z_p_percent: ScalarOrVector[Float] = 0, - const_i_p_percent: ScalarOrVector[Float] = 0, - const_z_q_percent: ScalarOrVector[Float] = 0, - const_i_q_percent: ScalarOrVector[Float] = 0, - sn_mva: ScalarOrVector[Float] = ..., - name: ScalarOrVector[str] | None = None, - scaling: ScalarOrVector[Float] = 1.0, - index: Collection[Int] | None = None, - in_service: ScalarOrVector[Bool] = True, - type: ScalarOrVector[Literal["wye", "delta"]] | None = "wye", - max_p_mw: ScalarOrVector[Float] = ..., - min_p_mw: ScalarOrVector[Float] = ..., - max_q_mvar: ScalarOrVector[Float] = ..., - min_q_mvar: ScalarOrVector[Float] = ..., - controllable: ScalarOrVector[Bool] | float = ..., # float because default value is nan - **kwargs, -) -> Array1D[np.int64]: ... -def create_asymmetric_load( - net: pandapowerNet, - bus: Int, - p_a_mw: Float = 0, - p_b_mw: Float = 0, - p_c_mw: Float = 0, - q_a_mvar: Float = 0, - q_b_mvar: Float = 0, - q_c_mvar: Float = 0, - sn_mva: Float = ..., - name: str | None = None, - scaling: Float = 1.0, - index: Int | None = None, - in_service: Bool = True, - type: Literal["wye", "delta"] = "wye", - **kwargs, -) -> np.int64: ... -def create_load_from_cosphi( - net: pandapowerNet, bus: Int, sn_mva: Float, cos_phi: Float, mode: Literal["underexcited", "overexcited"], **kwargs -) -> np.int64: ... -def create_sgen( - net: pandapowerNet, - bus: Int, - p_mw: Float, - q_mvar: Float = 0, - sn_mva: Float = ..., - name: str | None = None, - index: Int | None = None, - scaling: Float = 1.0, - type: Literal["wye", "delta", "motor"] | None = "wye", - in_service: Bool = True, - max_p_mw: Float = ..., - min_p_mw: Float = ..., - max_q_mvar: Float = ..., - min_q_mvar: Float = ..., - controllable: Bool | float = ..., # float because default value is nan - k: Float = ..., - rx: Float = ..., - id_q_capability_characteristic: Int | None = None, - reactive_capability_curve: Bool = False, - curve_style: str | None = None, - current_source: Bool = True, - generator_type: _SGenGeneratorType | None = None, - max_ik_ka: Float = ..., - kappa: Float = ..., - lrc_pu: Float = ..., - **kwargs, -) -> np.int64: ... -def create_sgens( - net: pandapowerNet, - buses: Collection[Int], - p_mw: ScalarOrVector[Float], - q_mvar: ScalarOrVector[Float] = 0, - sn_mva: ScalarOrVector[Float] = ..., - name: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - scaling: ScalarOrVector[Float] = 1.0, - type: ScalarOrVector[Literal["wye", "delta", "motor"]] | None = "wye", - in_service: ScalarOrVector[Bool] = True, - max_p_mw: ScalarOrVector[Float] = ..., - min_p_mw: ScalarOrVector[Float] = ..., - max_q_mvar: ScalarOrVector[Float] = ..., - min_q_mvar: ScalarOrVector[Float] = ..., - controllable: ScalarOrVector[Bool] | float = ..., # float because default value is nan - k: ScalarOrVector[Float] = ..., - rx: ScalarOrVector[Float] = ..., - id_q_capability_characteristic: ScalarOrVector[Int] | None = None, - reactive_capability_curve: ScalarOrVector[Bool] = False, - curve_style: ScalarOrVector[str] | None = None, - current_source: ScalarOrVector[Bool] = True, - generator_type: ScalarOrVector[_SGenGeneratorType] = "current_source", - max_ik_ka: ScalarOrVector[Float] = ..., - kappa: ScalarOrVector[Float] = ..., - lrc_pu: ScalarOrVector[Float] = ..., - **kwargs, -) -> Array1D[np.int64]: ... -def create_asymmetric_sgen( - net: pandapowerNet, - bus: Int, - p_a_mw: Float = 0, - p_b_mw: Float = 0, - p_c_mw: Float = 0, - q_a_mvar: Float = 0, - q_b_mvar: Float = 0, - q_c_mvar: Float = 0, - sn_mva: Float = ..., - name: str | None = None, - index: Int | None = None, - scaling: Float = 1.0, - type: Literal["wye", "delta"] = "wye", - in_service: Bool = True, - **kwargs, -) -> np.int64: ... -def create_sgen_from_cosphi( - net: pandapowerNet, bus: Int, sn_mva: Float, cos_phi: Float, mode: Literal["underexcited", "overexcited"], **kwargs -) -> np.int64: ... -def create_storage( - net: pandapowerNet, - bus: Int, - p_mw: Float, - max_e_mwh: Float, - q_mvar: Float = 0, - sn_mva: Float = ..., - soc_percent: Float = ..., - min_e_mwh: Float = 0.0, - name: str | None = None, - index: Int | None = None, - scaling: Float = 1.0, - type: str | None = None, - in_service: Bool = True, - max_p_mw: Float = ..., - min_p_mw: Float = ..., - max_q_mvar: Float = ..., - min_q_mvar: Float = ..., - controllable: Bool | float = ..., # float because default value is nan - **kwargs, -) -> np.int64: ... -def create_storages( - net: pandapowerNet, - buses: Collection[Int], - p_mw: ScalarOrVector[Float], - max_e_mwh: ScalarOrVector[Float], - q_mvar: ScalarOrVector[Float] = 0, - sn_mva: ScalarOrVector[Float] = ..., - soc_percent: ScalarOrVector[Float] = ..., - min_e_mwh: ScalarOrVector[Float] = 0.0, - name: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - scaling: ScalarOrVector[Float] = 1.0, - type: ScalarOrVector[str] | None = None, - in_service: ScalarOrVector[Bool] = True, - max_p_mw: ScalarOrVector[Float] = ..., - min_p_mw: ScalarOrVector[Float] = ..., - max_q_mvar: ScalarOrVector[Float] = ..., - min_q_mvar: ScalarOrVector[Float] = ..., - controllable: ScalarOrVector[Bool] | float = ..., # float because default value is nan - **kwargs, -) -> Array1D[np.int64]: ... -def create_gen( - net: pandapowerNet, - bus: Int, - p_mw: Float, - vm_pu: Float = 1.0, - sn_mva: Float = ..., - name: str | None = None, - index: Int | None = None, - max_q_mvar: Float = ..., - min_q_mvar: Float = ..., - min_p_mw: Float = ..., - max_p_mw: Float = ..., - min_vm_pu: Float = ..., - max_vm_pu: Float = ..., - scaling: Float = 1.0, - type: str | None = None, - slack: Bool = False, - id_q_capability_characteristic: Int | None = None, - reactive_capability_curve: Bool = False, - curve_style: str | None = None, - controllable: Bool | float = ..., # float because default value is nan - vn_kv: Float = ..., - xdss_pu: Float = ..., - rdss_ohm: Float = ..., - cos_phi: Float = ..., - pg_percent: Float = ..., - power_station_trafo: Int | float = ..., # float because default value is nan - in_service: Bool = True, - slack_weight: Float = 0.0, - **kwargs, -) -> np.int64: ... -def create_gens( - net: pandapowerNet, - buses: Collection[Int], - p_mw: ScalarOrVector[Float], - vm_pu: ScalarOrVector[Float] = 1.0, - sn_mva: ScalarOrVector[Float] = ..., - name: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - max_q_mvar: ScalarOrVector[Float] = ..., - min_q_mvar: ScalarOrVector[Float] = ..., - min_p_mw: ScalarOrVector[Float] = ..., - max_p_mw: ScalarOrVector[Float] = ..., - min_vm_pu: ScalarOrVector[Float] = ..., - max_vm_pu: ScalarOrVector[Float] = ..., - scaling: ScalarOrVector[Float] = 1.0, - type: ScalarOrVector[str] | None = None, - slack: ScalarOrVector[Bool] = False, - id_q_capability_characteristic: ScalarOrVector[Int] | None = None, - reactive_capability_curve: ScalarOrVector[Bool] = False, - curve_style: ScalarOrVector[str] | None = None, - controllable: ScalarOrVector[Bool] | float = ..., # float because default value is nan - vn_kv: ScalarOrVector[Float] = ..., - xdss_pu: ScalarOrVector[Float] = ..., - rdss_ohm: ScalarOrVector[Float] = ..., - cos_phi: ScalarOrVector[Float] = ..., - pg_percent: ScalarOrVector[Float] = ..., - power_station_trafo: ScalarOrVector[Int] | float = ..., # float because default value is nan - in_service: ScalarOrVector[Bool] = True, - slack_weight: ScalarOrVector[Float] = 0.0, - **kwargs, -) -> Array1D[np.int64]: ... -def create_motor( - net: pandapowerNet, - bus: Int, - pn_mech_mw: Float, - cos_phi: Float, - efficiency_percent: Float = 100.0, - loading_percent: Float = 100.0, - name: str | None = None, - lrc_pu: Float = ..., - scaling: Float = 1.0, - vn_kv: Float = ..., - rx: Float = ..., - index: Int | None = None, - in_service: Bool = True, - cos_phi_n: Float = ..., - efficiency_n_percent: Float = ..., - **kwargs, -) -> np.int64: ... -def create_ext_grid( - net: pandapowerNet, - bus: Int, - vm_pu: Float = 1.0, - va_degree: Float = 0.0, - name: str | None = None, - in_service: Bool = True, - s_sc_max_mva: Float = ..., - s_sc_min_mva: Float = ..., - rx_max: Float = ..., - rx_min: Float = ..., - max_p_mw: Float = ..., - min_p_mw: Float = ..., - max_q_mvar: Float = ..., - min_q_mvar: Float = ..., - index: Int | None = None, - r0x0_max: Float = ..., - x0x_max: Float = ..., - controllable: Bool | float = ..., # float because default value is nan - slack_weight: Float = 1.0, - **kwargs, -) -> np.int64: ... -def create_line( - net: pandapowerNet, - from_bus: Int, - to_bus: Int, - length_km: Float, - std_type: str, - name: str | None = None, - index: Int | None = None, - geodata: Collection[tuple[Float, Float]] | None = None, - df: Float = 1.0, - parallel: Int = 1, - in_service: Bool = True, - max_loading_percent: Float = ..., - alpha: Float = ..., - temperature_degree_celsius: Float = ..., - **kwargs, -) -> np.int64: ... -def create_line_dc( - net: pandapowerNet, - from_bus_dc: Int, - to_bus_dc: Int, - length_km: Float, - std_type: str, - name: str | None = None, - index: Int | None = None, - geodata: Collection[tuple[Float, Float]] | None = None, - df: Float = 1.0, - parallel: Int = 1, - in_service: Bool = True, - max_loading_percent: Float = ..., - alpha: Float = ..., - temperature_degree_celsius: Float = ..., - **kwargs, -) -> np.int64: ... -def create_lines( - net: pandapowerNet, - from_buses: Collection[Int], - to_buses: Collection[Int], - length_km: ScalarOrVector[Float], - std_type: ScalarOrVector[str], - name: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - geodata: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, - df: ScalarOrVector[Float] = 1.0, - parallel: ScalarOrVector[Int] = 1, - in_service: ScalarOrVector[Bool] = True, - max_loading_percent: ScalarOrVector[Float] = ..., - **kwargs, -) -> Array1D[np.int64]: ... -def create_lines_dc( - net: pandapowerNet, - from_buses_dc: Collection[Int], - to_buses_dc: Collection[Int], - length_km: ScalarOrVector[Float], - std_type: ScalarOrVector[str], - name: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - geodata: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, - df: ScalarOrVector[Float] = 1.0, - parallel: ScalarOrVector[Int] = 1, - in_service: ScalarOrVector[Bool] = True, - max_loading_percent: ScalarOrVector[Float] = ..., - **kwargs, -) -> Array1D[np.int64]: ... -def create_line_from_parameters( - net: pandapowerNet, - from_bus: Int, - to_bus: Int, - length_km: Float, - r_ohm_per_km: Float, - x_ohm_per_km: Float, - c_nf_per_km: Float, - max_i_ka: Float, - name: str | None = None, - index: Int | None = None, - type: Literal["ol", "cs"] | None = None, - geodata: Collection[tuple[Float, Float]] | None = None, - in_service: Bool = True, - df: Float = 1.0, - parallel: Int = 1, - g_us_per_km: Float = 0.0, - max_loading_percent: Float = ..., - alpha: Float = ..., - temperature_degree_celsius: Float = ..., - r0_ohm_per_km: Float = ..., - x0_ohm_per_km: Float = ..., - c0_nf_per_km: Float = ..., - g0_us_per_km: Float = 0, - endtemp_degree: Float = ..., - **kwargs, -) -> np.int64: ... -def create_line_dc_from_parameters( - net: pandapowerNet, - from_bus_dc: Int, - to_bus_dc: Int, - length_km: Float, - r_ohm_per_km: Float, - max_i_ka: Float, - name: str | None = None, - index: Int | None = None, - type: Literal["ol", "cs"] | None = None, - geodata: Collection[tuple[Float, Float]] | None = None, - in_service: Bool = True, - df: Float = 1.0, - parallel: Int = 1, - max_loading_percent: Float = ..., - alpha: Float = ..., - temperature_degree_celsius: Float = ..., - g_us_per_km: Float = 0.0, - **kwargs, -) -> np.int64: ... -def create_lines_from_parameters( - net: pandapowerNet, - from_buses: Collection[Int], - to_buses: Collection[Int], - length_km: ScalarOrVector[Float], - r_ohm_per_km: ScalarOrVector[Float], - x_ohm_per_km: ScalarOrVector[Float], - c_nf_per_km: ScalarOrVector[Float], - max_i_ka: ScalarOrVector[Float], - name: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - type: ScalarOrVector[Literal["ol", "cs"]] | None = None, - geodata: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, - in_service: ScalarOrVector[Bool] = True, - df: ScalarOrVector[Float] = 1.0, - parallel: ScalarOrVector[Int] = 1, - g_us_per_km: ScalarOrVector[Float] = 0.0, - max_loading_percent: ScalarOrVector[Float] = ..., - alpha: ScalarOrVector[Float] = ..., - temperature_degree_celsius: ScalarOrVector[Float] = ..., - r0_ohm_per_km: ScalarOrVector[Float] = ..., - x0_ohm_per_km: ScalarOrVector[Float] = ..., - c0_nf_per_km: ScalarOrVector[Float] = ..., - g0_us_per_km: ScalarOrVector[Float] = ..., - **kwargs, -) -> Array1D[np.int64]: ... -def create_lines_dc_from_parameters( - net: pandapowerNet, - from_buses_dc: Collection[Int], - to_buses_dc: Collection[Int], - length_km: ScalarOrVector[Float], - r_ohm_per_km: ScalarOrVector[Float], - max_i_ka: ScalarOrVector[Float], - name: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - type: ScalarOrVector[Literal["ol", "cs"]] | None = None, - geodata: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, - in_service: ScalarOrVector[Bool] = True, - df: ScalarOrVector[Float] = 1.0, - parallel: ScalarOrVector[Int] = 1, - g_us_per_km: ScalarOrVector[Float] = 0.0, - max_loading_percent: ScalarOrVector[Float] = ..., - alpha: ScalarOrVector[Float] = ..., - temperature_degree_celsius: ScalarOrVector[Float] = ..., - **kwargs, -) -> Array1D[np.int64]: ... -def create_transformer( - net: pandapowerNet, - hv_bus: Int, - lv_bus: Int, - std_type: str, - name: str | None = None, - tap_pos: Int | float = ..., # float because default value is nan - in_service: Bool = True, - index: Int | None = None, - max_loading_percent: Float = ..., - parallel: Int = 1, - df: Float = 1.0, - tap_changer_type: Literal["Ratio", "Symmetrical", "Ideal", "Tabular"] | None = None, - tap_dependency_table: Bool = False, - id_characteristic_table: Int | None = None, - pt_percent: Float = ..., - oltc: Bool = False, - xn_ohm: Float = ..., - tap2_pos: Int | float = ..., # float because default value is nan - **kwargs, -) -> np.int64: ... -def create_transformer_from_parameters( - net: pandapowerNet, - hv_bus: Int, - lv_bus: Int, - sn_mva: Float, - vn_hv_kv: Float, - vn_lv_kv: Float, - vkr_percent: Float, - vk_percent: Float, - pfe_kw: Float, - i0_percent: Float, - shift_degree: Float = 0, - tap_side: Literal["hv", "lv"] | None = None, - tap_neutral: Int | float = ..., # float because default value is nan - tap_max: Int | float = ..., # float because default value is nan - tap_min: Int | float = ..., # float because default value is nan - tap_step_percent: Float = ..., - tap_step_degree: Float = ..., - tap_pos: Int | float = ..., # float because default value is nan - tap_changer_type: Literal["Ratio", "Symmetrical", "Ideal", "Tabular"] | None = None, - id_characteristic_table: Int | None = None, - in_service: Bool = True, - name: str | None = None, - vector_group: str | None = None, - index: Int | None = None, - max_loading_percent: Float = ..., - parallel: Int = 1, - df: Float = 1.0, - vk0_percent: Float = ..., - vkr0_percent: Float = ..., - mag0_percent: Float = ..., - mag0_rx: Float = ..., - si0_hv_partial: Float = ..., - pt_percent: Float = ..., - oltc: Bool = False, - tap_dependency_table: Bool = False, - xn_ohm: Float = ..., - tap2_side: Literal["hv", "lv"] | None = None, - tap2_neutral: Int | float = ..., # float because default value is nan - tap2_max: Int | float = ..., # float because default value is nan - tap2_min: Int | float = ..., # float because default value is nan - tap2_step_percent: Float = ..., - tap2_step_degree: Float = ..., - tap2_pos: Int | float = ..., # float because default value is nan - tap2_changer_type: Literal["Ratio", "Symmetrical", "Ideal", "Tabular"] | None = None, - **kwargs, -) -> np.int64: ... -def create_transformers_from_parameters( - net: pandapowerNet, - hv_buses: Collection[Int], - lv_buses: Collection[Int], - sn_mva: ScalarOrVector[Float], - vn_hv_kv: ScalarOrVector[Float], - vn_lv_kv: ScalarOrVector[Float], - vkr_percent: ScalarOrVector[Float], - vk_percent: ScalarOrVector[Float], - pfe_kw: ScalarOrVector[Float], - i0_percent: ScalarOrVector[Float], - shift_degree: ScalarOrVector[Float] = 0, - tap_side: ScalarOrVector[Literal["hv", "lv"]] | None = None, - tap_neutral: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap_max: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap_min: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap_step_percent: ScalarOrVector[Float] = ..., - tap_step_degree: ScalarOrVector[Float] = ..., - tap_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap_changer_type: ScalarOrVector[Literal["Ratio", "Symmetrical", "Ideal", "Tabular"]] | None = None, - id_characteristic_table: ScalarOrVector[Int] | None = None, - in_service: ScalarOrVector[Bool] = True, - name: ScalarOrVector[str] | None = None, - vector_group: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - max_loading_percent: ScalarOrVector[Float] = ..., - parallel: ScalarOrVector[Int] = 1, - df: ScalarOrVector[Float] = 1.0, - vk0_percent: ScalarOrVector[Float] = ..., - vkr0_percent: ScalarOrVector[Float] = ..., - mag0_percent: ScalarOrVector[Float] = ..., - mag0_rx: ScalarOrVector[Float] = ..., - si0_hv_partial: ScalarOrVector[Float] = ..., - pt_percent: ScalarOrVector[Float] = ..., - oltc: ScalarOrVector[Bool] = False, - tap_dependency_table: ScalarOrVector[Bool] = False, - xn_ohm: ScalarOrVector[Float] = ..., - tap2_side: ScalarOrVector[Literal["hv", "lv"]] | None = None, - tap2_neutral: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap2_max: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap2_min: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap2_step_percent: ScalarOrVector[Float] = ..., - tap2_step_degree: ScalarOrVector[Float] = ..., - tap2_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap2_changer_type: ScalarOrVector[Literal["Ratio", "Symmetrical", "Ideal", "Tabular"]] | None = None, - **kwargs, -) -> Array1D[np.int64]: ... -def create_transformer3w( - net: pandapowerNet, - hv_bus: Int, - mv_bus: Int, - lv_bus: Int, - std_type: str, - name: str | None = None, - tap_pos: Int | float = ..., # float because default value is nan - in_service: Bool = True, - index: Int | None = None, - max_loading_percent: Float = ..., - tap_changer_type: Literal["Ratio", "Symmetrical", "Ideal", "Tabular"] | None = None, - tap_at_star_point: Bool = False, - tap_dependency_table: Bool = False, - id_characteristic_table: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_transformer3w_from_parameters( - net: pandapowerNet, - hv_bus: Int, - mv_bus: Int, - lv_bus: Int, - vn_hv_kv: Float, - vn_mv_kv: Float, - vn_lv_kv: Float, - sn_hv_mva: Float, - sn_mv_mva: Float, - sn_lv_mva: Float, - vk_hv_percent: Float, - vk_mv_percent: Float, - vk_lv_percent: Float, - vkr_hv_percent: Float, - vkr_mv_percent: Float, - vkr_lv_percent: Float, - pfe_kw: Float, - i0_percent: Float, - shift_mv_degree: Float = 0.0, - shift_lv_degree: Float = 0.0, - tap_side: Literal["hv", "mv", "lv"] | None = None, - tap_step_percent: Float = ..., - tap_step_degree: Float = ..., - tap_pos: Int | float = ..., # float because default value is nan - tap_neutral: Int | float = ..., # float because default value is nan - tap_max: Int | float = ..., # float because default value is nan - tap_changer_type: Literal["Ratio", "Symmetrical", "Ideal", "Tabular"] | None = None, - tap_min: Int | float = ..., # float because default value is nan - name: str | None = None, - in_service: Bool = True, - index: Int | None = None, - max_loading_percent: Float = ..., - tap_at_star_point: Bool = False, - vk0_hv_percent: Float = ..., - vk0_mv_percent: Float = ..., - vk0_lv_percent: Float = ..., - vkr0_hv_percent: Float = ..., - vkr0_mv_percent: Float = ..., - vkr0_lv_percent: Float = ..., - vector_group: str | None = None, - tap_dependency_table: Bool = False, - id_characteristic_table: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_transformers3w_from_parameters( - net: pandapowerNet, - hv_buses: Collection[Int], - mv_buses: Collection[Int], - lv_buses: Collection[Int], - vn_hv_kv: ScalarOrVector[Float], - vn_mv_kv: ScalarOrVector[Float], - vn_lv_kv: ScalarOrVector[Float], - sn_hv_mva: ScalarOrVector[Float], - sn_mv_mva: ScalarOrVector[Float], - sn_lv_mva: ScalarOrVector[Float], - vk_hv_percent: ScalarOrVector[Float], - vk_mv_percent: ScalarOrVector[Float], - vk_lv_percent: ScalarOrVector[Float], - vkr_hv_percent: ScalarOrVector[Float], - vkr_mv_percent: ScalarOrVector[Float], - vkr_lv_percent: ScalarOrVector[Float], - pfe_kw: ScalarOrVector[Float], - i0_percent: ScalarOrVector[Float], - shift_mv_degree: ScalarOrVector[Float] = 0.0, - shift_lv_degree: ScalarOrVector[Float] = 0.0, - tap_side: ScalarOrVector[Literal["hv", "mv", "lv"]] | None = None, - tap_step_percent: ScalarOrVector[Float] = ..., - tap_step_degree: ScalarOrVector[Float] = ..., - tap_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap_neutral: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap_max: ScalarOrVector[Int] | float = ..., # float because default value is nan - tap_min: ScalarOrVector[Int] | float = ..., # float because default value is nan - name: ScalarOrVector[str] | None = None, - in_service: ScalarOrVector[Bool] = True, - index: Collection[Int] | None = None, - max_loading_percent: ScalarOrVector[Float] = ..., - tap_at_star_point: ScalarOrVector[Bool] = False, - tap_changer_type: ScalarOrVector[Literal["Ratio", "Symmetrical", "Ideal", "Tabular"]] | None = None, - vk0_hv_percent: ScalarOrVector[Float] = ..., - vk0_mv_percent: ScalarOrVector[Float] = ..., - vk0_lv_percent: ScalarOrVector[Float] = ..., - vkr0_hv_percent: ScalarOrVector[Float] = ..., - vkr0_mv_percent: ScalarOrVector[Float] = ..., - vkr0_lv_percent: ScalarOrVector[Float] = ..., - vector_group: ScalarOrVector[str] | None = None, - tap_dependency_table: ScalarOrVector[Bool] = False, - id_characteristic_table: ScalarOrVector[Int] | None = None, - **kwargs, -) -> Array1D[np.int64]: ... -def create_switch( - net: pandapowerNet, - bus: Int, - element: Int, - et: Literal["l", "t", "t3", "b"], - closed: Bool = True, - type: Literal["LS", "CB", "LBS", "DS"] | None = None, - name: str | None = None, - index: Int | None = None, - z_ohm: Float = 0, - in_ka: Float | None = ..., - **kwargs, -) -> np.int64: ... -def create_switches( - net: pandapowerNet, - buses: Collection[Int], - elements: Collection[Int], - et: ScalarOrVector[Literal["l", "t", "t3", "b"]], - closed: ScalarOrVector[Bool] = True, - type: ScalarOrVector[Literal["LS", "CB", "LBS", "DS"]] | None = None, - name: ScalarOrVector[str] | None = None, - index: Collection[Int] | None = None, - z_ohm: ScalarOrVector[Float] = 0, - in_ka: ScalarOrVector[Float] | None = ..., - **kwargs, -) -> Array1D[np.int64]: ... -def create_shunt( - net: pandapowerNet, - bus: Int, - q_mvar: Float, - p_mw: Float = 0.0, - vn_kv: Float | None = None, - step: Int = 1, - max_step: Int = 1, - name: str | None = None, - step_dependency_table: Bool = False, - id_characteristic_table: Int | None = None, - in_service: Bool = True, - index: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_shunts( - net: pandapowerNet, - buses: Collection[Int], - q_mvar: ScalarOrVector[Float], - p_mw: ScalarOrVector[Float] = 0.0, - vn_kv: ScalarOrVector[Float] | None = None, - step: ScalarOrVector[Int] = 1, - max_step: ScalarOrVector[Int] = 1, - name: ScalarOrVector[str] | None = None, - step_dependency_table: ScalarOrVector[Bool] = False, - id_characteristic_table: ScalarOrVector[Int] | None = None, - in_service: ScalarOrVector[Bool] = True, - index: Collection[Int] | None = None, - **kwargs, -) -> Array1D[np.int64]: ... -def create_shunt_as_capacitor( - net: pandapowerNet, - bus: Int, - q_mvar: Float, - loss_factor: Float, - *, - # keywords passed to create_shunt extracted from **kwargs - vn_kv: Float | None = None, - step: Int = 1, - max_step: Int = 1, - name: str | None = None, - step_dependency_table: Bool = False, - id_characteristic_table: Int | None = None, - in_service: Bool = True, - index: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_source_dc( - net: pandapowerNet, - bus_dc: Int, - vm_pu: Float = 1.0, - index: Int | None = None, - name: str | None = None, - in_service: Bool = True, - type: str | None = None, - **kwargs, -) -> np.int64: ... -def create_load_dc( - net: pandapowerNet, - bus_dc: Int, - p_dc_mw: Float, - scaling: Float = 1.0, - type: str | None = None, - index: Int | None = None, - name: str | None = None, - in_service: Bool = True, - controllable: Bool = False, - **kwargs, -) -> np.int64: ... -def create_svc( - net: pandapowerNet, - bus: Int, - x_l_ohm: Float, - x_cvar_ohm: Float, - set_vm_pu: Float, - thyristor_firing_angle_degree: Float, - name: str | None = None, - controllable: Bool = True, - in_service: Bool = True, - index: Int | None = None, - min_angle_degree: Float = 90, - max_angle_degree: Float = 180, - **kwargs, -) -> np.int64: ... -def create_ssc( - net: pandapowerNet, - bus: Int, - r_ohm: Float, - x_ohm: Float, - set_vm_pu: Float = 1.0, - vm_internal_pu: Float = 1.0, - va_internal_degree: Float = 0.0, - name: str | None = None, - controllable: Bool = True, - in_service: Bool = True, - index: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_b2b_vsc( - net: pandapowerNet, - bus: Int, - bus_dc_plus: Int, - bus_dc_minus: Int, - r_ohm: Float, - x_ohm: Float, - r_dc_ohm: Float, - pl_dc_mw: Float = 0.0, - control_mode_ac: Literal["vm_pu", "q_mvar", "slack"] = "vm_pu", - control_value_ac: Float = 1.0, - control_mode_dc: Literal["vm_pu", "p_mw"] = "p_mw", - control_value_dc: Float = 0.0, - name: str | None = None, - controllable: Bool = True, - in_service: Bool = True, - index: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_bi_vsc( - net: pandapowerNet, - bus: Int, - bus_dc_plus: Int, - bus_dc_minus: Int, - r_ohm: Float, - x_ohm: Float, - r_dc_ohm: Float, - pl_dc_mw: Float = 0.0, - control_mode_ac: Literal["vm_pu", "q_mvar", "slack"] = "vm_pu", - control_value_ac: Float = 1.0, - control_mode_dc: Literal["vm_pu", "p_mw"] = "p_mw", - control_value_dc: Float = 0.0, - name: str | None = None, - controllable: Bool = True, - in_service: Bool = True, - index: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_vsc( - net: pandapowerNet, - bus: Int, - bus_dc: Int, - r_ohm: Float, - x_ohm: Float, - r_dc_ohm: Float, - pl_dc_mw: Float = 0.0, - control_mode_ac: Literal["vm_pu", "q_mvar"] = "vm_pu", - control_value_ac: Float = 1.0, - control_mode_dc: Literal["vm_pu", "p_mw"] = "p_mw", - control_value_dc: Float = 0.0, - name: str | None = None, - controllable: Bool = True, - in_service: Bool = True, - index: Int | None = None, - ref_bus: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_impedance( - net: pandapowerNet, - from_bus: Int, - to_bus: Int, - rft_pu: Float, - xft_pu: Float, - sn_mva: Float, - rtf_pu: Float | None = None, - xtf_pu: Float | None = None, - name: str | None = None, - in_service: Bool = True, - index: Int | None = None, - rft0_pu: Float | None = None, - xft0_pu: Float | None = None, - rtf0_pu: Float | None = None, - xtf0_pu: Float | None = None, - gf_pu: Float = 0, - bf_pu: Float = 0, - gt_pu: Float | None = None, - bt_pu: Float | None = None, - gf0_pu: Float | None = None, - bf0_pu: Float | None = None, - gt0_pu: Float | None = None, - bt0_pu: Float | None = None, - **kwargs, -) -> np.int64: ... -def create_impedances( - net: pandapowerNet, - from_buses: Collection[Int], - to_buses: Collection[Int], - rft_pu: ScalarOrVector[Float], - xft_pu: ScalarOrVector[Float], - sn_mva: ScalarOrVector[Float], - rtf_pu: ScalarOrVector[Float] | None = None, - xtf_pu: ScalarOrVector[Float] | None = None, - name: ScalarOrVector[str] | None = None, - in_service: ScalarOrVector[Bool] = True, - index: Collection[Int] | None = None, - rft0_pu: ScalarOrVector[Float] | None = None, - xft0_pu: ScalarOrVector[Float] | None = None, - rtf0_pu: ScalarOrVector[Float] | None = None, - xtf0_pu: ScalarOrVector[Float] | None = None, - gf_pu: ScalarOrVector[Float] = 0, - bf_pu: ScalarOrVector[Float] = 0, - gt_pu: ScalarOrVector[Float] | None = None, - bt_pu: ScalarOrVector[Float] | None = None, - gf0_pu: ScalarOrVector[Float] | None = None, - bf0_pu: ScalarOrVector[Float] | None = None, - gt0_pu: ScalarOrVector[Float] | None = None, - bt0_pu: ScalarOrVector[Float] | None = None, - **kwargs, -) -> Array1D[np.int64]: ... -def create_tcsc( - net: pandapowerNet, - from_bus: Int, - to_bus: Int, - x_l_ohm: Float, - x_cvar_ohm: Float, - set_p_to_mw: Float, - thyristor_firing_angle_degree: Float, - name: str | None = None, - controllable: Bool = True, - in_service: Bool = True, - index: Int | None = None, - min_angle_degree: Float = 90, - max_angle_degree: Float = 180, - **kwargs, -) -> np.int64: ... -def create_series_reactor_as_impedance( - net: pandapowerNet, - from_bus: Int, - to_bus: Int, - r_ohm: Float, - x_ohm: Float, - sn_mva: Float, - name: str | None = None, - in_service: Bool = True, - index: Int | None = None, - r0_ohm: Float | None = None, - x0_ohm: Float | None = None, - **kwargs, -) -> np.int64: ... -def create_ward( - net: pandapowerNet, - bus: Int, - ps_mw: Float, - qs_mvar: Float, - pz_mw: Float, - qz_mvar: Float, - name: str | None = None, - in_service: Bool = True, - index: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_wards( - net: pandapowerNet, - buses: Collection[Int], - ps_mw: ScalarOrVector[Float], - qs_mvar: ScalarOrVector[Float], - pz_mw: ScalarOrVector[Float], - qz_mvar: ScalarOrVector[Float], - name: ScalarOrVector[str] | None = None, - in_service: ScalarOrVector[Bool] = True, - index: Collection[Int] | None = None, - **kwargs, -) -> Array1D[np.int64]: ... -def create_xward( - net: pandapowerNet, - bus: Int, - ps_mw: Float, - qs_mvar: Float, - pz_mw: Float, - qz_mvar: Float, - r_ohm: Float, - x_ohm: Float, - vm_pu: Float, - in_service: Bool = True, - name: str | None = None, - index: Int | None = None, - slack_weight: Float = 0.0, - **kwargs, -) -> np.int64: ... -def create_dcline( - net: pandapowerNet, - from_bus: Int, - to_bus: Int, - p_mw: Float, - loss_percent: Float, - loss_mw: Float, - vm_from_pu: Float, - vm_to_pu: Float, - index: Int | None = None, - name: str | None = None, - max_p_mw: Float = ..., - min_q_from_mvar: Float = ..., - min_q_to_mvar: Float = ..., - max_q_from_mvar: Float = ..., - max_q_to_mvar: Float = ..., - in_service: Bool = True, - **kwargs, -) -> np.int64: ... -def create_measurement( - net: pandapowerNet, - meas_type: Literal["v", "p", "q", "i", "va", "ia"], - element_type: Literal["bus", "line", "trafo", "trafo3w"], - value: Float, - std_dev: Float, - element: Int, - side: Literal["hv", "mv", "lv"] | Int | None = None, - check_existing: Bool = False, - index: Int | None = None, - name: str | None = None, - **kwargs, -) -> np.int64: ... -def create_pwl_cost( - net: pandapowerNet, - element: Int, - et: _CostElementType, - points: Collection[Collection[Float]], - power_type: Literal["p", "q"] = "p", - index: Int | None = None, - check: Bool = True, - **kwargs, -) -> np.int64: ... -def create_pwl_costs( - net: pandapowerNet, - elements: Collection[Int], - et: ScalarOrVector[_CostElementType], - points: ScalarOrVector[Collection[Collection[Float]]], - power_type: ScalarOrVector[Literal["p", "q"]] = "p", - index: Collection[Int] | None = None, - check: ScalarOrVector[Bool] = True, - **kwargs, -) -> Array1D[np.int64]: ... -def create_poly_cost( - net: pandapowerNet, - element: Int, - et: _CostElementType, - cp1_eur_per_mw: Float, - cp0_eur: Float = 0, - cq1_eur_per_mvar: Float = 0, - cq0_eur: Float = 0, - cp2_eur_per_mw2: Float = 0, - cq2_eur_per_mvar2: Float = 0, - index: Int | None = None, - check: Bool = True, - **kwargs, -) -> np.int64: ... -def create_poly_costs( - net: pandapowerNet, - elements: Collection[Int], - et: ScalarOrVector[_CostElementType], - cp1_eur_per_mw: ScalarOrVector[Float], - cp0_eur: ScalarOrVector[Float] = 0, - cq1_eur_per_mvar: ScalarOrVector[Float] = 0, - cq0_eur: ScalarOrVector[Float] = 0, - cp2_eur_per_mw2: ScalarOrVector[Float] = 0, - cq2_eur_per_mvar2: ScalarOrVector[Float] = 0, - index: Collection[Int] | None = None, - check: ScalarOrVector[Bool] = True, - **kwargs, -) -> Array1D[np.int64]: ... -def create_group( - net: pandapowerNet, - element_types: ScalarOrVector[str], - element_indices: Collection[Collection[Int | Any]], # list of lists of indices or any column content - name: str = "", - reference_columns: ScalarOrVector[str] | None = None, - index: Int | None = None, - **kwargs, -) -> np.int64: ... -def create_group_from_dict( - net: pandapowerNet, - elements_dict: Mapping[str, Collection[Int | Any]], # dict of lists of indices or any column content - name: str = "", - reference_column: ScalarOrVector[str] | None = None, - index: Int | None = None, - **kwargs, -) -> np.int64: ... -def try_astype(df: pd.DataFrame | dict[str, pd.Series[Any]], column: str, dtyp: DTypeLike) -> None: ... diff --git a/stubs/pandapower-stubs/create/__init__.pyi b/stubs/pandapower-stubs/create/__init__.pyi new file mode 100755 index 0000000..0f013ac --- /dev/null +++ b/stubs/pandapower-stubs/create/__init__.pyi @@ -0,0 +1,18 @@ +from pandapower.create.bus_create import * +from pandapower.create.cost_create import * +from pandapower.create.ext_grid_create import * +from pandapower.create.gen_create import * +from pandapower.create.group_create import * +from pandapower.create.impedance_create import * +from pandapower.create.line_create import * +from pandapower.create.load_create import * +from pandapower.create.measurement_create import * +from pandapower.create.motor_create import * +from pandapower.create.network_create import * +from pandapower.create.sgen_create import * +from pandapower.create.shunt_create import * +from pandapower.create.source_create import * +from pandapower.create.storage_create import * +from pandapower.create.switch_create import * +from pandapower.create.trafo_create import * +from pandapower.create.ward_create import * diff --git a/stubs/pandapower-stubs/create/bus_create.pyi b/stubs/pandapower-stubs/create/bus_create.pyi new file mode 100755 index 0000000..53a1409 --- /dev/null +++ b/stubs/pandapower-stubs/create/bus_create.pyi @@ -0,0 +1,69 @@ +from collections.abc import Collection +from typing import Final + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet +from pandapower.pp_types import BusType + +BUSBAR_WARNING: Final[str] + +def create_bus( + net: pandapowerNet, + vn_kv: Float, + name: str | None = None, + index: Int | None = None, + geodata: tuple[Float, Float] | None = None, + type: BusType = "b", + zone: str | None = None, + in_service: Bool = True, + max_vm_pu: Float = ..., + min_vm_pu: Float = ..., + coords: Collection[tuple[Float, Float]] | None = None, + **kwargs, +) -> np.int64: ... +def create_bus_dc( + net: pandapowerNet, + vn_kv: Float, + name: str | None = None, + index: Int | None = None, + geodata: tuple[Float, Float] | None = None, + type: BusType = "b", + zone: str | None = None, + in_service: Bool | None = True, + max_vm_pu: Float = ..., + min_vm_pu: Float = ..., + coords: Collection[tuple[Float, Float]] | None = None, + **kwargs, +) -> np.int64: ... +def create_buses( + net: pandapowerNet, + nr_buses: Int, + vn_kv: ScalarOrVector[Float], + index: ScalarOrVector[Int] | None = None, + name: ScalarOrVector[str] | None = None, + type: ScalarOrVector[BusType] = "b", + geodata: ScalarOrVector[tuple[Float, Float]] | None = None, + zone: ScalarOrVector[str] | None = None, + in_service: ScalarOrVector[Bool] = True, + max_vm_pu: ScalarOrVector[Float] = ..., + min_vm_pu: ScalarOrVector[Float] = ..., + coords: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, + **kwargs, +) -> Array1D[np.int64]: ... +def create_buses_dc( + net: pandapowerNet, + nr_buses_dc: Int, + vn_kv: ScalarOrVector[Float], + index: ScalarOrVector[Int] | None = None, + name: ScalarOrVector[str] | None = None, + type: ScalarOrVector[BusType] = "b", + geodata: ScalarOrVector[tuple[Float, Float]] | None = None, + zone: ScalarOrVector[str] | None = None, + in_service: ScalarOrVector[Bool] = True, + max_vm_pu: ScalarOrVector[Float] = ..., + min_vm_pu: ScalarOrVector[Float] = ..., + coords: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, + **kwargs, +) -> Array1D[np.int64]: ... diff --git a/stubs/pandapower-stubs/create/cost_create.pyi b/stubs/pandapower-stubs/create/cost_create.pyi new file mode 100755 index 0000000..c15cd8d --- /dev/null +++ b/stubs/pandapower-stubs/create/cost_create.pyi @@ -0,0 +1,56 @@ +from collections.abc import Collection + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet +from pandapower.pp_types import CostElementType, PWLPowerType + +def create_pwl_cost( + net: pandapowerNet, + element: Int, + et: CostElementType, + points: Collection[Collection[Float]], + power_type: PWLPowerType = "p", + index: Int | None = None, + check: Bool = True, + **kwargs, +) -> np.int64: ... +def create_pwl_costs( + net: pandapowerNet, + elements: Collection[Int], + et: ScalarOrVector[CostElementType], + points: ScalarOrVector[Collection[Collection[Float]]], + power_type: ScalarOrVector[PWLPowerType] = "p", + index: Collection[Int] | None = None, + check: ScalarOrVector[Bool] = True, + **kwargs, +) -> Array1D[np.int64]: ... +def create_poly_cost( + net: pandapowerNet, + element: Int, + et: CostElementType, + cp1_eur_per_mw: Float, + cp0_eur: Float = 0, + cq1_eur_per_mvar: Float = 0, + cq0_eur: Float = 0, + cp2_eur_per_mw2: Float = 0, + cq2_eur_per_mvar2: Float = 0, + index: Int | None = None, + check: Bool = True, + **kwargs, +) -> np.int64: ... +def create_poly_costs( + net: pandapowerNet, + elements: Collection[Int], + et: ScalarOrVector[CostElementType], + cp1_eur_per_mw: ScalarOrVector[Float], + cp0_eur: ScalarOrVector[Float] = 0, + cq1_eur_per_mvar: ScalarOrVector[Float] = 0, + cq0_eur: ScalarOrVector[Float] = 0, + cp2_eur_per_mw2: ScalarOrVector[Float] = 0, + cq2_eur_per_mvar2: ScalarOrVector[Float] = 0, + index: Collection[Int] | None = None, + check: ScalarOrVector[Bool] = True, + **kwargs, +) -> Array1D[np.int64]: ... diff --git a/stubs/pandapower-stubs/create/ext_grid_create.pyi b/stubs/pandapower-stubs/create/ext_grid_create.pyi new file mode 100755 index 0000000..c7c0dec --- /dev/null +++ b/stubs/pandapower-stubs/create/ext_grid_create.pyi @@ -0,0 +1,27 @@ +import numpy as np + +from pandapower._typing import Bool, Float, Int +from pandapower.auxiliary import pandapowerNet + +def create_ext_grid( + net: pandapowerNet, + bus: Int, + vm_pu: Float = 1.0, + va_degree: Float = 0.0, + name: str | None = None, + in_service: Bool = True, + s_sc_max_mva: Float = ..., + s_sc_min_mva: Float = ..., + rx_max: Float = ..., + rx_min: Float = ..., + max_p_mw: Float = ..., + min_p_mw: Float = ..., + max_q_mvar: Float = ..., + min_q_mvar: Float = ..., + index: Int | None = None, + r0x0_max: Float = ..., + x0x_max: Float = ..., + controllable: Bool | float = ..., # float because default value is nan + slack_weight: Float = 1.0, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/gen_create.pyi b/stubs/pandapower-stubs/create/gen_create.pyi new file mode 100755 index 0000000..46c9522 --- /dev/null +++ b/stubs/pandapower-stubs/create/gen_create.pyi @@ -0,0 +1,69 @@ +from collections.abc import Collection + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet + +def create_gen( + net: pandapowerNet, + bus: Int, + p_mw: Float, + vm_pu: Float = 1.0, + sn_mva: Float = ..., + name: str | None = None, + index: Int | None = None, + max_q_mvar: Float = ..., + min_q_mvar: Float = ..., + min_p_mw: Float = ..., + max_p_mw: Float = ..., + min_vm_pu: Float = ..., + max_vm_pu: Float = ..., + scaling: Float = 1.0, + type: str | None = None, + slack: Bool = False, + id_q_capability_characteristic: Int | None = None, + reactive_capability_curve: Bool = False, + curve_style: str | None = None, + controllable: Bool | float = ..., # float because default value is nan + vn_kv: Float = ..., + xdss_pu: Float = ..., + rdss_ohm: Float = ..., + cos_phi: Float = ..., + pg_percent: Float = ..., + power_station_trafo: Int | float = ..., # float because default value is nan + in_service: Bool = True, + slack_weight: Float = 0.0, + **kwargs, +) -> np.int64: ... +def create_gens( + net: pandapowerNet, + buses: Collection[Int], + p_mw: ScalarOrVector[Float], + vm_pu: ScalarOrVector[Float] = 1.0, + sn_mva: ScalarOrVector[Float] = ..., + name: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + max_q_mvar: ScalarOrVector[Float] = ..., + min_q_mvar: ScalarOrVector[Float] = ..., + min_p_mw: ScalarOrVector[Float] = ..., + max_p_mw: ScalarOrVector[Float] = ..., + min_vm_pu: ScalarOrVector[Float] = ..., + max_vm_pu: ScalarOrVector[Float] = ..., + scaling: ScalarOrVector[Float] = 1.0, + type: ScalarOrVector[str] | None = None, + slack: ScalarOrVector[Bool] = False, + id_q_capability_characteristic: ScalarOrVector[Int] | None = None, + reactive_capability_curve: ScalarOrVector[Bool] = False, + curve_style: ScalarOrVector[str] | None = None, + controllable: ScalarOrVector[Bool] | float = ..., # float because default value is nan + vn_kv: ScalarOrVector[Float] = ..., + xdss_pu: ScalarOrVector[Float] = ..., + rdss_ohm: ScalarOrVector[Float] = ..., + cos_phi: ScalarOrVector[Float] = ..., + pg_percent: ScalarOrVector[Float] = ..., + power_station_trafo: ScalarOrVector[Int] | float = ..., # float because default value is nan + in_service: ScalarOrVector[Bool] = True, + slack_weight: ScalarOrVector[Float] = 0.0, + **kwargs, +) -> Array1D[np.int64]: ... diff --git a/stubs/pandapower-stubs/create/group_create.pyi b/stubs/pandapower-stubs/create/group_create.pyi new file mode 100755 index 0000000..1d86985 --- /dev/null +++ b/stubs/pandapower-stubs/create/group_create.pyi @@ -0,0 +1,25 @@ +from collections.abc import Collection, Mapping +from typing import Any + +import numpy as np + +from pandapower._typing import Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet + +def create_group( + net: pandapowerNet, + element_types: ScalarOrVector[str], + element_indices: Collection[Collection[Int | Any]], # list of lists of indices or any column content + name: str = "", + reference_columns: ScalarOrVector[str] | None = None, + index: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_group_from_dict( + net: pandapowerNet, + elements_dict: Mapping[str, Collection[Int | Any]], # dict of lists of indices or any column content + name: str = "", + reference_column: ScalarOrVector[str] | None = None, + index: Int | None = None, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/impedance_create.pyi b/stubs/pandapower-stubs/create/impedance_create.pyi new file mode 100755 index 0000000..cc0e9af --- /dev/null +++ b/stubs/pandapower-stubs/create/impedance_create.pyi @@ -0,0 +1,89 @@ +from collections.abc import Collection + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet + +def create_impedance( + net: pandapowerNet, + from_bus: Int, + to_bus: Int, + rft_pu: Float, + xft_pu: Float, + sn_mva: Float, + rtf_pu: Float | None = None, + xtf_pu: Float | None = None, + name: str | None = None, + in_service: Bool = True, + index: Int | None = None, + rft0_pu: Float | None = None, + xft0_pu: Float | None = None, + rtf0_pu: Float | None = None, + xtf0_pu: Float | None = None, + gf_pu: Float = 0, + bf_pu: Float = 0, + gt_pu: Float | None = None, + bt_pu: Float | None = None, + gf0_pu: Float | None = None, + bf0_pu: Float | None = None, + gt0_pu: Float | None = None, + bt0_pu: Float | None = None, + **kwargs, +) -> np.int64: ... +def create_impedances( + net: pandapowerNet, + from_buses: Collection[Int], + to_buses: Collection[Int], + rft_pu: ScalarOrVector[Float], + xft_pu: ScalarOrVector[Float], + sn_mva: ScalarOrVector[Float], + rtf_pu: ScalarOrVector[Float] | None = None, + xtf_pu: ScalarOrVector[Float] | None = None, + name: ScalarOrVector[str] | None = None, + in_service: ScalarOrVector[Bool] = True, + index: Collection[Int] | None = None, + rft0_pu: ScalarOrVector[Float] | None = None, + xft0_pu: ScalarOrVector[Float] | None = None, + rtf0_pu: ScalarOrVector[Float] | None = None, + xtf0_pu: ScalarOrVector[Float] | None = None, + gf_pu: ScalarOrVector[Float] = 0, + bf_pu: ScalarOrVector[Float] = 0, + gt_pu: ScalarOrVector[Float] | None = None, + bt_pu: ScalarOrVector[Float] | None = None, + gf0_pu: ScalarOrVector[Float] | None = None, + bf0_pu: ScalarOrVector[Float] | None = None, + gt0_pu: ScalarOrVector[Float] | None = None, + bt0_pu: ScalarOrVector[Float] | None = None, + **kwargs, +) -> Array1D[np.int64]: ... +def create_tcsc( + net: pandapowerNet, + from_bus: Int, + to_bus: Int, + x_l_ohm: Float, + x_cvar_ohm: Float, + set_p_to_mw: Float, + thyristor_firing_angle_degree: Float, + name: str | None = None, + controllable: Bool = True, + in_service: Bool = True, + index: Int | None = None, + min_angle_degree: Float = 90, + max_angle_degree: Float = 180, + **kwargs, +) -> np.int64: ... +def create_series_reactor_as_impedance( + net: pandapowerNet, + from_bus: Int, + to_bus: Int, + r_ohm: Float, + x_ohm: Float, + sn_mva: Float, + name: str | None = None, + in_service: Bool = True, + index: Int | None = None, + r0_ohm: Float | None = None, + x0_ohm: Float | None = None, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/line_create.pyi b/stubs/pandapower-stubs/create/line_create.pyi new file mode 100755 index 0000000..dc81ce9 --- /dev/null +++ b/stubs/pandapower-stubs/create/line_create.pyi @@ -0,0 +1,184 @@ +from collections.abc import Collection + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet +from pandapower.pp_types import LineType + +def create_line( + net: pandapowerNet, + from_bus: Int, + to_bus: Int, + length_km: Float, + std_type: str, + name: str | None = None, + index: Int | None = None, + geodata: Collection[tuple[Float, Float]] | None = None, + df: Float = 1.0, + parallel: Int = 1, + in_service: Bool = True, + max_loading_percent: Float = ..., + alpha: Float = ..., + temperature_degree_celsius: Float = ..., + **kwargs, +) -> np.int64: ... +def create_line_dc( + net: pandapowerNet, + from_bus_dc: Int, + to_bus_dc: Int, + length_km: Float, + std_type: str, + name: str | None = None, + index: Int | None = None, + geodata: Collection[tuple[Float, Float]] | None = None, + df: Float = 1.0, + parallel: Int = 1, + in_service: Bool = True, + max_loading_percent: Float = ..., + alpha: Float = ..., + temperature_degree_celsius: Float = ..., + **kwargs, +) -> np.int64: ... +def create_lines( + net: pandapowerNet, + from_buses: Collection[Int], + to_buses: Collection[Int], + length_km: ScalarOrVector[Float], + std_type: ScalarOrVector[str], + name: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + geodata: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, + df: ScalarOrVector[Float] = 1.0, + parallel: ScalarOrVector[Int] = 1, + in_service: ScalarOrVector[Bool] = True, + max_loading_percent: ScalarOrVector[Float] = ..., + **kwargs, +) -> Array1D[np.int64]: ... +def create_lines_dc( + net: pandapowerNet, + from_buses_dc: Collection[Int], + to_buses_dc: Collection[Int], + length_km: ScalarOrVector[Float], + std_type: ScalarOrVector[str], + name: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + geodata: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, + df: ScalarOrVector[Float] = 1.0, + parallel: ScalarOrVector[Int] = 1, + in_service: ScalarOrVector[Bool] = True, + max_loading_percent: ScalarOrVector[Float] = ..., + **kwargs, +) -> Array1D[np.int64]: ... +def create_line_from_parameters( + net: pandapowerNet, + from_bus: Int, + to_bus: Int, + length_km: Float, + r_ohm_per_km: Float, + x_ohm_per_km: Float, + c_nf_per_km: Float, + max_i_ka: Float, + name: str | None = None, + index: Int | None = None, + type: LineType | None = None, + geodata: Collection[tuple[Float, Float]] | None = None, + in_service: Bool = True, + df: Float = 1.0, + parallel: Int = 1, + g_us_per_km: Float = 0.0, + max_loading_percent: Float = ..., + alpha: Float = ..., + temperature_degree_celsius: Float = ..., + r0_ohm_per_km: Float = ..., + x0_ohm_per_km: Float = ..., + c0_nf_per_km: Float = ..., + g0_us_per_km: Float = 0, + endtemp_degree: Float = ..., + **kwargs, +) -> np.int64: ... +def create_line_dc_from_parameters( + net: pandapowerNet, + from_bus_dc: Int, + to_bus_dc: Int, + length_km: Float, + r_ohm_per_km: Float, + max_i_ka: Float, + name: str | None = None, + index: Int | None = None, + type: LineType | None = None, + geodata: Collection[tuple[Float, Float]] | None = None, + in_service: Bool = True, + df: Float = 1.0, + parallel: Int = 1, + max_loading_percent: Float = ..., + alpha: Float = ..., + temperature_degree_celsius: Float = ..., + g_us_per_km: Float = 0.0, + **kwargs, +) -> np.int64: ... +def create_lines_from_parameters( + net: pandapowerNet, + from_buses: Collection[Int], + to_buses: Collection[Int], + length_km: ScalarOrVector[Float], + r_ohm_per_km: ScalarOrVector[Float], + x_ohm_per_km: ScalarOrVector[Float], + c_nf_per_km: ScalarOrVector[Float], + max_i_ka: ScalarOrVector[Float], + name: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + type: ScalarOrVector[LineType] | None = None, + geodata: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, + in_service: ScalarOrVector[Bool] = True, + df: ScalarOrVector[Float] = 1.0, + parallel: ScalarOrVector[Int] = 1, + g_us_per_km: ScalarOrVector[Float] = 0.0, + max_loading_percent: ScalarOrVector[Float] = ..., + alpha: ScalarOrVector[Float] = ..., + temperature_degree_celsius: ScalarOrVector[Float] = ..., + r0_ohm_per_km: ScalarOrVector[Float] = ..., + x0_ohm_per_km: ScalarOrVector[Float] = ..., + c0_nf_per_km: ScalarOrVector[Float] = ..., + g0_us_per_km: ScalarOrVector[Float] = ..., + **kwargs, +) -> Array1D[np.int64]: ... +def create_lines_dc_from_parameters( + net: pandapowerNet, + from_buses_dc: Collection[Int], + to_buses_dc: Collection[Int], + length_km: ScalarOrVector[Float], + r_ohm_per_km: ScalarOrVector[Float], + max_i_ka: ScalarOrVector[Float], + name: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + type: ScalarOrVector[LineType] | None = None, + geodata: ScalarOrVector[Collection[tuple[Float, Float]]] | None = None, + in_service: ScalarOrVector[Bool] = True, + df: ScalarOrVector[Float] = 1.0, + parallel: ScalarOrVector[Int] = 1, + g_us_per_km: ScalarOrVector[Float] = 0.0, + max_loading_percent: ScalarOrVector[Float] = ..., + alpha: ScalarOrVector[Float] = ..., + temperature_degree_celsius: ScalarOrVector[Float] = ..., + **kwargs, +) -> Array1D[np.int64]: ... +def create_dcline( + net: pandapowerNet, + from_bus: Int, + to_bus: Int, + p_mw: Float, + loss_percent: Float, + loss_mw: Float, + vm_from_pu: Float, + vm_to_pu: Float, + index: Int | None = None, + name: str | None = None, + max_p_mw: Float = ..., + min_q_from_mvar: Float = ..., + min_q_to_mvar: Float = ..., + max_q_from_mvar: Float = ..., + max_q_to_mvar: Float = ..., + in_service: Bool = True, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/load_create.pyi b/stubs/pandapower-stubs/create/load_create.pyi new file mode 100755 index 0000000..fa7a8b7 --- /dev/null +++ b/stubs/pandapower-stubs/create/load_create.pyi @@ -0,0 +1,84 @@ +from collections.abc import Collection + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet +from pandapower.pp_types import UnderOverExcitedType, WyeDeltaType + +def create_load( + net: pandapowerNet, + bus: Int, + p_mw: Float, + q_mvar: Float = 0, + const_z_p_percent: Float = 0, + const_i_p_percent: Float = 0, + const_z_q_percent: Float = 0, + const_i_q_percent: Float = 0, + sn_mva: Float = ..., + name: str | None = None, + scaling: Float = 1.0, + index: Int | None = None, + in_service: Bool = True, + type: WyeDeltaType = "wye", + max_p_mw: Float = ..., + min_p_mw: Float = ..., + max_q_mvar: Float = ..., + min_q_mvar: Float = ..., + controllable: Bool | float = ..., # float because default value is nan + **kwargs, +) -> np.int64: ... +def create_loads( + net: pandapowerNet, + buses: Collection[Int], + p_mw: ScalarOrVector[Float], + q_mvar: ScalarOrVector[Float] = 0, + const_z_p_percent: ScalarOrVector[Float] = 0, + const_i_p_percent: ScalarOrVector[Float] = 0, + const_z_q_percent: ScalarOrVector[Float] = 0, + const_i_q_percent: ScalarOrVector[Float] = 0, + sn_mva: ScalarOrVector[Float] = ..., + name: ScalarOrVector[str] | None = None, + scaling: ScalarOrVector[Float] = 1.0, + index: Collection[Int] | None = None, + in_service: ScalarOrVector[Bool] = True, + type: ScalarOrVector[WyeDeltaType] | None = "wye", + max_p_mw: ScalarOrVector[Float] = ..., + min_p_mw: ScalarOrVector[Float] = ..., + max_q_mvar: ScalarOrVector[Float] = ..., + min_q_mvar: ScalarOrVector[Float] = ..., + controllable: ScalarOrVector[Bool] | float = ..., # float because default value is nan + **kwargs, +) -> Array1D[np.int64]: ... +def create_asymmetric_load( + net: pandapowerNet, + bus: Int, + p_a_mw: Float = 0, + p_b_mw: Float = 0, + p_c_mw: Float = 0, + q_a_mvar: Float = 0, + q_b_mvar: Float = 0, + q_c_mvar: Float = 0, + sn_mva: Float = ..., + name: str | None = None, + scaling: Float = 1.0, + index: Int | None = None, + in_service: Bool = True, + type: WyeDeltaType = "wye", + **kwargs, +) -> np.int64: ... +def create_load_from_cosphi( + net: pandapowerNet, bus: Int, sn_mva: Float, cos_phi: Float, mode: UnderOverExcitedType, **kwargs +) -> np.int64: ... +def create_load_dc( + net: pandapowerNet, + bus_dc: Int, + p_dc_mw: Float, + scaling: Float = 1.0, + type: str | None = None, + index: Int | None = None, + name: str | None = None, + in_service: Bool = True, + controllable: Bool = False, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/measurement_create.pyi b/stubs/pandapower-stubs/create/measurement_create.pyi new file mode 100755 index 0000000..c7ed719 --- /dev/null +++ b/stubs/pandapower-stubs/create/measurement_create.pyi @@ -0,0 +1,19 @@ +import numpy as np + +from pandapower._typing import Bool, Float, Int +from pandapower.auxiliary import pandapowerNet +from pandapower.pp_types import HVMVLVType, MeasurementElementType, MeasurementType + +def create_measurement( + net: pandapowerNet, + meas_type: MeasurementType, + element_type: MeasurementElementType, + value: Float, + std_dev: Float, + element: Int, + side: HVMVLVType | Int | None = None, + check_existing: Bool = False, + index: Int | None = None, + name: str | None = None, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/motor_create.pyi b/stubs/pandapower-stubs/create/motor_create.pyi new file mode 100755 index 0000000..c13b929 --- /dev/null +++ b/stubs/pandapower-stubs/create/motor_create.pyi @@ -0,0 +1,23 @@ +import numpy as np + +from pandapower._typing import Bool, Float, Int +from pandapower.auxiliary import pandapowerNet + +def create_motor( + net: pandapowerNet, + bus: Int, + pn_mech_mw: Float, + cos_phi: Float, + efficiency_percent: Float = 100.0, + loading_percent: Float = 100.0, + name: str | None = None, + lrc_pu: Float = ..., + scaling: Float = 1.0, + vn_kv: Float = ..., + rx: Float = ..., + index: Int | None = None, + in_service: Bool = True, + cos_phi_n: Float = ..., + efficiency_n_percent: Float = ..., + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/network_create.pyi b/stubs/pandapower-stubs/create/network_create.pyi new file mode 100755 index 0000000..1f5a097 --- /dev/null +++ b/stubs/pandapower-stubs/create/network_create.pyi @@ -0,0 +1,4 @@ +from pandapower._typing import Bool, Float +from pandapower.auxiliary import pandapowerNet + +def create_empty_network(name: str = "", f_hz: Float = 50.0, sn_mva: Float = 1, add_stdtypes: Bool = True) -> pandapowerNet: ... diff --git a/stubs/pandapower-stubs/create/sgen_create.pyi b/stubs/pandapower-stubs/create/sgen_create.pyi new file mode 100755 index 0000000..7775177 --- /dev/null +++ b/stubs/pandapower-stubs/create/sgen_create.pyi @@ -0,0 +1,85 @@ +from collections.abc import Collection +from typing import Literal + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet +from pandapower.pp_types import GeneratorType + +def create_sgen( + net: pandapowerNet, + bus: Int, + p_mw: Float, + q_mvar: Float = 0, + sn_mva: Float = ..., + name: str | None = None, + index: Int | None = None, + scaling: Float = 1.0, + type: Literal["wye", "delta", "motor"] | None = "wye", # TODO: is "motor" valid here? + in_service: Bool = True, + max_p_mw: Float = ..., + min_p_mw: Float = ..., + max_q_mvar: Float = ..., + min_q_mvar: Float = ..., + controllable: Bool | float = ..., # float because default value is nan + k: Float = ..., + rx: Float = ..., + id_q_capability_characteristic: Int | None = None, + reactive_capability_curve: Bool = False, + curve_style: str | None = None, + current_source: Bool = True, + generator_type: GeneratorType | None = None, + max_ik_ka: Float = ..., + kappa: Float = ..., + lrc_pu: Float = ..., + **kwargs, +) -> np.int64: ... +def create_sgens( + net: pandapowerNet, + buses: Collection[Int], + p_mw: ScalarOrVector[Float], + q_mvar: ScalarOrVector[Float] = 0, + sn_mva: ScalarOrVector[Float] = ..., + name: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + scaling: ScalarOrVector[Float] = 1.0, + type: ScalarOrVector[Literal["wye", "delta", "motor"]] | None = "wye", + in_service: ScalarOrVector[Bool] = True, + max_p_mw: ScalarOrVector[Float] = ..., + min_p_mw: ScalarOrVector[Float] = ..., + max_q_mvar: ScalarOrVector[Float] = ..., + min_q_mvar: ScalarOrVector[Float] = ..., + controllable: ScalarOrVector[Bool] | float = ..., # float because default value is nan + k: ScalarOrVector[Float] = ..., + rx: ScalarOrVector[Float] = ..., + id_q_capability_characteristic: ScalarOrVector[Int] | None = None, + reactive_capability_curve: ScalarOrVector[Bool] = False, + curve_style: ScalarOrVector[str] | None = None, + current_source: ScalarOrVector[Bool] = True, + generator_type: ScalarOrVector[GeneratorType] = "current_source", + max_ik_ka: ScalarOrVector[Float] = ..., + kappa: ScalarOrVector[Float] = ..., + lrc_pu: ScalarOrVector[Float] = ..., + **kwargs, +) -> Array1D[np.int64]: ... +def create_asymmetric_sgen( + net: pandapowerNet, + bus: Int, + p_a_mw: Float = 0, + p_b_mw: Float = 0, + p_c_mw: Float = 0, + q_a_mvar: Float = 0, + q_b_mvar: Float = 0, + q_c_mvar: Float = 0, + sn_mva: Float = ..., + name: str | None = None, + index: Int | None = None, + scaling: Float = 1.0, + type: Literal["wye", "delta"] = "wye", + in_service: Bool = True, + **kwargs, +) -> np.int64: ... +def create_sgen_from_cosphi( + net: pandapowerNet, bus: Int, sn_mva: Float, cos_phi: Float, mode: Literal["underexcited", "overexcited"], **kwargs +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/shunt_create.pyi b/stubs/pandapower-stubs/create/shunt_create.pyi new file mode 100755 index 0000000..7b66fa1 --- /dev/null +++ b/stubs/pandapower-stubs/create/shunt_create.pyi @@ -0,0 +1,141 @@ +from collections.abc import Collection +from typing import Literal + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet + +def create_shunt( + net: pandapowerNet, + bus: Int, + q_mvar: Float, + p_mw: Float = 0.0, + vn_kv: Float | None = None, + step: Int = 1, + max_step: Int = 1, + name: str | None = None, + step_dependency_table: Bool = False, + id_characteristic_table: Int | None = None, + in_service: Bool = True, + index: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_shunts( + net: pandapowerNet, + buses: Collection[Int], + q_mvar: ScalarOrVector[Float], + p_mw: ScalarOrVector[Float] = 0.0, + vn_kv: ScalarOrVector[Float] | None = None, + step: ScalarOrVector[Int] = 1, + max_step: ScalarOrVector[Int] = 1, + name: ScalarOrVector[str] | None = None, + step_dependency_table: ScalarOrVector[Bool] = False, + id_characteristic_table: ScalarOrVector[Int] | None = None, + in_service: ScalarOrVector[Bool] = True, + index: Collection[Int] | None = None, + **kwargs, +) -> Array1D[np.int64]: ... +def create_shunt_as_capacitor( + net: pandapowerNet, + bus: Int, + q_mvar: Float, + loss_factor: Float, + *, + # keywords passed to create_shunt extracted from **kwargs + vn_kv: Float | None = None, + step: Int = 1, + max_step: Int = 1, + name: str | None = None, + step_dependency_table: Bool = False, + id_characteristic_table: Int | None = None, + in_service: Bool = True, + index: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_svc( + net: pandapowerNet, + bus: Int, + x_l_ohm: Float, + x_cvar_ohm: Float, + set_vm_pu: Float, + thyristor_firing_angle_degree: Float, + name: str | None = None, + controllable: Bool = True, + in_service: Bool = True, + index: Int | None = None, + min_angle_degree: Float = 90, + max_angle_degree: Float = 180, + **kwargs, +) -> np.int64: ... +def create_ssc( + net: pandapowerNet, + bus: Int, + r_ohm: Float, + x_ohm: Float, + set_vm_pu: Float = 1.0, + vm_internal_pu: Float = 1.0, + va_internal_degree: Float = 0.0, + name: str | None = None, + controllable: Bool = True, + in_service: Bool = True, + index: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_b2b_vsc( + net: pandapowerNet, + bus: Int, + bus_dc_plus: Int, + bus_dc_minus: Int, + r_ohm: Float, + x_ohm: Float, + r_dc_ohm: Float, + pl_dc_mw: Float = 0.0, + control_mode_ac: Literal["vm_pu", "q_mvar", "slack"] = "vm_pu", + control_value_ac: Float = 1.0, + control_mode_dc: Literal["vm_pu", "p_mw"] = "p_mw", + control_value_dc: Float = 0.0, + name: str | None = None, + controllable: Bool = True, + in_service: Bool = True, + index: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_bi_vsc( + net: pandapowerNet, + bus: Int, + bus_dc_plus: Int, + bus_dc_minus: Int, + r_ohm: Float, + x_ohm: Float, + r_dc_ohm: Float, + pl_dc_mw: Float = 0.0, + control_mode_ac: Literal["vm_pu", "q_mvar", "slack"] = "vm_pu", + control_value_ac: Float = 1.0, + control_mode_dc: Literal["vm_pu", "p_mw"] = "p_mw", + control_value_dc: Float = 0.0, + name: str | None = None, + controllable: Bool = True, + in_service: Bool = True, + index: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_vsc( + net: pandapowerNet, + bus: Int, + bus_dc: Int, + r_ohm: Float, + x_ohm: Float, + r_dc_ohm: Float, + pl_dc_mw: Float = 0.0, + control_mode_ac: Literal["vm_pu", "q_mvar"] = "vm_pu", + control_value_ac: Float = 1.0, + control_mode_dc: Literal["vm_pu", "p_mw"] = "p_mw", + control_value_dc: Float = 0.0, + name: str | None = None, + controllable: Bool = True, + in_service: Bool = True, + index: Int | None = None, + ref_bus: Int | None = None, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/source_create.pyi b/stubs/pandapower-stubs/create/source_create.pyi new file mode 100755 index 0000000..9fa8fee --- /dev/null +++ b/stubs/pandapower-stubs/create/source_create.pyi @@ -0,0 +1,15 @@ +import numpy as np + +from pandapower._typing import Bool, Float, Int +from pandapower.auxiliary import pandapowerNet + +def create_source_dc( + net: pandapowerNet, + bus_dc: Int, + vm_pu: Float = 1.0, + index: Int | None = None, + name: str | None = None, + in_service: Bool = True, + type: str | None = None, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/create/storage_create.pyi b/stubs/pandapower-stubs/create/storage_create.pyi new file mode 100755 index 0000000..2c93e09 --- /dev/null +++ b/stubs/pandapower-stubs/create/storage_create.pyi @@ -0,0 +1,49 @@ +from collections.abc import Collection + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet + +def create_storage( + net: pandapowerNet, + bus: Int, + p_mw: Float, + max_e_mwh: Float, + q_mvar: Float = 0, + sn_mva: Float = ..., + soc_percent: Float = ..., + min_e_mwh: Float = 0.0, + name: str | None = None, + index: Int | None = None, + scaling: Float = 1.0, + type: str | None = None, + in_service: Bool = True, + max_p_mw: Float = ..., + min_p_mw: Float = ..., + max_q_mvar: Float = ..., + min_q_mvar: Float = ..., + controllable: Bool | float = ..., # float because default value is nan + **kwargs, +) -> np.int64: ... +def create_storages( + net: pandapowerNet, + buses: Collection[Int], + p_mw: ScalarOrVector[Float], + max_e_mwh: ScalarOrVector[Float], + q_mvar: ScalarOrVector[Float] = 0, + sn_mva: ScalarOrVector[Float] = ..., + soc_percent: ScalarOrVector[Float] = ..., + min_e_mwh: ScalarOrVector[Float] = 0.0, + name: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + scaling: ScalarOrVector[Float] = 1.0, + type: ScalarOrVector[str] | None = None, + in_service: ScalarOrVector[Bool] = True, + max_p_mw: ScalarOrVector[Float] = ..., + min_p_mw: ScalarOrVector[Float] = ..., + max_q_mvar: ScalarOrVector[Float] = ..., + min_q_mvar: ScalarOrVector[Float] = ..., + controllable: ScalarOrVector[Bool] | float = ..., # float because default value is nan + **kwargs, +) -> Array1D[np.int64]: ... diff --git a/stubs/pandapower-stubs/create/switch_create.pyi b/stubs/pandapower-stubs/create/switch_create.pyi new file mode 100755 index 0000000..1839f65 --- /dev/null +++ b/stubs/pandapower-stubs/create/switch_create.pyi @@ -0,0 +1,34 @@ +from collections.abc import Collection +from typing import Literal + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet + +def create_switch( + net: pandapowerNet, + bus: Int, + element: Int, + et: Literal["l", "t", "t3", "b"], + closed: Bool = True, + type: Literal["LS", "CB", "LBS", "DS"] | None = None, + name: str | None = None, + index: Int | None = None, + z_ohm: Float = 0, + in_ka: Float | None = ..., + **kwargs, +) -> np.int64: ... +def create_switches( + net: pandapowerNet, + buses: Collection[Int], + elements: Collection[Int], + et: ScalarOrVector[Literal["l", "t", "t3", "b"]], + closed: ScalarOrVector[Bool] = True, + type: ScalarOrVector[Literal["LS", "CB", "LBS", "DS"]] | None = None, + name: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + z_ohm: ScalarOrVector[Float] = 0, + in_ka: ScalarOrVector[Float] | None = ..., + **kwargs, +) -> Array1D[np.int64]: ... diff --git a/stubs/pandapower-stubs/create/trafo_create.pyi b/stubs/pandapower-stubs/create/trafo_create.pyi new file mode 100755 index 0000000..27c25c5 --- /dev/null +++ b/stubs/pandapower-stubs/create/trafo_create.pyi @@ -0,0 +1,268 @@ +from collections.abc import Collection + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet +from pandapower.pp_types import HVLVType, HVMVLVType, TapChangerWithTabularType + +def create_transformer( + net: pandapowerNet, + hv_bus: Int, + lv_bus: Int, + std_type: str, + name: str | None = None, + tap_pos: Int | float = ..., # float because default value is nan + in_service: Bool = True, + index: Int | None = None, + max_loading_percent: Float = ..., + parallel: Int = 1, + df: Float = 1.0, + tap_changer_type: TapChangerWithTabularType | None = None, + tap_dependency_table: Bool = False, + id_characteristic_table: Int | None = None, + pt_percent: Float = ..., + oltc: Bool = False, + xn_ohm: Float = ..., + tap2_pos: Int | float = ..., # float because default value is nan + **kwargs, +) -> np.int64: ... +def create_transformers( + net: pandapowerNet, + hv_buses: Collection[Int], + lv_buses: Collection[Int], + std_type: str, + name: ScalarOrVector[str] | None = None, + tap_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan + in_service: ScalarOrVector[Bool] = True, + index: Collection[Int] | None = None, + max_loading_percent: ScalarOrVector[Float] = ..., + parallel: ScalarOrVector[Int] = 1, + df: ScalarOrVector[Float] = 1.0, + tap_changer_type: ScalarOrVector[TapChangerWithTabularType] | None = None, + tap_dependency_table: ScalarOrVector[Bool] = False, + id_characteristic_table: ScalarOrVector[Int] | None = None, + pt_percent: ScalarOrVector[Float] = ..., + oltc: ScalarOrVector[Bool] = False, + xn_ohm: ScalarOrVector[Float] = ..., + tap2_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan + **kwargs, +) -> Array1D[np.int64]: ... +def create_transformer_from_parameters( + net: pandapowerNet, + hv_bus: Int, + lv_bus: Int, + sn_mva: Float, + vn_hv_kv: Float, + vn_lv_kv: Float, + vkr_percent: Float, + vk_percent: Float, + pfe_kw: Float, + i0_percent: Float, + shift_degree: Float = 0, + tap_side: HVLVType | None = None, + tap_neutral: Int | float = ..., # float because default value is nan + tap_max: Int | float = ..., # float because default value is nan + tap_min: Int | float = ..., # float because default value is nan + tap_step_percent: Float = ..., + tap_step_degree: Float = ..., + tap_pos: Int | float = ..., # float because default value is nan + tap_changer_type: TapChangerWithTabularType | None = None, + id_characteristic_table: Int | None = None, + in_service: Bool = True, + name: str | None = None, + vector_group: str | None = None, + index: Int | None = None, + max_loading_percent: Float = ..., + parallel: Int = 1, + df: Float = 1.0, + vk0_percent: Float = ..., + vkr0_percent: Float = ..., + mag0_percent: Float = ..., + mag0_rx: Float = ..., + si0_hv_partial: Float = ..., + pt_percent: Float = ..., + oltc: Bool = False, + tap_dependency_table: Bool = False, + xn_ohm: Float = ..., + tap2_side: HVLVType | None = None, + tap2_neutral: Int | float = ..., # float because default value is nan + tap2_max: Int | float = ..., # float because default value is nan + tap2_min: Int | float = ..., # float because default value is nan + tap2_step_percent: Float = ..., + tap2_step_degree: Float = ..., + tap2_pos: Int | float = ..., # float because default value is nan + tap2_changer_type: TapChangerWithTabularType | None = None, + **kwargs, +) -> np.int64: ... +def create_transformers_from_parameters( + net: pandapowerNet, + hv_buses: Collection[Int], + lv_buses: Collection[Int], + sn_mva: ScalarOrVector[Float], + vn_hv_kv: ScalarOrVector[Float], + vn_lv_kv: ScalarOrVector[Float], + vkr_percent: ScalarOrVector[Float], + vk_percent: ScalarOrVector[Float], + pfe_kw: ScalarOrVector[Float], + i0_percent: ScalarOrVector[Float], + shift_degree: ScalarOrVector[Float] = 0, + tap_side: ScalarOrVector[HVLVType] | None = None, + tap_neutral: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap_max: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap_min: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap_step_percent: ScalarOrVector[Float] = ..., + tap_step_degree: ScalarOrVector[Float] = ..., + tap_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap_changer_type: ScalarOrVector[TapChangerWithTabularType] | None = None, + id_characteristic_table: ScalarOrVector[Int] | None = None, + in_service: ScalarOrVector[Bool] = True, + name: ScalarOrVector[str] | None = None, + vector_group: ScalarOrVector[str] | None = None, + index: Collection[Int] | None = None, + max_loading_percent: ScalarOrVector[Float] = ..., + parallel: ScalarOrVector[Int] = 1, + df: ScalarOrVector[Float] = 1.0, + vk0_percent: ScalarOrVector[Float] = ..., + vkr0_percent: ScalarOrVector[Float] = ..., + mag0_percent: ScalarOrVector[Float] = ..., + mag0_rx: ScalarOrVector[Float] = ..., + si0_hv_partial: ScalarOrVector[Float] = ..., + pt_percent: ScalarOrVector[Float] = ..., + oltc: ScalarOrVector[Bool] = False, + tap_dependency_table: ScalarOrVector[Bool] = False, + xn_ohm: ScalarOrVector[Float] = ..., + tap2_side: ScalarOrVector[HVLVType] | None = None, + tap2_neutral: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap2_max: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap2_min: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap2_step_percent: ScalarOrVector[Float] = ..., + tap2_step_degree: ScalarOrVector[Float] = ..., + tap2_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap2_changer_type: ScalarOrVector[TapChangerWithTabularType] | None = None, + **kwargs, +) -> Array1D[np.int64]: ... +def create_transformer3w( + net: pandapowerNet, + hv_bus: Int, + mv_bus: Int, + lv_bus: Int, + std_type: str, + name: str | None = None, + tap_pos: Int | float = ..., # float because default value is nan + in_service: Bool = True, + index: Int | None = None, + max_loading_percent: Float = ..., + tap_changer_type: TapChangerWithTabularType | None = None, + tap_at_star_point: Bool = False, + tap_dependency_table: Bool = False, + id_characteristic_table: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_transformers3w( + net: pandapowerNet, + hv_buses: Collection[Int], + mv_buses: Collection[Int], + lv_buses: Collection[Int], + std_type: str, + tap_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan + name: ScalarOrVector[str] | None = None, + in_service: ScalarOrVector[Bool] = True, + index: Collection[Int] | None = None, + max_loading_percent: ScalarOrVector[Float] = ..., + tap_at_star_point: ScalarOrVector[Bool] = False, + tap_changer_type: ScalarOrVector[TapChangerWithTabularType] | None = None, + tap_dependency_table: ScalarOrVector[Bool] = False, + id_characteristic_table: ScalarOrVector[Int] | None = None, + **kwargs, +) -> Array1D[np.int64]: ... +def create_transformer3w_from_parameters( + net: pandapowerNet, + hv_bus: Int, + mv_bus: Int, + lv_bus: Int, + vn_hv_kv: Float, + vn_mv_kv: Float, + vn_lv_kv: Float, + sn_hv_mva: Float, + sn_mv_mva: Float, + sn_lv_mva: Float, + vk_hv_percent: Float, + vk_mv_percent: Float, + vk_lv_percent: Float, + vkr_hv_percent: Float, + vkr_mv_percent: Float, + vkr_lv_percent: Float, + pfe_kw: Float, + i0_percent: Float, + shift_mv_degree: Float = 0.0, + shift_lv_degree: Float = 0.0, + tap_side: HVMVLVType | None = None, + tap_step_percent: Float = ..., + tap_step_degree: Float = ..., + tap_pos: Int | float = ..., # float because default value is nan + tap_neutral: Int | float = ..., # float because default value is nan + tap_max: Int | float = ..., # float because default value is nan + tap_changer_type: TapChangerWithTabularType | None = None, + tap_min: Int | float = ..., # float because default value is nan + name: str | None = None, + in_service: Bool = True, + index: Int | None = None, + max_loading_percent: Float = ..., + tap_at_star_point: Bool = False, + vk0_hv_percent: Float = ..., + vk0_mv_percent: Float = ..., + vk0_lv_percent: Float = ..., + vkr0_hv_percent: Float = ..., + vkr0_mv_percent: Float = ..., + vkr0_lv_percent: Float = ..., + vector_group: str | None = None, + tap_dependency_table: Bool = False, + id_characteristic_table: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_transformers3w_from_parameters( + net: pandapowerNet, + hv_buses: Collection[Int], + mv_buses: Collection[Int], + lv_buses: Collection[Int], + vn_hv_kv: ScalarOrVector[Float], + vn_mv_kv: ScalarOrVector[Float], + vn_lv_kv: ScalarOrVector[Float], + sn_hv_mva: ScalarOrVector[Float], + sn_mv_mva: ScalarOrVector[Float], + sn_lv_mva: ScalarOrVector[Float], + vk_hv_percent: ScalarOrVector[Float], + vk_mv_percent: ScalarOrVector[Float], + vk_lv_percent: ScalarOrVector[Float], + vkr_hv_percent: ScalarOrVector[Float], + vkr_mv_percent: ScalarOrVector[Float], + vkr_lv_percent: ScalarOrVector[Float], + pfe_kw: ScalarOrVector[Float], + i0_percent: ScalarOrVector[Float], + shift_mv_degree: ScalarOrVector[Float] = 0.0, + shift_lv_degree: ScalarOrVector[Float] = 0.0, + tap_side: ScalarOrVector[HVMVLVType] | None = None, + tap_step_percent: ScalarOrVector[Float] = ..., + tap_step_degree: ScalarOrVector[Float] = ..., + tap_pos: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap_neutral: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap_max: ScalarOrVector[Int] | float = ..., # float because default value is nan + tap_min: ScalarOrVector[Int] | float = ..., # float because default value is nan + name: ScalarOrVector[str] | None = None, + in_service: ScalarOrVector[Bool] = True, + index: Collection[Int] | None = None, + max_loading_percent: ScalarOrVector[Float] = ..., + tap_at_star_point: ScalarOrVector[Bool] = False, + tap_changer_type: ScalarOrVector[TapChangerWithTabularType] | None = None, + vk0_hv_percent: ScalarOrVector[Float] = ..., + vk0_mv_percent: ScalarOrVector[Float] = ..., + vk0_lv_percent: ScalarOrVector[Float] = ..., + vkr0_hv_percent: ScalarOrVector[Float] = ..., + vkr0_mv_percent: ScalarOrVector[Float] = ..., + vkr0_lv_percent: ScalarOrVector[Float] = ..., + vector_group: ScalarOrVector[str] | None = None, + tap_dependency_table: ScalarOrVector[Bool] = False, + id_characteristic_table: ScalarOrVector[Int] | None = None, + **kwargs, +) -> Array1D[np.int64]: ... diff --git a/stubs/pandapower-stubs/create/ward_create.pyi b/stubs/pandapower-stubs/create/ward_create.pyi new file mode 100755 index 0000000..5fc7328 --- /dev/null +++ b/stubs/pandapower-stubs/create/ward_create.pyi @@ -0,0 +1,47 @@ +from collections.abc import Collection + +import numpy as np + +from pandapower._typing import Array1D, Bool, Float, Int, ScalarOrVector +from pandapower.auxiliary import pandapowerNet + +def create_ward( + net: pandapowerNet, + bus: Int, + ps_mw: Float, + qs_mvar: Float, + pz_mw: Float, + qz_mvar: Float, + name: str | None = None, + in_service: Bool = True, + index: Int | None = None, + **kwargs, +) -> np.int64: ... +def create_wards( + net: pandapowerNet, + buses: Collection[Int], + ps_mw: ScalarOrVector[Float], + qs_mvar: ScalarOrVector[Float], + pz_mw: ScalarOrVector[Float], + qz_mvar: ScalarOrVector[Float], + name: ScalarOrVector[str] | None = None, + in_service: ScalarOrVector[Bool] = True, + index: Collection[Int] | None = None, + **kwargs, +) -> Array1D[np.int64]: ... +def create_xward( + net: pandapowerNet, + bus: Int, + ps_mw: Float, + qs_mvar: Float, + pz_mw: Float, + qz_mvar: Float, + r_ohm: Float, + x_ohm: Float, + vm_pu: Float, + in_service: Bool = True, + name: str | None = None, + index: Int | None = None, + slack_weight: Float = 0.0, + **kwargs, +) -> np.int64: ... diff --git a/stubs/pandapower-stubs/diagnostic.pyi b/stubs/pandapower-stubs/diagnostic.pyi deleted file mode 100644 index e640a37..0000000 --- a/stubs/pandapower-stubs/diagnostic.pyi +++ /dev/null @@ -1,66 +0,0 @@ -from typing import Any, Literal, SupportsIndex, overload as typing_overload - -import pandas as pd - -from pandapower.auxiliary import pandapowerNet - -log_message_sep: str -expected_exceptions: tuple[type[Exception], ...] - -@typing_overload -def diagnostic( - net: pandapowerNet, - report_style: Literal["detailed", "compact", "None"] = "detailed", - warnings_only: bool = False, - return_result_dict: Literal[True] = True, - overload_scaling_factor: float = 0.001, - min_r_ohm: float = 0.001, - min_x_ohm: float = 0.001, - max_r_ohm: float = 100, - max_x_ohm: float = 100, - nom_voltage_tolerance: float = 0.3, - numba_tolerance: float = 1e-05, - **kwargs, -) -> dict[str, Any]: ... -@typing_overload -def diagnostic( - net: pandapowerNet, - *, - report_style: Literal["detailed", "compact", "None"] = "detailed", - warnings_only: bool = False, - return_result_dict: Literal[False], - overload_scaling_factor: float = 0.001, - min_r_ohm: float = 0.001, - min_x_ohm: float = 0.001, - max_r_ohm: float = 100, - max_x_ohm: float = 100, - nom_voltage_tolerance: float = 0.3, - numba_tolerance: float = 1e-05, - **kwargs, -) -> None: ... -def check_greater_zero[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... -def check_greater_equal_zero[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... -def check_less_zero[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... -def check_less_15[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... -def check_less_equal_zero[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... -def check_boolean[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... -def check_pos_int[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... -def check_number[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... -def check_greater_zero_less_equal_one(element: pd.Series[Any], element_index: int, column: str) -> int | None: ... -def check_switch_type(element: pd.Series[Any], element_index: int, column: str) -> int | None: ... -def invalid_values(net: pandapowerNet) -> dict[str, list[tuple[int, str, str, Any]]] | None: ... -def no_ext_grid(net: pandapowerNet) -> bool | None: ... -def multiple_voltage_controlling_elements_per_bus(net: pandapowerNet) -> dict[str, list[int]] | None: ... -def overload(net: pandapowerNet, overload_scaling_factor: float) -> dict[str, bool] | None: ... -def wrong_switch_configuration(net: pandapowerNet, **kwargs) -> bool | None: ... -def missing_bus_indices(net: pandapowerNet) -> dict[str, list[tuple[int, str, int]]] | None: ... -def different_voltage_levels_connected(net: pandapowerNet) -> dict[str, list[int]] | None: ... -def implausible_impedance_values( - net: pandapowerNet, min_r_ohm: float, min_x_ohm: float, max_r_ohm: float, max_x_ohm: float -) -> list[dict[str, Any]] | None: ... -def nominal_voltages_dont_match(net: pandapowerNet, nom_voltage_tolerance: float) -> dict[str, dict[str, list[int]]] | None: ... -def disconnected_elements(net: pandapowerNet) -> list[dict[str, list[int]]] | None: ... -def wrong_reference_system(net: pandapowerNet) -> dict[str, list[int]] | None: ... -def numba_comparison(net: pandapowerNet, numba_tolerance: float, **kwargs) -> dict[str, dict[str, float]] | None: ... -def deviation_from_std_type(net: pandapowerNet) -> dict[str, dict[int, dict[str, Any]]] | None: ... -def parallel_switches(net: pandapowerNet) -> list[list[int]] | None: ... diff --git a/stubs/pandapower-stubs/diagnostic/__init__.pyi b/stubs/pandapower-stubs/diagnostic/__init__.pyi new file mode 100644 index 0000000..5455839 --- /dev/null +++ b/stubs/pandapower-stubs/diagnostic/__init__.pyi @@ -0,0 +1,2 @@ +from pandapower.diagnostic.diagnostic import Diagnostic as Diagnostic +from pandapower.diagnostic.diagnostic_helpers import DiagnosticFunction as DiagnosticFunction, diagnostic as diagnostic diff --git a/stubs/pandapower-stubs/diagnostic/diagnostic.pyi b/stubs/pandapower-stubs/diagnostic/diagnostic.pyi new file mode 100644 index 0000000..943c7f7 --- /dev/null +++ b/stubs/pandapower-stubs/diagnostic/diagnostic.pyi @@ -0,0 +1,39 @@ +from typing import Any, Literal, overload + +from pandapower.auxiliary import ADict +from pandapower.diagnostic.diagnostic_helpers import DiagnosticFunction + +log_format_len: int +log_message_sep: str + +class Diagnostic: + kwargs: dict[str, Any] + net: ADict[Any] | None + diag_results: dict[str, Any] + diag_errors: dict[str, Any] + def __init__(self, add_default_functions: bool = True) -> None: ... + def register_function( + self, diagnostic_function: DiagnosticFunction[Any, Any], argument_names: list[str] | None, name: str | None + ) -> None: ... + @overload + def diagnose_network( + self, + net: ADict[Any], + report_style: Literal["detailed", "compact"] | None = "detailed", + warnings_only: bool = False, + return_result_dict: Literal[True] = True, + **kwargs, + ) -> dict[str, Any]: ... + @overload + def diagnose_network( + self, + net: ADict[Any], + *, + report_style: Literal["detailed", "compact"] | None = "detailed", + warnings_only: bool = False, + return_result_dict: Literal[False], + **kwargs, + ) -> None: ... + def compact_report(self, warnings_only: bool = False) -> None: ... + def detailed_report(self, warnings_only: bool = False) -> None: ... + def report(self, compact_report: bool = True, warnings_only: bool = False) -> None: ... diff --git a/stubs/pandapower-stubs/diagnostic/diagnostic_functions.pyi b/stubs/pandapower-stubs/diagnostic/diagnostic_functions.pyi new file mode 100644 index 0000000..76702d5 --- /dev/null +++ b/stubs/pandapower-stubs/diagnostic/diagnostic_functions.pyi @@ -0,0 +1,85 @@ +from typing import Any + +from pandapower.auxiliary import pandapowerNet +from pandapower.diagnostic.diagnostic_helpers import DiagnosticFunction + +expected_exceptions: tuple[type[Exception], ...] +default_argument_values: dict[str, float] + +class InvalidValues(DiagnosticFunction[pandapowerNet, dict[str, Any]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, Any] | None: ... + def report(self, error: Exception | None, results: dict[str, Any] | None) -> None: ... + +class NoExtGrid(DiagnosticFunction[pandapowerNet, bool]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> bool | None: ... + def report(self, error: Exception | None, results: bool | None) -> None: ... + +class MultipleVoltageControllingElementsPerBus(DiagnosticFunction[pandapowerNet, dict[str, list[Any]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, list[Any]] | None: ... + def report(self, error: Exception | None, results: dict[str, list[Any]] | None) -> None: ... + +class Overload(DiagnosticFunction[pandapowerNet, dict[str, bool]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, bool] | None: ... + def report(self, error: Exception | None, results: dict[str, bool] | None) -> None: ... + +class WrongLineCapacitance(DiagnosticFunction[pandapowerNet, bool]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> bool | None: ... + def report(self, error: Exception | None, results: bool | None) -> None: ... + +class SubNetProblemTest(DiagnosticFunction[pandapowerNet, dict[str, bool]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, bool] | None: ... + def report(self, error: Exception | None, results: dict[str, bool] | None) -> None: ... + +class OptimisticPowerflow(DiagnosticFunction[pandapowerNet, dict[str, bool]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, bool] | None: ... + def report(self, error: Exception | None, results: dict[str, bool] | None) -> None: ... + +class SlackGenPlacement(DiagnosticFunction[pandapowerNet, dict[str, float]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, float] | None: ... + def report(self, error: Exception | None, results: dict[str, float] | None) -> None: ... + +class TestContinuousBusIndices(DiagnosticFunction[pandapowerNet, bool]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> bool | None: ... + def report(self, error: Exception | None, results: bool | None) -> None: ... + +class WrongSwitchConfiguration(DiagnosticFunction[pandapowerNet, bool]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> bool | None: ... + def report(self, error: Exception | None, results: bool | None) -> None: ... + +class MissingBusIndices(DiagnosticFunction[pandapowerNet, dict[str, list[tuple[int, str, int]]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, list[tuple[int, str, int]]] | None: ... + def report(self, error: Exception | None, results: dict[str, list[tuple[int, str, int]]] | None) -> None: ... + +class DifferentVoltageLevelsConnected(DiagnosticFunction[pandapowerNet, dict[str, list[int]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, list[int]] | None: ... + def report(self, error: Exception | None, results: dict[str, list[int]] | None) -> None: ... + +class ImplausibleImpedanceValues(DiagnosticFunction[pandapowerNet, list[dict[str, list[int]]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> list[dict[str, list[int]]] | None: ... + def report(self, error: Exception | None, results: list[dict[str, list[int]]] | None) -> None: ... + +class NominalVoltagesMismatch(DiagnosticFunction[pandapowerNet, dict[str, dict[str, list[int]]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, dict[str, list[int]]] | None: ... + def report(self, error: Exception | None, results: dict[str, dict[str, list[int]]] | None) -> None: ... + +class DisconnectedElements(DiagnosticFunction[pandapowerNet, list[dict[str, list[int]]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> list[dict[str, list[int]]] | None: ... + def report(self, error: Exception | None, results: list[dict[str, list[int]]] | None) -> None: ... + +class WrongReferenceSystem(DiagnosticFunction[pandapowerNet, dict[str, list[int]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, list[int]] | None: ... + def report(self, error: Exception | None, results: dict[str, list[int]] | None) -> None: ... + +class NumbaComparison(DiagnosticFunction[pandapowerNet, dict[str, dict[str, float]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, dict[str, float]] | None: ... + def report(self, error: Exception | None, results: dict[str, dict[str, float]] | None) -> None: ... + +class DeviationFromStdType(DiagnosticFunction[pandapowerNet, dict[str, dict[str, dict[int, dict[str, Any]]]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> dict[str, dict[str, dict[int, dict[str, Any]]]] | None: ... + def report(self, error: Exception | None, results: dict[str, dict[str, dict[int, dict[str, Any]]]] | None) -> None: ... + +class ParallelSwitches(DiagnosticFunction[pandapowerNet, list[list[int]]]): + def diagnostic(self, net: pandapowerNet, **kwargs) -> list[list[int]] | None: ... + def report(self, error: Exception | None, results: list[list[int]] | None) -> None: ... + +default_diagnostic_functions: list[tuple[str, DiagnosticFunction[pandapowerNet, Any], list[str] | None]] diff --git a/stubs/pandapower-stubs/diagnostic/diagnostic_helpers.pyi b/stubs/pandapower-stubs/diagnostic/diagnostic_helpers.pyi new file mode 100644 index 0000000..9537a1a --- /dev/null +++ b/stubs/pandapower-stubs/diagnostic/diagnostic_helpers.pyi @@ -0,0 +1,63 @@ +import logging +from abc import ABC, abstractmethod +from collections import defaultdict +from typing import Any, Literal, SupportsIndex, overload + +import pandas as pd + +from pandapower.auxiliary import ADict, pandapowerNet + +def add_log_level(levelno: int, levelname: str) -> None: ... + +class DiagnosticFunction[N: ADict[Any], T](ABC): + def __init__(self) -> None: ... + @abstractmethod + def diagnostic(self, net: N, **kwargs) -> T | None: ... + @abstractmethod + def report(self, error: Exception | None, results: T | None) -> None: ... + +class NotCompactFilter(logging.Filter): ... +class NotDetailedFilter(logging.Filter): ... + +class LogCount(logging.Filter): + count: defaultdict[int, int] + def __init__(self) -> None: ... + def cd_in_count(self) -> bool: ... + def reset(self) -> None: ... + +def check_boolean[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_greater_equal_zero[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_greater_zero[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_greater_zero_less_equal_one(element: pd.Series[Any], element_index: int, column: str) -> int | None: ... +def check_less_15[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_less_20[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_less_equal_zero[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_less_zero[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_number[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_pos_int[T: SupportsIndex](element: pd.Series[Any], element_index: T, column: str) -> T | None: ... +def check_switch_type(element: pd.Series[Any], element_index: int, column: str) -> int | None: ... +@overload +def diagnostic( + net: pandapowerNet, + report_style: Literal["detailed", "compact"] | None = "detailed", + warnings_only: bool = False, + return_result_dict: Literal[True] = True, + overload_scaling_factor: float = 0.001, + lines_min_length_km: float = 0.0, + lines_min_z_ohm: float = 0.0, + nom_voltage_tolerance: float = 0.3, + **kwargs, +) -> dict[str, Any]: ... +@overload +def diagnostic( + net: pandapowerNet, + *, + report_style: Literal["detailed", "compact"] | None = "detailed", + warnings_only: bool = False, + return_result_dict: Literal[False], + overload_scaling_factor: float = 0.001, + lines_min_length_km: float = 0.0, + lines_min_z_ohm: float = 0.0, + nom_voltage_tolerance: float = 0.3, + **kwargs, +) -> None: ... diff --git a/stubs/pandapower-stubs/diagnostic_reports.pyi b/stubs/pandapower-stubs/diagnostic_reports.pyi deleted file mode 100644 index 1c4bec0..0000000 --- a/stubs/pandapower-stubs/diagnostic_reports.pyi +++ /dev/null @@ -1,43 +0,0 @@ -from _typeshed import Incomplete - -from pandapower.auxiliary import pandapowerNet - -log_message_sep: str - -def diagnostic_report( - net: pandapowerNet, - diag_results: dict[str, Incomplete], - diag_errors: dict[str, Incomplete], - diag_params: dict[str, Incomplete], - compact_report: bool, - warnings_only: bool, -) -> None: ... - -class DiagnosticReports: - net: pandapowerNet - diag_results: dict[str, Incomplete] - diag_errors: dict[str, Incomplete] - diag_params: dict[str, Incomplete] - compact_report: bool - def __init__( - self, - net: pandapowerNet, - diag_results: dict[str, Incomplete], - diag_errors: dict[str, Incomplete], - diag_params: dict[str, Incomplete], - compact_report: bool, - ) -> None: ... - def report_disconnected_elements(self) -> None: ... - def report_different_voltage_levels_connected(self) -> None: ... - def report_impedance_values_close_to_zero(self) -> None: ... - def report_nominal_voltages_dont_match(self) -> None: ... - def report_invalid_values(self) -> None: ... - def report_overload(self) -> None: ... - def report_wrong_switch_configuration(self) -> None: ... - def report_no_ext_grid(self) -> None: ... - def report_multiple_voltage_controlling_elements_per_bus(self) -> None: ... - def report_wrong_reference_system(self) -> None: ... - def report_deviation_from_std_type(self) -> None: ... - def report_numba_comparison(self) -> None: ... - def report_parallel_switches(self) -> None: ... - def report_missing_bus_indices(self) -> None: ... diff --git a/stubs/pandapower-stubs/file_io.pyi b/stubs/pandapower-stubs/file_io.pyi index a21af86..3d07330 100644 --- a/stubs/pandapower-stubs/file_io.pyi +++ b/stubs/pandapower-stubs/file_io.pyi @@ -47,6 +47,9 @@ def from_json( # keep inline with pandapower._typing.FromJsonKwds replace_elements: Mapping[str, str] | None = None, empty_dict_like_object: MutableMapping[str, Any] | None = None, ignore_unknown_objects: bool = False, + drop_invalid_geodata: bool = False, + omit_tables: Iterable[str] | None = None, + omit_modules: Iterable[str] | None = None, ) -> pandapowerNet: ... def from_json_string( json_string: str, @@ -58,5 +61,8 @@ def from_json_string( replace_elements: Mapping[str, str] | None = None, empty_dict_like_object: MutableMapping[str, Any] | None = None, ignore_unknown_objects: bool = False, + drop_invalid_geodata: bool = False, + omit_tables: Iterable[str] | None = None, + omit_modules: Iterable[str] | None = None, ) -> pandapowerNet: ... def from_json_dict(json_dict: Mapping[str, Any]) -> pandapowerNet: ... diff --git a/stubs/pandapower-stubs/io_utils.pyi b/stubs/pandapower-stubs/io_utils.pyi index dfa0ab6..8b26c55 100644 --- a/stubs/pandapower-stubs/io_utils.pyi +++ b/stubs/pandapower-stubs/io_utils.pyi @@ -1,7 +1,7 @@ import json import numbers from _typeshed import Incomplete, ReadableBuffer, StrOrBytesPath, SupportsRead -from collections.abc import Callable, Container, Mapping +from collections.abc import Callable, Container, Iterable, Mapping from functools import singledispatch from typing import Any, Self, SupportsIndex as Int, overload @@ -13,7 +13,7 @@ import shapely from shapely.geometry.base import BaseGeometry from pandapower._typing import SupportsGeoInterface -from pandapower.auxiliary import pandapowerNet +from pandapower.auxiliary import pandapowerNet, pandapowerNet as _pandapowerNet PSYCOPG2_INSTALLED: bool cryptography_INSTALLED: bool @@ -81,13 +81,19 @@ class FromSerializableRegistry: module_name: str obj: Any d: dict[str, Any] + omit_modules: Iterable[str] | None pp_hook: Callable[..., Incomplete] def __init__( - self, obj: Any, d: dict[str, Any], pp_hook_funct: Callable[..., Incomplete], ignore_unknown_objects: bool = False + self, + obj: Any, + d: dict[str, Any], + pp_hook_funct: Callable[..., Incomplete], + ignore_unknown_objects: bool = False, + omit_modules: Iterable[str] | None = None, ) -> None: ... def Series(self) -> pd.Series[Any]: ... def DataFrame(self) -> pd.DataFrame: ... - def pandapowerNet(self) -> pandapowerNet: ... + def pandapowerNet(self) -> _pandapowerNet: ... def networkx(self) -> Incomplete: ... def method(self) -> Incomplete: ... def function(self) -> Incomplete: ... @@ -104,6 +110,8 @@ def pp_hook[D: dict[str, Any]]( empty_dict_like_object: Incomplete | None = None, registry_class: type[FromSerializableRegistry] = ..., ignore_unknown_objects: bool = False, + omit_tables: Iterable[str] | None = None, + omit_modules: Iterable[str] | None = None, ) -> D: ... def encrypt_string(s: str, key: str, compress: bool = True) -> str: ... def decrypt_string(s: str, key: str) -> str: ... diff --git a/stubs/pandapower-stubs/networks/__init__.pyi b/stubs/pandapower-stubs/networks/__init__.pyi index 452ab6c..8c43854 100644 --- a/stubs/pandapower-stubs/networks/__init__.pyi +++ b/stubs/pandapower-stubs/networks/__init__.pyi @@ -1,7 +1,7 @@ from pandapower.networks.cigre_networks import * from pandapower.networks.create_examples import * from pandapower.networks.dickert_lv_networks import * -from pandapower.networks.ieee_europen_lv_asymmetric import * +from pandapower.networks.ieee_european_lv_asymmetric import * from pandapower.networks.kerber_extreme_networks import * from pandapower.networks.kerber_networks import * from pandapower.networks.mv_oberrhein import * diff --git a/stubs/pandapower-stubs/networks/ieee_europen_lv_asymmetric.pyi b/stubs/pandapower-stubs/networks/ieee_european_lv_asymmetric.pyi similarity index 100% rename from stubs/pandapower-stubs/networks/ieee_europen_lv_asymmetric.pyi rename to stubs/pandapower-stubs/networks/ieee_european_lv_asymmetric.pyi diff --git a/stubs/pandapower-stubs/pf/runpp_3ph.pyi b/stubs/pandapower-stubs/pf/runpp_3ph.pyi index 12bc5e9..21fb8cd 100644 --- a/stubs/pandapower-stubs/pf/runpp_3ph.pyi +++ b/stubs/pandapower-stubs/pf/runpp_3ph.pyi @@ -16,7 +16,6 @@ def runpp_3ph( recycle: dict[str, bool] | None = None, check_connectivity: bool = True, switch_rx_ratio: Float = 2.0, - delta_q: Float = 0, v_debug: bool = False, **kwargs, ) -> None: ... diff --git a/stubs/pandapower-stubs/plotting/geo.pyi b/stubs/pandapower-stubs/plotting/geo.pyi index cbce629..81ce38f 100644 --- a/stubs/pandapower-stubs/plotting/geo.pyi +++ b/stubs/pandapower-stubs/plotting/geo.pyi @@ -1,28 +1,44 @@ +from _typeshed import Incomplete from collections.abc import Collection -from typing_extensions import deprecated import geojson # type: ignore[import-untyped] # https://github.com/jazzband/geojson/pull/203 from pandapower._typing import ConvertibleToCRS, Int -from pandapower.auxiliary import pandapowerNet +from pandapower.auxiliary import ADict, pandapowerNet -@deprecated("Use convert_gis_to_geojson instead. Support for geodata will be dropped.") -def convert_gis_to_geodata(net: pandapowerNet, node_geodata: bool = True, branch_geodata: bool = True) -> None: ... -@deprecated("Use convert_geodata_to_geojson instead. Support for gis will be dropped.") -def convert_geodata_to_gis( - net: pandapowerNet, epsg: int = 31467, node_geodata: bool = True, branch_geodata: bool = True, remove_xy: bool = False +def abstract_convert_crs( + net: ADict[Incomplete], epsg_in: int = 4326, epsg_out: int = 31467, component_name: str = "bus" ) -> None: ... -@deprecated("Use convert_crs instead. Networks should not use different crs for bus and line geodata.") -def convert_epsg_bus_geodata(net: pandapowerNet, epsg_in: int = 4326, epsg_out: int = 31467) -> pandapowerNet: ... def convert_crs(net: pandapowerNet, epsg_in: ConvertibleToCRS = 4326, epsg_out: ConvertibleToCRS = 31467) -> None: ... -def dump_to_geojson( - net: pandapowerNet, +def dump_to_geojson_node_branch( + net: ADict[Incomplete], + node_name: str = "bus", + branch_name: str = "line", nodes: bool | Collection[Int] = False, branches: bool | Collection[Int] = False, + include_type_id: bool = True, +) -> tuple[list[geojson.Feature], int, int]: ... +def dump_to_geojson( + net: pandapowerNet, + buses: bool | Collection[Int] = False, + lines: bool | Collection[Int] = False, switches: bool | Collection[Int] = False, trafos: bool | Collection[Int] = False, t_is_3w: bool = False, include_type_id: bool = True, ) -> geojson.FeatureCollection: ... -def convert_geodata_to_geojson(net: pandapowerNet, delete: bool = True, lonlat: bool = False) -> None: ... +def abstract_convert_geodata_to_geojson( + net: ADict[Incomplete], + node_name: str = "bus", + branch_name: str = "line", + delete: bool = True, + lonlat: bool = False, + drop_invalid_geodata: bool = True, +) -> None: ... +def convert_geodata_to_geojson( + net: pandapowerNet, delete: bool = True, lonlat: bool = False, drop_invalid_geodata: bool = True +) -> None: ... +def abstract_convert_gis_to_geojson( + net: ADict[Incomplete], node_name: str = "bus", branch_name: str = "line", delete: bool = True +) -> None: ... def convert_gis_to_geojson(net: pandapowerNet, delete: bool = True) -> None: ... diff --git a/stubs/pandapower-stubs/plotting/plotly/draw_layers.pyi b/stubs/pandapower-stubs/plotting/plotly/draw_layers.pyi new file mode 100644 index 0000000..2af00a2 --- /dev/null +++ b/stubs/pandapower-stubs/plotting/plotly/draw_layers.pyi @@ -0,0 +1,19 @@ +from collections.abc import Sequence +from pathlib import Path +from typing import Any, Literal + +import plotly.graph_objs as go # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] + +def version_check() -> None: ... +def draw_layers( + traces: Sequence[dict[str, Any]], + num_layers: int = 0, + on_map: bool = False, + map_style: str = "basic", + showlegend: bool = True, + figsize: float = 1, + aspectratio: tuple[float, float] | Literal["auto"] = "auto", + filename: str | Path | None = None, + auto_open: bool = True, + **kwargs, +) -> go.Figure: ... diff --git a/stubs/pandapower-stubs/plotting/plotly/layers_plotly.pyi b/stubs/pandapower-stubs/plotting/plotly/layers_plotly.pyi new file mode 100644 index 0000000..ec6d845 --- /dev/null +++ b/stubs/pandapower-stubs/plotting/plotly/layers_plotly.pyi @@ -0,0 +1,21 @@ +from _typeshed import SupportsGetItem +from typing import Literal + +import plotly.graph_objs as go # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] + +from pandapower.auxiliary import pandapowerNet + +def layers_plotly( + net: pandapowerNet, + bus_groups, + respect_switches: bool = True, + use_line_geo: bool | None = None, + colors_dict: SupportsGetItem[float, str] | None = None, + on_map: bool = False, + map_style: str = "basic", + figsize: float = 1, + aspectratio: tuple[float, float] | Literal["auto"] = "auto", + line_width: float = 2, + bus_size: float = 10, + auto_open: bool = True, +) -> go.Figure: ... diff --git a/stubs/pandapower-stubs/plotting/plotly/pf_res_plotly.pyi b/stubs/pandapower-stubs/plotting/plotly/pf_res_plotly.pyi index 68825ef..8e557b5 100644 --- a/stubs/pandapower-stubs/plotting/plotly/pf_res_plotly.pyi +++ b/stubs/pandapower-stubs/plotting/plotly/pf_res_plotly.pyi @@ -1,6 +1,6 @@ from typing import Literal -from plotly.graph_objs import Figure # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] +import plotly.graph_objs as go # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] from pandapower.auxiliary import pandapowerNet from pandapower.plotting.plotly.mapbox_plot import * @@ -24,4 +24,4 @@ def pf_res_plotly( filename: str = "temp-plot.html", auto_open: bool = True, zoomlevel: int = 11, -) -> Figure: ... +) -> go.Figure: ... diff --git a/stubs/pandapower-stubs/plotting/plotly/simple_plotly.pyi b/stubs/pandapower-stubs/plotting/plotly/simple_plotly.pyi index 06f3da1..9e71517 100644 --- a/stubs/pandapower-stubs/plotting/plotly/simple_plotly.pyi +++ b/stubs/pandapower-stubs/plotting/plotly/simple_plotly.pyi @@ -2,7 +2,7 @@ from collections.abc import Iterable, Mapping from typing import Any, Literal, overload import pandas as pd -from plotly.graph_objs import Figure # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] +import plotly.graph_objs as go # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] from pandapower.auxiliary import pandapowerNet from pandapower.plotting.plotly.mapbox_plot import * @@ -43,7 +43,7 @@ def simple_plotly( zoomlevel: int = 11, auto_draw_traces: Literal[True] = True, hvdc_color: str = "cyan", -) -> Figure: ... +) -> go.Figure: ... @overload # auto_draw_traces=False positional def simple_plotly( net: pandapowerNet, diff --git a/stubs/pandapower-stubs/plotting/plotly/traces.pyi b/stubs/pandapower-stubs/plotting/plotly/traces.pyi index 32f98f9..3040f4a 100644 --- a/stubs/pandapower-stubs/plotting/plotly/traces.pyi +++ b/stubs/pandapower-stubs/plotting/plotly/traces.pyi @@ -3,7 +3,7 @@ from collections.abc import Collection, Iterable, Mapping from typing import Any, Literal import pandas as pd -from plotly.graph_objs import Figure # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] +import plotly.graph_objs as go # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] from pandapower._typing import Float, Int from pandapower.auxiliary import pandapowerNet @@ -126,4 +126,4 @@ def draw_traces( filename: str = "temp-plot.html", auto_open: bool = True, **kwargs, -) -> Figure: ... +) -> go.Figure: ... diff --git a/stubs/pandapower-stubs/plotting/plotly/vlevel_plotly.pyi b/stubs/pandapower-stubs/plotting/plotly/vlevel_plotly.pyi index 0c4a776..3a163a9 100644 --- a/stubs/pandapower-stubs/plotting/plotly/vlevel_plotly.pyi +++ b/stubs/pandapower-stubs/plotting/plotly/vlevel_plotly.pyi @@ -1,6 +1,6 @@ from typing import Literal -from plotly.graph_objs import Figure # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] +import plotly.graph_objs as go # type: ignore[import-not-found] # pyright: ignore[reportMissingImports] from pandapower.auxiliary import pandapowerNet from pandapower.plotting.plotly.traces import _MapStyle @@ -20,4 +20,4 @@ def vlevel_plotly( filename: str = "temp-plot.html", auto_open: bool = True, zoomlevel: int = 11, -) -> Figure: ... +) -> go.Figure: ... diff --git a/stubs/pandapower-stubs/protection/utility_functions.pyi b/stubs/pandapower-stubs/protection/utility_functions.pyi index a907903..606da47 100644 --- a/stubs/pandapower-stubs/protection/utility_functions.pyi +++ b/stubs/pandapower-stubs/protection/utility_functions.pyi @@ -1,7 +1,6 @@ from _typeshed import Incomplete from collections.abc import Collection, Iterable from typing import Any -from typing_extensions import deprecated import numpy as np import pandas as pd @@ -34,15 +33,7 @@ def plot_tripped_grid_protection_device( net: pandapowerNet, trip_decisions, sc_location, sc_bus, bus_size=0.055, plot_annotations: bool = True ) -> None: ... def calc_line_intersection(m1, b1, m2, b2): ... -@deprecated("Use pandapower.get_connected_elements(net, 'line', bus_idx) instead!") -def get_connected_lines(net: pandapowerNet, bus_idx: Int): ... -@deprecated("Use pandapower.next_bus(net, bus, element_id instead!") -def next_buses(net: pandapowerNet, bus, element_id): ... def source_to_end_path(net: pandapowerNet, start_bus, bus_list, bus_order): ... -@deprecated("Use pandapower.get_connected_switches(net, buses, consider='l', status='closed') instead!") -def get_connected_switches(net: pandapowerNet, buses): ... -@deprecated("Use pandapower.get_connected_buses_at_element(net, element, element_type='l', respect_in_service=False) instead!") -def connected_bus_in_line(net: pandapowerNet, element): ... def switch_geodatas(net: pandapowerNet, size, distance_to_bus): ... def create_I_t_plot(trip_decisions, switch_id) -> None: ... def power_flow_end_points(net: pandapowerNet) -> tuple[list[np.int64], list[np.int64]]: ... diff --git a/stubs/pandapower-stubs/std_types.pyi b/stubs/pandapower-stubs/std_types.pyi index 08a5962..ea9b9f8 100644 --- a/stubs/pandapower-stubs/std_types.pyi +++ b/stubs/pandapower-stubs/std_types.pyi @@ -132,9 +132,7 @@ def change_std_type(net: pandapowerNet, eid: int, name: str, element: _Element = def find_std_type_by_parameter( net: pandapowerNet, data: _StdType, element: _Element = "line", epsilon: Float = 0.0 ) -> list[str]: ... -def find_std_type_alternative( - net: pandapowerNet, data, element: _Element = "line", voltage_rating: str = "", epsilon: Float = 0.0 -) -> list[str]: ... +def find_std_type_alternative(data, voltage_rating: str = "", epsilon: Float = 0.0) -> list[str]: ... def add_zero_impedance_parameters(net: pandapowerNet) -> None: ... def add_temperature_coefficient(net: pandapowerNet, fill: Float | None = None) -> None: ... def basic_line_std_types() -> _StdLineTypes: ... diff --git a/stubs/pandapower-stubs/toolbox/grid_modification.pyi b/stubs/pandapower-stubs/toolbox/grid_modification.pyi index 4c26b16..093827a 100644 --- a/stubs/pandapower-stubs/toolbox/grid_modification.pyi +++ b/stubs/pandapower-stubs/toolbox/grid_modification.pyi @@ -128,9 +128,7 @@ def replace_pq_elmtype( cols_to_keep: list[str] | None = None, add_cols_to_keep: list[str] | None = None, ) -> list[str]: ... -def replace_ward_by_internal_elements( - net: pandapowerNet, wards: int | Iterable[int] | None = None, log_level: str = "warning" -) -> None: ... +def replace_ward_by_internal_elements(net: pandapowerNet, wards: int | Iterable[int] | None = None) -> None: ... def replace_xward_by_internal_elements( net: pandapowerNet, xwards: int | Iterable[int] | None = None, set_xward_bus_limits: bool = False ) -> None: ... diff --git a/stubtest_allowlist.txt b/stubtest_allowlist.txt index fa29ca7..d846a1d 100644 --- a/stubtest_allowlist.txt +++ b/stubtest_allowlist.txt @@ -3,6 +3,7 @@ # TODO: modules pandapower\.contingency.* pandapower\.converter.* +pandapower\.network_schema.* # TODO: constants pandapower\.[A-Z0-9_]+$ @@ -20,6 +21,8 @@ pandapower\.(\w+\.)*([a-zA-Z0-9]+_(available|imported|INSTALLED|IMPORTED)|GRAPHS # OK: runtime-only unintentional reexports pandapower\.(nan|pp_version) +pandapower\.create\.nan +pandapower\.diagnostic\.diagnostic_helpers\.(N|T) pandapower\.networks\.(nan|pp_dir) pandapower\.topology\.BASE_KV diff --git a/uv.lock b/uv.lock index 37b7173..eecaa43 100644 --- a/uv.lock +++ b/uv.lock @@ -2,6 +2,15 @@ version = 1 revision = 3 requires-python = ">=3.12" +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + [[package]] name = "branca" version = "0.8.2" @@ -16,11 +25,11 @@ wheels = [ [[package]] name = "certifi" -version = "2025.11.12" +version = "2026.1.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" }, ] [[package]] @@ -265,7 +274,7 @@ wheels = [ [[package]] name = "geopandas" -version = "1.1.1" +version = "1.1.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, @@ -275,9 +284,9 @@ dependencies = [ { name = "pyproj" }, { name = "shapely" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8c/76/e1960ba846f153ab109575242abf89dc98f8e057faa32f3decf4cce9247a/geopandas-1.1.1.tar.gz", hash = "sha256:1745713f64d095c43e72e08e753dbd271678254b24f2e01db8cdb8debe1d293d", size = 332655, upload-time = "2025-06-26T21:04:56.57Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8d/24/5eb5685d7bf89d64218919379f882d19a60f8219d66d833c83b1cf264c95/geopandas-1.1.2.tar.gz", hash = "sha256:33f7b33565c46a45b8459a2ab699ec943fdbb5716e58e251b3c413cf7783106c", size = 336037, upload-time = "2025-12-22T21:06:13.749Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/70/d5cd0696eff08e62fdbdebe5b46527facb4e7220eabe0ac6225efab50168/geopandas-1.1.1-py3-none-any.whl", hash = "sha256:589e61aaf39b19828843df16cb90234e72897e2579be236f10eee0d052ad98e8", size = 338365, upload-time = "2025-06-26T21:04:55.139Z" }, + { url = "https://files.pythonhosted.org/packages/54/e4/fac19dc34cb686c96011388b813ff7b858a70681e5ce6ce7698e5021b0f4/geopandas-1.1.2-py3-none-any.whl", hash = "sha256:2bb0b1052cb47378addb4ba54c47f8d4642dcbda9b61375638274f49d9f0bb0d", size = 341734, upload-time = "2025-12-22T21:06:12.498Z" }, ] [[package]] @@ -384,134 +393,54 @@ wheels = [ [[package]] name = "librt" -version = "0.7.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b3/d9/6f3d3fcf5e5543ed8a60cc70fa7d50508ed60b8a10e9af6d2058159ab54e/librt-0.7.3.tar.gz", hash = "sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798", size = 144549, upload-time = "2025-12-06T19:04:45.553Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/90/ed8595fa4e35b6020317b5ea8d226a782dcbac7a997c19ae89fb07a41c66/librt-0.7.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3", size = 55687, upload-time = "2025-12-06T19:03:39.245Z" }, - { url = "https://files.pythonhosted.org/packages/dd/f6/6a20702a07b41006cb001a759440cb6b5362530920978f64a2b2ae2bf729/librt-0.7.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18", size = 57127, upload-time = "2025-12-06T19:03:40.3Z" }, - { url = "https://files.pythonhosted.org/packages/79/f3/b0c4703d5ffe9359b67bb2ccb86c42d4e930a363cfc72262ac3ba53cff3e/librt-0.7.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60", size = 165336, upload-time = "2025-12-06T19:03:41.369Z" }, - { url = "https://files.pythonhosted.org/packages/02/69/3ba05b73ab29ccbe003856232cea4049769be5942d799e628d1470ed1694/librt-0.7.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed", size = 174237, upload-time = "2025-12-06T19:03:42.44Z" }, - { url = "https://files.pythonhosted.org/packages/22/ad/d7c2671e7bf6c285ef408aa435e9cd3fdc06fd994601e1f2b242df12034f/librt-0.7.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e", size = 189017, upload-time = "2025-12-06T19:03:44.01Z" }, - { url = "https://files.pythonhosted.org/packages/f4/94/d13f57193148004592b618555f296b41d2d79b1dc814ff8b3273a0bf1546/librt-0.7.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b", size = 183983, upload-time = "2025-12-06T19:03:45.834Z" }, - { url = "https://files.pythonhosted.org/packages/02/10/b612a9944ebd39fa143c7e2e2d33f2cb790205e025ddd903fb509a3a3bb3/librt-0.7.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f", size = 177602, upload-time = "2025-12-06T19:03:46.944Z" }, - { url = "https://files.pythonhosted.org/packages/1f/48/77bc05c4cc232efae6c5592c0095034390992edbd5bae8d6cf1263bb7157/librt-0.7.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c", size = 199282, upload-time = "2025-12-06T19:03:48.069Z" }, - { url = "https://files.pythonhosted.org/packages/12/aa/05916ccd864227db1ffec2a303ae34f385c6b22d4e7ce9f07054dbcf083c/librt-0.7.3-cp312-cp312-win32.whl", hash = "sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b", size = 47879, upload-time = "2025-12-06T19:03:49.289Z" }, - { url = "https://files.pythonhosted.org/packages/50/92/7f41c42d31ea818b3c4b9cc1562e9714bac3c676dd18f6d5dd3d0f2aa179/librt-0.7.3-cp312-cp312-win_amd64.whl", hash = "sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a", size = 54972, upload-time = "2025-12-06T19:03:50.335Z" }, - { url = "https://files.pythonhosted.org/packages/3f/dc/53582bbfb422311afcbc92adb75711f04e989cec052f08ec0152fbc36c9c/librt-0.7.3-cp312-cp312-win_arm64.whl", hash = "sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc", size = 48338, upload-time = "2025-12-06T19:03:51.431Z" }, - { url = "https://files.pythonhosted.org/packages/93/7d/e0ce1837dfb452427db556e6d4c5301ba3b22fe8de318379fbd0593759b9/librt-0.7.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed", size = 55742, upload-time = "2025-12-06T19:03:52.459Z" }, - { url = "https://files.pythonhosted.org/packages/be/c0/3564262301e507e1d5cf31c7d84cb12addf0d35e05ba53312494a2eba9a4/librt-0.7.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc", size = 57163, upload-time = "2025-12-06T19:03:53.516Z" }, - { url = "https://files.pythonhosted.org/packages/be/ac/245e72b7e443d24a562f6047563c7f59833384053073ef9410476f68505b/librt-0.7.3-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e", size = 165840, upload-time = "2025-12-06T19:03:54.918Z" }, - { url = "https://files.pythonhosted.org/packages/98/af/587e4491f40adba066ba39a450c66bad794c8d92094f936a201bfc7c2b5f/librt-0.7.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5", size = 174827, upload-time = "2025-12-06T19:03:56.082Z" }, - { url = "https://files.pythonhosted.org/packages/78/21/5b8c60ea208bc83dd00421022a3874330685d7e856404128dc3728d5d1af/librt-0.7.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055", size = 189612, upload-time = "2025-12-06T19:03:57.507Z" }, - { url = "https://files.pythonhosted.org/packages/da/2f/8b819169ef696421fb81cd04c6cdf225f6e96f197366001e9d45180d7e9e/librt-0.7.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292", size = 184584, upload-time = "2025-12-06T19:03:58.686Z" }, - { url = "https://files.pythonhosted.org/packages/6c/fc/af9d225a9395b77bd7678362cb055d0b8139c2018c37665de110ca388022/librt-0.7.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910", size = 178269, upload-time = "2025-12-06T19:03:59.769Z" }, - { url = "https://files.pythonhosted.org/packages/6c/d8/7b4fa1683b772966749d5683aa3fd605813defffe157833a8fa69cc89207/librt-0.7.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093", size = 199852, upload-time = "2025-12-06T19:04:00.901Z" }, - { url = "https://files.pythonhosted.org/packages/77/e8/4598413aece46ca38d9260ef6c51534bd5f34b5c21474fcf210ce3a02123/librt-0.7.3-cp313-cp313-win32.whl", hash = "sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe", size = 47936, upload-time = "2025-12-06T19:04:02.054Z" }, - { url = "https://files.pythonhosted.org/packages/af/80/ac0e92d5ef8c6791b3e2c62373863827a279265e0935acdf807901353b0e/librt-0.7.3-cp313-cp313-win_amd64.whl", hash = "sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0", size = 54965, upload-time = "2025-12-06T19:04:03.224Z" }, - { url = "https://files.pythonhosted.org/packages/f1/fd/042f823fcbff25c1449bb4203a29919891ca74141b68d3a5f6612c4ce283/librt-0.7.3-cp313-cp313-win_arm64.whl", hash = "sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a", size = 48350, upload-time = "2025-12-06T19:04:04.234Z" }, - { url = "https://files.pythonhosted.org/packages/3e/ae/c6ecc7bb97134a71b5241e8855d39964c0e5f4d96558f0d60593892806d2/librt-0.7.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93", size = 55175, upload-time = "2025-12-06T19:04:05.308Z" }, - { url = "https://files.pythonhosted.org/packages/cf/bc/2cc0cb0ab787b39aa5c7645cd792433c875982bdf12dccca558b89624594/librt-0.7.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e", size = 56881, upload-time = "2025-12-06T19:04:06.674Z" }, - { url = "https://files.pythonhosted.org/packages/8e/87/397417a386190b70f5bf26fcedbaa1515f19dce33366e2684c6b7ee83086/librt-0.7.3-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207", size = 163710, upload-time = "2025-12-06T19:04:08.437Z" }, - { url = "https://files.pythonhosted.org/packages/c9/37/7338f85b80e8a17525d941211451199845093ca242b32efbf01df8531e72/librt-0.7.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f", size = 172471, upload-time = "2025-12-06T19:04:10.124Z" }, - { url = "https://files.pythonhosted.org/packages/3b/e0/741704edabbfae2c852fedc1b40d9ed5a783c70ed3ed8e4fe98f84b25d13/librt-0.7.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678", size = 186804, upload-time = "2025-12-06T19:04:11.586Z" }, - { url = "https://files.pythonhosted.org/packages/f4/d1/0a82129d6ba242f3be9af34815be089f35051bc79619f5c27d2c449ecef6/librt-0.7.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218", size = 181817, upload-time = "2025-12-06T19:04:12.802Z" }, - { url = "https://files.pythonhosted.org/packages/4f/32/704f80bcf9979c68d4357c46f2af788fbf9d5edda9e7de5786ed2255e911/librt-0.7.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620", size = 175602, upload-time = "2025-12-06T19:04:14.004Z" }, - { url = "https://files.pythonhosted.org/packages/f7/6d/4355cfa0fae0c062ba72f541d13db5bc575770125a7ad3d4f46f4109d305/librt-0.7.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e", size = 196497, upload-time = "2025-12-06T19:04:15.487Z" }, - { url = "https://files.pythonhosted.org/packages/2e/eb/ac6d8517d44209e5a712fde46f26d0055e3e8969f24d715f70bd36056230/librt-0.7.3-cp314-cp314-win32.whl", hash = "sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3", size = 44678, upload-time = "2025-12-06T19:04:16.688Z" }, - { url = "https://files.pythonhosted.org/packages/e9/93/238f026d141faf9958da588c761a0812a1a21c98cc54a76f3608454e4e59/librt-0.7.3-cp314-cp314-win_amd64.whl", hash = "sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010", size = 51689, upload-time = "2025-12-06T19:04:17.726Z" }, - { url = "https://files.pythonhosted.org/packages/52/44/43f462ad9dcf9ed7d3172fe2e30d77b980956250bd90e9889a9cca93df2a/librt-0.7.3-cp314-cp314-win_arm64.whl", hash = "sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e", size = 44662, upload-time = "2025-12-06T19:04:18.771Z" }, - { url = "https://files.pythonhosted.org/packages/1d/35/fed6348915f96b7323241de97f26e2af481e95183b34991df12fd5ce31b1/librt-0.7.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a", size = 57347, upload-time = "2025-12-06T19:04:19.812Z" }, - { url = "https://files.pythonhosted.org/packages/9a/f2/045383ccc83e3fea4fba1b761796584bc26817b6b2efb6b8a6731431d16f/librt-0.7.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a", size = 59223, upload-time = "2025-12-06T19:04:20.862Z" }, - { url = "https://files.pythonhosted.org/packages/77/3f/c081f8455ab1d7f4a10dbe58463ff97119272ff32494f21839c3b9029c2c/librt-0.7.3-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f", size = 183861, upload-time = "2025-12-06T19:04:21.963Z" }, - { url = "https://files.pythonhosted.org/packages/1d/f5/73c5093c22c31fbeaebc25168837f05ebfd8bf26ce00855ef97a5308f36f/librt-0.7.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e", size = 194594, upload-time = "2025-12-06T19:04:23.14Z" }, - { url = "https://files.pythonhosted.org/packages/78/b8/d5f17d4afe16612a4a94abfded94c16c5a033f183074fb130dfe56fc1a42/librt-0.7.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e", size = 206759, upload-time = "2025-12-06T19:04:24.328Z" }, - { url = "https://files.pythonhosted.org/packages/36/2e/021765c1be85ee23ffd5b5b968bb4cba7526a4db2a0fc27dcafbdfc32da7/librt-0.7.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70", size = 203210, upload-time = "2025-12-06T19:04:25.544Z" }, - { url = "https://files.pythonhosted.org/packages/77/f0/9923656e42da4fd18c594bd08cf6d7e152d4158f8b808e210d967f0dcceb/librt-0.7.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712", size = 196708, upload-time = "2025-12-06T19:04:26.725Z" }, - { url = "https://files.pythonhosted.org/packages/fc/0b/0708b886ac760e64d6fbe7e16024e4be3ad1a3629d19489a97e9cf4c3431/librt-0.7.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42", size = 217212, upload-time = "2025-12-06T19:04:27.892Z" }, - { url = "https://files.pythonhosted.org/packages/5d/7f/12a73ff17bca4351e73d585dd9ebf46723c4a8622c4af7fe11a2e2d011ff/librt-0.7.3-cp314-cp314t-win32.whl", hash = "sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd", size = 45586, upload-time = "2025-12-06T19:04:29.116Z" }, - { url = "https://files.pythonhosted.org/packages/e2/df/8decd032ac9b995e4f5606cde783711a71094128d88d97a52e397daf2c89/librt-0.7.3-cp314-cp314t-win_amd64.whl", hash = "sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f", size = 53002, upload-time = "2025-12-06T19:04:30.173Z" }, - { url = "https://files.pythonhosted.org/packages/de/0c/6605b6199de8178afe7efc77ca1d8e6db00453bc1d3349d27605c0f42104/librt-0.7.3-cp314-cp314t-win_arm64.whl", hash = "sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b", size = 45647, upload-time = "2025-12-06T19:04:31.302Z" }, -] - -[[package]] -name = "lxml" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/88/262177de60548e5a2bfc46ad28232c9e9cbde697bd94132aeb80364675cb/lxml-6.0.2.tar.gz", hash = "sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62", size = 4073426, upload-time = "2025-09-22T04:04:59.287Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/c8/8ff2bc6b920c84355146cd1ab7d181bc543b89241cfb1ebee824a7c81457/lxml-6.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456", size = 8661887, upload-time = "2025-09-22T04:01:17.265Z" }, - { url = "https://files.pythonhosted.org/packages/37/6f/9aae1008083bb501ef63284220ce81638332f9ccbfa53765b2b7502203cf/lxml-6.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924", size = 4667818, upload-time = "2025-09-22T04:01:19.688Z" }, - { url = "https://files.pythonhosted.org/packages/f1/ca/31fb37f99f37f1536c133476674c10b577e409c0a624384147653e38baf2/lxml-6.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f", size = 4950807, upload-time = "2025-09-22T04:01:21.487Z" }, - { url = "https://files.pythonhosted.org/packages/da/87/f6cb9442e4bada8aab5ae7e1046264f62fdbeaa6e3f6211b93f4c0dd97f1/lxml-6.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534", size = 5109179, upload-time = "2025-09-22T04:01:23.32Z" }, - { url = "https://files.pythonhosted.org/packages/c8/20/a7760713e65888db79bbae4f6146a6ae5c04e4a204a3c48896c408cd6ed2/lxml-6.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564", size = 5023044, upload-time = "2025-09-22T04:01:25.118Z" }, - { url = "https://files.pythonhosted.org/packages/a2/b0/7e64e0460fcb36471899f75831509098f3fd7cd02a3833ac517433cb4f8f/lxml-6.0.2-cp312-cp312-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f", size = 5359685, upload-time = "2025-09-22T04:01:27.398Z" }, - { url = "https://files.pythonhosted.org/packages/b9/e1/e5df362e9ca4e2f48ed6411bd4b3a0ae737cc842e96877f5bf9428055ab4/lxml-6.0.2-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0", size = 5654127, upload-time = "2025-09-22T04:01:29.629Z" }, - { url = "https://files.pythonhosted.org/packages/c6/d1/232b3309a02d60f11e71857778bfcd4acbdb86c07db8260caf7d008b08f8/lxml-6.0.2-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192", size = 5253958, upload-time = "2025-09-22T04:01:31.535Z" }, - { url = "https://files.pythonhosted.org/packages/35/35/d955a070994725c4f7d80583a96cab9c107c57a125b20bb5f708fe941011/lxml-6.0.2-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0", size = 4711541, upload-time = "2025-09-22T04:01:33.801Z" }, - { url = "https://files.pythonhosted.org/packages/1e/be/667d17363b38a78c4bd63cfd4b4632029fd68d2c2dc81f25ce9eb5224dd5/lxml-6.0.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092", size = 5267426, upload-time = "2025-09-22T04:01:35.639Z" }, - { url = "https://files.pythonhosted.org/packages/ea/47/62c70aa4a1c26569bc958c9ca86af2bb4e1f614e8c04fb2989833874f7ae/lxml-6.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f", size = 5064917, upload-time = "2025-09-22T04:01:37.448Z" }, - { url = "https://files.pythonhosted.org/packages/bd/55/6ceddaca353ebd0f1908ef712c597f8570cc9c58130dbb89903198e441fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8", size = 4788795, upload-time = "2025-09-22T04:01:39.165Z" }, - { url = "https://files.pythonhosted.org/packages/cf/e8/fd63e15da5e3fd4c2146f8bbb3c14e94ab850589beab88e547b2dbce22e1/lxml-6.0.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f", size = 5676759, upload-time = "2025-09-22T04:01:41.506Z" }, - { url = "https://files.pythonhosted.org/packages/76/47/b3ec58dc5c374697f5ba37412cd2728f427d056315d124dd4b61da381877/lxml-6.0.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6", size = 5255666, upload-time = "2025-09-22T04:01:43.363Z" }, - { url = "https://files.pythonhosted.org/packages/19/93/03ba725df4c3d72afd9596eef4a37a837ce8e4806010569bedfcd2cb68fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322", size = 5277989, upload-time = "2025-09-22T04:01:45.215Z" }, - { url = "https://files.pythonhosted.org/packages/c6/80/c06de80bfce881d0ad738576f243911fccf992687ae09fd80b734712b39c/lxml-6.0.2-cp312-cp312-win32.whl", hash = "sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849", size = 3611456, upload-time = "2025-09-22T04:01:48.243Z" }, - { url = "https://files.pythonhosted.org/packages/f7/d7/0cdfb6c3e30893463fb3d1e52bc5f5f99684a03c29a0b6b605cfae879cd5/lxml-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f", size = 4011793, upload-time = "2025-09-22T04:01:50.042Z" }, - { url = "https://files.pythonhosted.org/packages/ea/7b/93c73c67db235931527301ed3785f849c78991e2e34f3fd9a6663ffda4c5/lxml-6.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6", size = 3672836, upload-time = "2025-09-22T04:01:52.145Z" }, - { url = "https://files.pythonhosted.org/packages/53/fd/4e8f0540608977aea078bf6d79f128e0e2c2bba8af1acf775c30baa70460/lxml-6.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77", size = 8648494, upload-time = "2025-09-22T04:01:54.242Z" }, - { url = "https://files.pythonhosted.org/packages/5d/f4/2a94a3d3dfd6c6b433501b8d470a1960a20ecce93245cf2db1706adf6c19/lxml-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f", size = 4661146, upload-time = "2025-09-22T04:01:56.282Z" }, - { url = "https://files.pythonhosted.org/packages/25/2e/4efa677fa6b322013035d38016f6ae859d06cac67437ca7dc708a6af7028/lxml-6.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452", size = 4946932, upload-time = "2025-09-22T04:01:58.989Z" }, - { url = "https://files.pythonhosted.org/packages/ce/0f/526e78a6d38d109fdbaa5049c62e1d32fdd70c75fb61c4eadf3045d3d124/lxml-6.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048", size = 5100060, upload-time = "2025-09-22T04:02:00.812Z" }, - { url = "https://files.pythonhosted.org/packages/81/76/99de58d81fa702cc0ea7edae4f4640416c2062813a00ff24bd70ac1d9c9b/lxml-6.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df", size = 5019000, upload-time = "2025-09-22T04:02:02.671Z" }, - { url = "https://files.pythonhosted.org/packages/b5/35/9e57d25482bc9a9882cb0037fdb9cc18f4b79d85df94fa9d2a89562f1d25/lxml-6.0.2-cp313-cp313-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1", size = 5348496, upload-time = "2025-09-22T04:02:04.904Z" }, - { url = "https://files.pythonhosted.org/packages/a6/8e/cb99bd0b83ccc3e8f0f528e9aa1f7a9965dfec08c617070c5db8d63a87ce/lxml-6.0.2-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916", size = 5643779, upload-time = "2025-09-22T04:02:06.689Z" }, - { url = "https://files.pythonhosted.org/packages/d0/34/9e591954939276bb679b73773836c6684c22e56d05980e31d52a9a8deb18/lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd", size = 5244072, upload-time = "2025-09-22T04:02:08.587Z" }, - { url = "https://files.pythonhosted.org/packages/8d/27/b29ff065f9aaca443ee377aff699714fcbffb371b4fce5ac4ca759e436d5/lxml-6.0.2-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6", size = 4718675, upload-time = "2025-09-22T04:02:10.783Z" }, - { url = "https://files.pythonhosted.org/packages/2b/9f/f756f9c2cd27caa1a6ef8c32ae47aadea697f5c2c6d07b0dae133c244fbe/lxml-6.0.2-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a", size = 5255171, upload-time = "2025-09-22T04:02:12.631Z" }, - { url = "https://files.pythonhosted.org/packages/61/46/bb85ea42d2cb1bd8395484fd72f38e3389611aa496ac7772da9205bbda0e/lxml-6.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679", size = 5057175, upload-time = "2025-09-22T04:02:14.718Z" }, - { url = "https://files.pythonhosted.org/packages/95/0c/443fc476dcc8e41577f0af70458c50fe299a97bb6b7505bb1ae09aa7f9ac/lxml-6.0.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659", size = 4785688, upload-time = "2025-09-22T04:02:16.957Z" }, - { url = "https://files.pythonhosted.org/packages/48/78/6ef0b359d45bb9697bc5a626e1992fa5d27aa3f8004b137b2314793b50a0/lxml-6.0.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484", size = 5660655, upload-time = "2025-09-22T04:02:18.815Z" }, - { url = "https://files.pythonhosted.org/packages/ff/ea/e1d33808f386bc1339d08c0dcada6e4712d4ed8e93fcad5f057070b7988a/lxml-6.0.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2", size = 5247695, upload-time = "2025-09-22T04:02:20.593Z" }, - { url = "https://files.pythonhosted.org/packages/4f/47/eba75dfd8183673725255247a603b4ad606f4ae657b60c6c145b381697da/lxml-6.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314", size = 5269841, upload-time = "2025-09-22T04:02:22.489Z" }, - { url = "https://files.pythonhosted.org/packages/76/04/5c5e2b8577bc936e219becb2e98cdb1aca14a4921a12995b9d0c523502ae/lxml-6.0.2-cp313-cp313-win32.whl", hash = "sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2", size = 3610700, upload-time = "2025-09-22T04:02:24.465Z" }, - { url = "https://files.pythonhosted.org/packages/fe/0a/4643ccc6bb8b143e9f9640aa54e38255f9d3b45feb2cbe7ae2ca47e8782e/lxml-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7", size = 4010347, upload-time = "2025-09-22T04:02:26.286Z" }, - { url = "https://files.pythonhosted.org/packages/31/ef/dcf1d29c3f530577f61e5fe2f1bd72929acf779953668a8a47a479ae6f26/lxml-6.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf", size = 3671248, upload-time = "2025-09-22T04:02:27.918Z" }, - { url = "https://files.pythonhosted.org/packages/03/15/d4a377b385ab693ce97b472fe0c77c2b16ec79590e688b3ccc71fba19884/lxml-6.0.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe", size = 8659801, upload-time = "2025-09-22T04:02:30.113Z" }, - { url = "https://files.pythonhosted.org/packages/c8/e8/c128e37589463668794d503afaeb003987373c5f94d667124ffd8078bbd9/lxml-6.0.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d", size = 4659403, upload-time = "2025-09-22T04:02:32.119Z" }, - { url = "https://files.pythonhosted.org/packages/00/ce/74903904339decdf7da7847bb5741fc98a5451b42fc419a86c0c13d26fe2/lxml-6.0.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d", size = 4966974, upload-time = "2025-09-22T04:02:34.155Z" }, - { url = "https://files.pythonhosted.org/packages/1f/d3/131dec79ce61c5567fecf82515bd9bc36395df42501b50f7f7f3bd065df0/lxml-6.0.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5", size = 5102953, upload-time = "2025-09-22T04:02:36.054Z" }, - { url = "https://files.pythonhosted.org/packages/3a/ea/a43ba9bb750d4ffdd885f2cd333572f5bb900cd2408b67fdda07e85978a0/lxml-6.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0", size = 5055054, upload-time = "2025-09-22T04:02:38.154Z" }, - { url = "https://files.pythonhosted.org/packages/60/23/6885b451636ae286c34628f70a7ed1fcc759f8d9ad382d132e1c8d3d9bfd/lxml-6.0.2-cp314-cp314-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba", size = 5352421, upload-time = "2025-09-22T04:02:40.413Z" }, - { url = "https://files.pythonhosted.org/packages/48/5b/fc2ddfc94ddbe3eebb8e9af6e3fd65e2feba4967f6a4e9683875c394c2d8/lxml-6.0.2-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0", size = 5673684, upload-time = "2025-09-22T04:02:42.288Z" }, - { url = "https://files.pythonhosted.org/packages/29/9c/47293c58cc91769130fbf85531280e8cc7868f7fbb6d92f4670071b9cb3e/lxml-6.0.2-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d", size = 5252463, upload-time = "2025-09-22T04:02:44.165Z" }, - { url = "https://files.pythonhosted.org/packages/9b/da/ba6eceb830c762b48e711ded880d7e3e89fc6c7323e587c36540b6b23c6b/lxml-6.0.2-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37", size = 4698437, upload-time = "2025-09-22T04:02:46.524Z" }, - { url = "https://files.pythonhosted.org/packages/a5/24/7be3f82cb7990b89118d944b619e53c656c97dc89c28cfb143fdb7cd6f4d/lxml-6.0.2-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9", size = 5269890, upload-time = "2025-09-22T04:02:48.812Z" }, - { url = "https://files.pythonhosted.org/packages/1b/bd/dcfb9ea1e16c665efd7538fc5d5c34071276ce9220e234217682e7d2c4a5/lxml-6.0.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917", size = 5097185, upload-time = "2025-09-22T04:02:50.746Z" }, - { url = "https://files.pythonhosted.org/packages/21/04/a60b0ff9314736316f28316b694bccbbabe100f8483ad83852d77fc7468e/lxml-6.0.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f", size = 4745895, upload-time = "2025-09-22T04:02:52.968Z" }, - { url = "https://files.pythonhosted.org/packages/d6/bd/7d54bd1846e5a310d9c715921c5faa71cf5c0853372adf78aee70c8d7aa2/lxml-6.0.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8", size = 5695246, upload-time = "2025-09-22T04:02:54.798Z" }, - { url = "https://files.pythonhosted.org/packages/fd/32/5643d6ab947bc371da21323acb2a6e603cedbe71cb4c99c8254289ab6f4e/lxml-6.0.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a", size = 5260797, upload-time = "2025-09-22T04:02:57.058Z" }, - { url = "https://files.pythonhosted.org/packages/33/da/34c1ec4cff1eea7d0b4cd44af8411806ed943141804ac9c5d565302afb78/lxml-6.0.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c", size = 5277404, upload-time = "2025-09-22T04:02:58.966Z" }, - { url = "https://files.pythonhosted.org/packages/82/57/4eca3e31e54dc89e2c3507e1cd411074a17565fa5ffc437c4ae0a00d439e/lxml-6.0.2-cp314-cp314-win32.whl", hash = "sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b", size = 3670072, upload-time = "2025-09-22T04:03:38.05Z" }, - { url = "https://files.pythonhosted.org/packages/e3/e0/c96cf13eccd20c9421ba910304dae0f619724dcf1702864fd59dd386404d/lxml-6.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed", size = 4080617, upload-time = "2025-09-22T04:03:39.835Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5d/b3f03e22b3d38d6f188ef044900a9b29b2fe0aebb94625ce9fe244011d34/lxml-6.0.2-cp314-cp314-win_arm64.whl", hash = "sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8", size = 3754930, upload-time = "2025-09-22T04:03:41.565Z" }, - { url = "https://files.pythonhosted.org/packages/5e/5c/42c2c4c03554580708fc738d13414801f340c04c3eff90d8d2d227145275/lxml-6.0.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d", size = 8910380, upload-time = "2025-09-22T04:03:01.645Z" }, - { url = "https://files.pythonhosted.org/packages/bf/4f/12df843e3e10d18d468a7557058f8d3733e8b6e12401f30b1ef29360740f/lxml-6.0.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba", size = 4775632, upload-time = "2025-09-22T04:03:03.814Z" }, - { url = "https://files.pythonhosted.org/packages/e4/0c/9dc31e6c2d0d418483cbcb469d1f5a582a1cd00a1f4081953d44051f3c50/lxml-6.0.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601", size = 4975171, upload-time = "2025-09-22T04:03:05.651Z" }, - { url = "https://files.pythonhosted.org/packages/e7/2b/9b870c6ca24c841bdd887504808f0417aa9d8d564114689266f19ddf29c8/lxml-6.0.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed", size = 5110109, upload-time = "2025-09-22T04:03:07.452Z" }, - { url = "https://files.pythonhosted.org/packages/bf/0c/4f5f2a4dd319a178912751564471355d9019e220c20d7db3fb8307ed8582/lxml-6.0.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37", size = 5041061, upload-time = "2025-09-22T04:03:09.297Z" }, - { url = "https://files.pythonhosted.org/packages/12/64/554eed290365267671fe001a20d72d14f468ae4e6acef1e179b039436967/lxml-6.0.2-cp314-cp314t-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338", size = 5306233, upload-time = "2025-09-22T04:03:11.651Z" }, - { url = "https://files.pythonhosted.org/packages/7a/31/1d748aa275e71802ad9722df32a7a35034246b42c0ecdd8235412c3396ef/lxml-6.0.2-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9", size = 5604739, upload-time = "2025-09-22T04:03:13.592Z" }, - { url = "https://files.pythonhosted.org/packages/8f/41/2c11916bcac09ed561adccacceaedd2bf0e0b25b297ea92aab99fd03d0fa/lxml-6.0.2-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd", size = 5225119, upload-time = "2025-09-22T04:03:15.408Z" }, - { url = "https://files.pythonhosted.org/packages/99/05/4e5c2873d8f17aa018e6afde417c80cc5d0c33be4854cce3ef5670c49367/lxml-6.0.2-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d", size = 4633665, upload-time = "2025-09-22T04:03:17.262Z" }, - { url = "https://files.pythonhosted.org/packages/0f/c9/dcc2da1bebd6275cdc723b515f93edf548b82f36a5458cca3578bc899332/lxml-6.0.2-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9", size = 5234997, upload-time = "2025-09-22T04:03:19.14Z" }, - { url = "https://files.pythonhosted.org/packages/9c/e2/5172e4e7468afca64a37b81dba152fc5d90e30f9c83c7c3213d6a02a5ce4/lxml-6.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e", size = 5090957, upload-time = "2025-09-22T04:03:21.436Z" }, - { url = "https://files.pythonhosted.org/packages/a5/b3/15461fd3e5cd4ddcb7938b87fc20b14ab113b92312fc97afe65cd7c85de1/lxml-6.0.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d", size = 4764372, upload-time = "2025-09-22T04:03:23.27Z" }, - { url = "https://files.pythonhosted.org/packages/05/33/f310b987c8bf9e61c4dd8e8035c416bd3230098f5e3cfa69fc4232de7059/lxml-6.0.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec", size = 5634653, upload-time = "2025-09-22T04:03:25.767Z" }, - { url = "https://files.pythonhosted.org/packages/70/ff/51c80e75e0bc9382158133bdcf4e339b5886c6ee2418b5199b3f1a61ed6d/lxml-6.0.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272", size = 5233795, upload-time = "2025-09-22T04:03:27.62Z" }, - { url = "https://files.pythonhosted.org/packages/56/4d/4856e897df0d588789dd844dbed9d91782c4ef0b327f96ce53c807e13128/lxml-6.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f", size = 5257023, upload-time = "2025-09-22T04:03:30.056Z" }, - { url = "https://files.pythonhosted.org/packages/0f/85/86766dfebfa87bea0ab78e9ff7a4b4b45225df4b4d3b8cc3c03c5cd68464/lxml-6.0.2-cp314-cp314t-win32.whl", hash = "sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312", size = 3911420, upload-time = "2025-09-22T04:03:32.198Z" }, - { url = "https://files.pythonhosted.org/packages/fe/1a/b248b355834c8e32614650b8008c69ffeb0ceb149c793961dd8c0b991bb3/lxml-6.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca", size = 4406837, upload-time = "2025-09-22T04:03:34.027Z" }, - { url = "https://files.pythonhosted.org/packages/92/aa/df863bcc39c5e0946263454aba394de8a9084dbaff8ad143846b0d844739/lxml-6.0.2-cp314-cp314t-win_arm64.whl", hash = "sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c", size = 3822205, upload-time = "2025-09-22T04:03:36.249Z" }, +version = "0.7.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/24/5f3646ff414285e0f7708fa4e946b9bf538345a41d1c375c439467721a5e/librt-0.7.8.tar.gz", hash = "sha256:1a4ede613941d9c3470b0368be851df6bb78ab218635512d0370b27a277a0862", size = 148323, upload-time = "2026-01-14T12:56:16.876Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/04/79d8fcb43cae376c7adbab7b2b9f65e48432c9eced62ac96703bcc16e09b/librt-0.7.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9b6943885b2d49c48d0cff23b16be830ba46b0152d98f62de49e735c6e655a63", size = 57472, upload-time = "2026-01-14T12:55:08.528Z" }, + { url = "https://files.pythonhosted.org/packages/b4/ba/60b96e93043d3d659da91752689023a73981336446ae82078cddf706249e/librt-0.7.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:46ef1f4b9b6cc364b11eea0ecc0897314447a66029ee1e55859acb3dd8757c93", size = 58986, upload-time = "2026-01-14T12:55:09.466Z" }, + { url = "https://files.pythonhosted.org/packages/7c/26/5215e4cdcc26e7be7eee21955a7e13cbf1f6d7d7311461a6014544596fac/librt-0.7.8-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:907ad09cfab21e3c86e8f1f87858f7049d1097f77196959c033612f532b4e592", size = 168422, upload-time = "2026-01-14T12:55:10.499Z" }, + { url = "https://files.pythonhosted.org/packages/0f/84/e8d1bc86fa0159bfc24f3d798d92cafd3897e84c7fea7fe61b3220915d76/librt-0.7.8-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2991b6c3775383752b3ca0204842743256f3ad3deeb1d0adc227d56b78a9a850", size = 177478, upload-time = "2026-01-14T12:55:11.577Z" }, + { url = "https://files.pythonhosted.org/packages/57/11/d0268c4b94717a18aa91df1100e767b010f87b7ae444dafaa5a2d80f33a6/librt-0.7.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03679b9856932b8c8f674e87aa3c55ea11c9274301f76ae8dc4d281bda55cf62", size = 192439, upload-time = "2026-01-14T12:55:12.7Z" }, + { url = "https://files.pythonhosted.org/packages/8d/56/1e8e833b95fe684f80f8894ae4d8b7d36acc9203e60478fcae599120a975/librt-0.7.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3968762fec1b2ad34ce57458b6de25dbb4142713e9ca6279a0d352fa4e9f452b", size = 191483, upload-time = "2026-01-14T12:55:13.838Z" }, + { url = "https://files.pythonhosted.org/packages/17/48/f11cf28a2cb6c31f282009e2208312aa84a5ee2732859f7856ee306176d5/librt-0.7.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:bb7a7807523a31f03061288cc4ffc065d684c39db7644c676b47d89553c0d714", size = 185376, upload-time = "2026-01-14T12:55:15.017Z" }, + { url = "https://files.pythonhosted.org/packages/b8/6a/d7c116c6da561b9155b184354a60a3d5cdbf08fc7f3678d09c95679d13d9/librt-0.7.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad64a14b1e56e702e19b24aae108f18ad1bf7777f3af5fcd39f87d0c5a814449", size = 206234, upload-time = "2026-01-14T12:55:16.571Z" }, + { url = "https://files.pythonhosted.org/packages/61/de/1975200bb0285fc921c5981d9978ce6ce11ae6d797df815add94a5a848a3/librt-0.7.8-cp312-cp312-win32.whl", hash = "sha256:0241a6ed65e6666236ea78203a73d800dbed896cf12ae25d026d75dc1fcd1dac", size = 44057, upload-time = "2026-01-14T12:55:18.077Z" }, + { url = "https://files.pythonhosted.org/packages/8e/cd/724f2d0b3461426730d4877754b65d39f06a41ac9d0a92d5c6840f72b9ae/librt-0.7.8-cp312-cp312-win_amd64.whl", hash = "sha256:6db5faf064b5bab9675c32a873436b31e01d66ca6984c6f7f92621656033a708", size = 50293, upload-time = "2026-01-14T12:55:19.179Z" }, + { url = "https://files.pythonhosted.org/packages/bd/cf/7e899acd9ee5727ad8160fdcc9994954e79fab371c66535c60e13b968ffc/librt-0.7.8-cp312-cp312-win_arm64.whl", hash = "sha256:57175aa93f804d2c08d2edb7213e09276bd49097611aefc37e3fa38d1fb99ad0", size = 43574, upload-time = "2026-01-14T12:55:20.185Z" }, + { url = "https://files.pythonhosted.org/packages/a1/fe/b1f9de2829cf7fc7649c1dcd202cfd873837c5cc2fc9e526b0e7f716c3d2/librt-0.7.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4c3995abbbb60b3c129490fa985dfe6cac11d88fc3c36eeb4fb1449efbbb04fc", size = 57500, upload-time = "2026-01-14T12:55:21.219Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d4/4a60fbe2e53b825f5d9a77325071d61cd8af8506255067bf0c8527530745/librt-0.7.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:44e0c2cbc9bebd074cf2cdbe472ca185e824be4e74b1c63a8e934cea674bebf2", size = 59019, upload-time = "2026-01-14T12:55:22.256Z" }, + { url = "https://files.pythonhosted.org/packages/6a/37/61ff80341ba5159afa524445f2d984c30e2821f31f7c73cf166dcafa5564/librt-0.7.8-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4d2f1e492cae964b3463a03dc77a7fe8742f7855d7258c7643f0ee32b6651dd3", size = 169015, upload-time = "2026-01-14T12:55:23.24Z" }, + { url = "https://files.pythonhosted.org/packages/1c/86/13d4f2d6a93f181ebf2fc953868826653ede494559da8268023fe567fca3/librt-0.7.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:451e7ffcef8f785831fdb791bd69211f47e95dc4c6ddff68e589058806f044c6", size = 178161, upload-time = "2026-01-14T12:55:24.826Z" }, + { url = "https://files.pythonhosted.org/packages/88/26/e24ef01305954fc4d771f1f09f3dd682f9eb610e1bec188ffb719374d26e/librt-0.7.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3469e1af9f1380e093ae06bedcbdd11e407ac0b303a56bbe9afb1d6824d4982d", size = 193015, upload-time = "2026-01-14T12:55:26.04Z" }, + { url = "https://files.pythonhosted.org/packages/88/a0/92b6bd060e720d7a31ed474d046a69bd55334ec05e9c446d228c4b806ae3/librt-0.7.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f11b300027ce19a34f6d24ebb0a25fd0e24a9d53353225a5c1e6cadbf2916b2e", size = 192038, upload-time = "2026-01-14T12:55:27.208Z" }, + { url = "https://files.pythonhosted.org/packages/06/bb/6f4c650253704279c3a214dad188101d1b5ea23be0606628bc6739456624/librt-0.7.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4adc73614f0d3c97874f02f2c7fd2a27854e7e24ad532ea6b965459c5b757eca", size = 186006, upload-time = "2026-01-14T12:55:28.594Z" }, + { url = "https://files.pythonhosted.org/packages/dc/00/1c409618248d43240cadf45f3efb866837fa77e9a12a71481912135eb481/librt-0.7.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:60c299e555f87e4c01b2eca085dfccda1dde87f5a604bb45c2906b8305819a93", size = 206888, upload-time = "2026-01-14T12:55:30.214Z" }, + { url = "https://files.pythonhosted.org/packages/d9/83/b2cfe8e76ff5c1c77f8a53da3d5de62d04b5ebf7cf913e37f8bca43b5d07/librt-0.7.8-cp313-cp313-win32.whl", hash = "sha256:b09c52ed43a461994716082ee7d87618096851319bf695d57ec123f2ab708951", size = 44126, upload-time = "2026-01-14T12:55:31.44Z" }, + { url = "https://files.pythonhosted.org/packages/a9/0b/c59d45de56a51bd2d3a401fc63449c0ac163e4ef7f523ea8b0c0dee86ec5/librt-0.7.8-cp313-cp313-win_amd64.whl", hash = "sha256:f8f4a901a3fa28969d6e4519deceab56c55a09d691ea7b12ca830e2fa3461e34", size = 50262, upload-time = "2026-01-14T12:55:33.01Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b9/973455cec0a1ec592395250c474164c4a58ebf3e0651ee920fef1a2623f1/librt-0.7.8-cp313-cp313-win_arm64.whl", hash = "sha256:43d4e71b50763fcdcf64725ac680d8cfa1706c928b844794a7aa0fa9ac8e5f09", size = 43600, upload-time = "2026-01-14T12:55:34.054Z" }, + { url = "https://files.pythonhosted.org/packages/1a/73/fa8814c6ce2d49c3827829cadaa1589b0bf4391660bd4510899393a23ebc/librt-0.7.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:be927c3c94c74b05128089a955fba86501c3b544d1d300282cc1b4bd370cb418", size = 57049, upload-time = "2026-01-14T12:55:35.056Z" }, + { url = "https://files.pythonhosted.org/packages/53/fe/f6c70956da23ea235fd2e3cc16f4f0b4ebdfd72252b02d1164dd58b4e6c3/librt-0.7.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7b0803e9008c62a7ef79058233db7ff6f37a9933b8f2573c05b07ddafa226611", size = 58689, upload-time = "2026-01-14T12:55:36.078Z" }, + { url = "https://files.pythonhosted.org/packages/1f/4d/7a2481444ac5fba63050d9abe823e6bc16896f575bfc9c1e5068d516cdce/librt-0.7.8-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:79feb4d00b2a4e0e05c9c56df707934f41fcb5fe53fd9efb7549068d0495b758", size = 166808, upload-time = "2026-01-14T12:55:37.595Z" }, + { url = "https://files.pythonhosted.org/packages/ac/3c/10901d9e18639f8953f57c8986796cfbf4c1c514844a41c9197cf87cb707/librt-0.7.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b9122094e3f24aa759c38f46bd8863433820654927370250f460ae75488b66ea", size = 175614, upload-time = "2026-01-14T12:55:38.756Z" }, + { url = "https://files.pythonhosted.org/packages/db/01/5cbdde0951a5090a80e5ba44e6357d375048123c572a23eecfb9326993a7/librt-0.7.8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e03bea66af33c95ce3addf87a9bf1fcad8d33e757bc479957ddbc0e4f7207ac", size = 189955, upload-time = "2026-01-14T12:55:39.939Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b4/e80528d2f4b7eaf1d437fcbd6fc6ba4cbeb3e2a0cb9ed5a79f47c7318706/librt-0.7.8-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f1ade7f31675db00b514b98f9ab9a7698c7282dad4be7492589109471852d398", size = 189370, upload-time = "2026-01-14T12:55:41.057Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ab/938368f8ce31a9787ecd4becb1e795954782e4312095daf8fd22420227c8/librt-0.7.8-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a14229ac62adcf1b90a15992f1ab9c69ae8b99ffb23cb64a90878a6e8a2f5b81", size = 183224, upload-time = "2026-01-14T12:55:42.328Z" }, + { url = "https://files.pythonhosted.org/packages/3c/10/559c310e7a6e4014ac44867d359ef8238465fb499e7eb31b6bfe3e3f86f5/librt-0.7.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5bcaaf624fd24e6a0cb14beac37677f90793a96864c67c064a91458611446e83", size = 203541, upload-time = "2026-01-14T12:55:43.501Z" }, + { url = "https://files.pythonhosted.org/packages/f8/db/a0db7acdb6290c215f343835c6efda5b491bb05c3ddc675af558f50fdba3/librt-0.7.8-cp314-cp314-win32.whl", hash = "sha256:7aa7d5457b6c542ecaed79cec4ad98534373c9757383973e638ccced0f11f46d", size = 40657, upload-time = "2026-01-14T12:55:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/72/e0/4f9bdc2a98a798511e81edcd6b54fe82767a715e05d1921115ac70717f6f/librt-0.7.8-cp314-cp314-win_amd64.whl", hash = "sha256:3d1322800771bee4a91f3b4bd4e49abc7d35e65166821086e5afd1e6c0d9be44", size = 46835, upload-time = "2026-01-14T12:55:45.655Z" }, + { url = "https://files.pythonhosted.org/packages/f9/3d/59c6402e3dec2719655a41ad027a7371f8e2334aa794ed11533ad5f34969/librt-0.7.8-cp314-cp314-win_arm64.whl", hash = "sha256:5363427bc6a8c3b1719f8f3845ea53553d301382928a86e8fab7984426949bce", size = 39885, upload-time = "2026-01-14T12:55:47.138Z" }, + { url = "https://files.pythonhosted.org/packages/4e/9c/2481d80950b83085fb14ba3c595db56330d21bbc7d88a19f20165f3538db/librt-0.7.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:ca916919793a77e4a98d4a1701e345d337ce53be4a16620f063191f7322ac80f", size = 59161, upload-time = "2026-01-14T12:55:48.45Z" }, + { url = "https://files.pythonhosted.org/packages/96/79/108df2cfc4e672336765d54e3ff887294c1cc36ea4335c73588875775527/librt-0.7.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:54feb7b4f2f6706bb82325e836a01be805770443e2400f706e824e91f6441dde", size = 61008, upload-time = "2026-01-14T12:55:49.527Z" }, + { url = "https://files.pythonhosted.org/packages/46/f2/30179898f9994a5637459d6e169b6abdc982012c0a4b2d4c26f50c06f911/librt-0.7.8-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:39a4c76fee41007070f872b648cc2f711f9abf9a13d0c7162478043377b52c8e", size = 187199, upload-time = "2026-01-14T12:55:50.587Z" }, + { url = "https://files.pythonhosted.org/packages/b4/da/f7563db55cebdc884f518ba3791ad033becc25ff68eb70902b1747dc0d70/librt-0.7.8-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac9c8a458245c7de80bc1b9765b177055efff5803f08e548dd4bb9ab9a8d789b", size = 198317, upload-time = "2026-01-14T12:55:51.991Z" }, + { url = "https://files.pythonhosted.org/packages/b3/6c/4289acf076ad371471fa86718c30ae353e690d3de6167f7db36f429272f1/librt-0.7.8-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95b67aa7eff150f075fda09d11f6bfb26edffd300f6ab1666759547581e8f666", size = 210334, upload-time = "2026-01-14T12:55:53.682Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7f/377521ac25b78ac0a5ff44127a0360ee6d5ddd3ce7327949876a30533daa/librt-0.7.8-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:535929b6eff670c593c34ff435d5440c3096f20fa72d63444608a5aef64dd581", size = 211031, upload-time = "2026-01-14T12:55:54.827Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b1/e1e96c3e20b23d00cf90f4aad48f0deb4cdfec2f0ed8380d0d85acf98bbf/librt-0.7.8-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:63937bd0f4d1cb56653dc7ae900d6c52c41f0015e25aaf9902481ee79943b33a", size = 204581, upload-time = "2026-01-14T12:55:56.811Z" }, + { url = "https://files.pythonhosted.org/packages/43/71/0f5d010e92ed9747e14bef35e91b6580533510f1e36a8a09eb79ee70b2f0/librt-0.7.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cf243da9e42d914036fd362ac3fa77d80a41cadcd11ad789b1b5eec4daaf67ca", size = 224731, upload-time = "2026-01-14T12:55:58.175Z" }, + { url = "https://files.pythonhosted.org/packages/22/f0/07fb6ab5c39a4ca9af3e37554f9d42f25c464829254d72e4ebbd81da351c/librt-0.7.8-cp314-cp314t-win32.whl", hash = "sha256:171ca3a0a06c643bd0a2f62a8944e1902c94aa8e5da4db1ea9a8daf872685365", size = 41173, upload-time = "2026-01-14T12:55:59.315Z" }, + { url = "https://files.pythonhosted.org/packages/24/d4/7e4be20993dc6a782639625bd2f97f3c66125c7aa80c82426956811cfccf/librt-0.7.8-cp314-cp314t-win_amd64.whl", hash = "sha256:445b7304145e24c60288a2f172b5ce2ca35c0f81605f5299f3fa567e189d2e32", size = 47668, upload-time = "2026-01-14T12:56:00.261Z" }, + { url = "https://files.pythonhosted.org/packages/fc/85/69f92b2a7b3c0f88ffe107c86b952b397004b5b8ea5a81da3d9c04c04422/librt-0.7.8-cp314-cp314t-win_arm64.whl", hash = "sha256:8766ece9de08527deabcd7cb1b4f1a967a385d26e33e536d6d8913db6ef74f06", size = 40550, upload-time = "2026-01-14T12:56:01.542Z" }, ] [[package]] @@ -654,35 +583,35 @@ wheels = [ [[package]] name = "mypy" -version = "1.19.0" +version = "1.19.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "librt" }, + { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, { name = "mypy-extensions" }, { name = "pathspec" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f9/b5/b58cdc25fadd424552804bf410855d52324183112aa004f0732c5f6324cf/mypy-1.19.0.tar.gz", hash = "sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528", size = 3579025, upload-time = "2025-11-28T15:49:01.26Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/11/7e/1afa8fb188b876abeaa14460dc4983f909aaacaa4bf5718c00b2c7e0b3d5/mypy-1.19.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d", size = 13207728, upload-time = "2025-11-28T15:46:26.463Z" }, - { url = "https://files.pythonhosted.org/packages/b2/13/f103d04962bcbefb1644f5ccb235998b32c337d6c13145ea390b9da47f3e/mypy-1.19.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760", size = 12202945, upload-time = "2025-11-28T15:48:49.143Z" }, - { url = "https://files.pythonhosted.org/packages/e4/93/a86a5608f74a22284a8ccea8592f6e270b61f95b8588951110ad797c2ddd/mypy-1.19.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6", size = 12718673, upload-time = "2025-11-28T15:47:37.193Z" }, - { url = "https://files.pythonhosted.org/packages/3d/58/cf08fff9ced0423b858f2a7495001fda28dc058136818ee9dffc31534ea9/mypy-1.19.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2", size = 13608336, upload-time = "2025-11-28T15:48:32.625Z" }, - { url = "https://files.pythonhosted.org/packages/64/ed/9c509105c5a6d4b73bb08733102a3ea62c25bc02c51bca85e3134bf912d3/mypy-1.19.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431", size = 13833174, upload-time = "2025-11-28T15:45:48.091Z" }, - { url = "https://files.pythonhosted.org/packages/cd/71/01939b66e35c6f8cb3e6fdf0b657f0fd24de2f8ba5e523625c8e72328208/mypy-1.19.0-cp312-cp312-win_amd64.whl", hash = "sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018", size = 10112208, upload-time = "2025-11-28T15:46:41.702Z" }, - { url = "https://files.pythonhosted.org/packages/cb/0d/a1357e6bb49e37ce26fcf7e3cc55679ce9f4ebee0cd8b6ee3a0e301a9210/mypy-1.19.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e", size = 13191993, upload-time = "2025-11-28T15:47:22.336Z" }, - { url = "https://files.pythonhosted.org/packages/5d/75/8e5d492a879ec4490e6ba664b5154e48c46c85b5ac9785792a5ec6a4d58f/mypy-1.19.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d", size = 12174411, upload-time = "2025-11-28T15:44:55.492Z" }, - { url = "https://files.pythonhosted.org/packages/71/31/ad5dcee9bfe226e8eaba777e9d9d251c292650130f0450a280aec3485370/mypy-1.19.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba", size = 12727751, upload-time = "2025-11-28T15:44:14.169Z" }, - { url = "https://files.pythonhosted.org/packages/77/06/b6b8994ce07405f6039701f4b66e9d23f499d0b41c6dd46ec28f96d57ec3/mypy-1.19.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364", size = 13593323, upload-time = "2025-11-28T15:46:34.699Z" }, - { url = "https://files.pythonhosted.org/packages/68/b1/126e274484cccdf099a8e328d4fda1c7bdb98a5e888fa6010b00e1bbf330/mypy-1.19.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee", size = 13818032, upload-time = "2025-11-28T15:46:18.286Z" }, - { url = "https://files.pythonhosted.org/packages/f8/56/53a8f70f562dfc466c766469133a8a4909f6c0012d83993143f2a9d48d2d/mypy-1.19.0-cp313-cp313-win_amd64.whl", hash = "sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53", size = 10120644, upload-time = "2025-11-28T15:47:43.99Z" }, - { url = "https://files.pythonhosted.org/packages/b0/f4/7751f32f56916f7f8c229fe902cbdba3e4dd3f3ea9e8b872be97e7fc546d/mypy-1.19.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d", size = 13185236, upload-time = "2025-11-28T15:45:20.696Z" }, - { url = "https://files.pythonhosted.org/packages/35/31/871a9531f09e78e8d145032355890384f8a5b38c95a2c7732d226b93242e/mypy-1.19.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18", size = 12213902, upload-time = "2025-11-28T15:46:10.117Z" }, - { url = "https://files.pythonhosted.org/packages/58/b8/af221910dd40eeefa2077a59107e611550167b9994693fc5926a0b0f87c0/mypy-1.19.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7", size = 12738600, upload-time = "2025-11-28T15:44:22.521Z" }, - { url = "https://files.pythonhosted.org/packages/11/9f/c39e89a3e319c1d9c734dedec1183b2cc3aefbab066ec611619002abb932/mypy-1.19.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f", size = 13592639, upload-time = "2025-11-28T15:48:08.55Z" }, - { url = "https://files.pythonhosted.org/packages/97/6d/ffaf5f01f5e284d9033de1267e6c1b8f3783f2cf784465378a86122e884b/mypy-1.19.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835", size = 13799132, upload-time = "2025-11-28T15:47:06.032Z" }, - { url = "https://files.pythonhosted.org/packages/fe/b0/c33921e73aaa0106224e5a34822411bea38046188eb781637f5a5b07e269/mypy-1.19.0-cp314-cp314-win_amd64.whl", hash = "sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1", size = 10269832, upload-time = "2025-11-28T15:47:29.392Z" }, - { url = "https://files.pythonhosted.org/packages/09/0e/fe228ed5aeab470c6f4eb82481837fadb642a5aa95cc8215fd2214822c10/mypy-1.19.0-py3-none-any.whl", hash = "sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9", size = 2469714, upload-time = "2025-11-28T15:45:33.22Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload-time = "2025-12-15T05:03:48.42Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/8a/19bfae96f6615aa8a0604915512e0289b1fad33d5909bf7244f02935d33a/mypy-1.19.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", size = 13206053, upload-time = "2025-12-15T05:03:46.622Z" }, + { url = "https://files.pythonhosted.org/packages/a5/34/3e63879ab041602154ba2a9f99817bb0c85c4df19a23a1443c8986e4d565/mypy-1.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e", size = 12219134, upload-time = "2025-12-15T05:03:24.367Z" }, + { url = "https://files.pythonhosted.org/packages/89/cc/2db6f0e95366b630364e09845672dbee0cbf0bbe753a204b29a944967cd9/mypy-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", size = 12731616, upload-time = "2025-12-15T05:02:44.725Z" }, + { url = "https://files.pythonhosted.org/packages/00/be/dd56c1fd4807bc1eba1cf18b2a850d0de7bacb55e158755eb79f77c41f8e/mypy-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", size = 13620847, upload-time = "2025-12-15T05:03:39.633Z" }, + { url = "https://files.pythonhosted.org/packages/6d/42/332951aae42b79329f743bf1da088cd75d8d4d9acc18fbcbd84f26c1af4e/mypy-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", size = 13834976, upload-time = "2025-12-15T05:03:08.786Z" }, + { url = "https://files.pythonhosted.org/packages/6f/63/e7493e5f90e1e085c562bb06e2eb32cae27c5057b9653348d38b47daaecc/mypy-1.19.1-cp312-cp312-win_amd64.whl", hash = "sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13", size = 10118104, upload-time = "2025-12-15T05:03:10.834Z" }, + { url = "https://files.pythonhosted.org/packages/de/9f/a6abae693f7a0c697dbb435aac52e958dc8da44e92e08ba88d2e42326176/mypy-1.19.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250", size = 13201927, upload-time = "2025-12-15T05:02:29.138Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a4/45c35ccf6e1c65afc23a069f50e2c66f46bd3798cbe0d680c12d12935caa/mypy-1.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b", size = 12206730, upload-time = "2025-12-15T05:03:01.325Z" }, + { url = "https://files.pythonhosted.org/packages/05/bb/cdcf89678e26b187650512620eec8368fded4cfd99cfcb431e4cdfd19dec/mypy-1.19.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e", size = 12724581, upload-time = "2025-12-15T05:03:20.087Z" }, + { url = "https://files.pythonhosted.org/packages/d1/32/dd260d52babf67bad8e6770f8e1102021877ce0edea106e72df5626bb0ec/mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef", size = 13616252, upload-time = "2025-12-15T05:02:49.036Z" }, + { url = "https://files.pythonhosted.org/packages/71/d0/5e60a9d2e3bd48432ae2b454b7ef2b62a960ab51292b1eda2a95edd78198/mypy-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", size = 13840848, upload-time = "2025-12-15T05:02:55.95Z" }, + { url = "https://files.pythonhosted.org/packages/98/76/d32051fa65ecf6cc8c6610956473abdc9b4c43301107476ac03559507843/mypy-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", size = 10135510, upload-time = "2025-12-15T05:02:58.438Z" }, + { url = "https://files.pythonhosted.org/packages/de/eb/b83e75f4c820c4247a58580ef86fcd35165028f191e7e1ba57128c52782d/mypy-1.19.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1", size = 13199744, upload-time = "2025-12-15T05:03:30.823Z" }, + { url = "https://files.pythonhosted.org/packages/94/28/52785ab7bfa165f87fcbb61547a93f98bb20e7f82f90f165a1f69bce7b3d/mypy-1.19.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718", size = 12215815, upload-time = "2025-12-15T05:02:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c6/bdd60774a0dbfb05122e3e925f2e9e846c009e479dcec4821dad881f5b52/mypy-1.19.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b", size = 12740047, upload-time = "2025-12-15T05:03:33.168Z" }, + { url = "https://files.pythonhosted.org/packages/32/2a/66ba933fe6c76bd40d1fe916a83f04fed253152f451a877520b3c4a5e41e/mypy-1.19.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045", size = 13601998, upload-time = "2025-12-15T05:03:13.056Z" }, + { url = "https://files.pythonhosted.org/packages/e3/da/5055c63e377c5c2418760411fd6a63ee2b96cf95397259038756c042574f/mypy-1.19.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957", size = 13807476, upload-time = "2025-12-15T05:03:17.977Z" }, + { url = "https://files.pythonhosted.org/packages/cd/09/4ebd873390a063176f06b0dbf1f7783dd87bd120eae7727fa4ae4179b685/mypy-1.19.1-cp314-cp314-win_amd64.whl", hash = "sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f", size = 10281872, upload-time = "2025-12-15T05:03:05.549Z" }, + { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload-time = "2025-12-15T05:03:07.248Z" }, ] [[package]] @@ -705,74 +634,72 @@ wheels = [ [[package]] name = "nodeenv" -version = "1.9.1" +version = "1.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437, upload-time = "2024-06-04T18:44:11.171Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload-time = "2025-12-20T14:08:54.006Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" }, + { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload-time = "2025-12-20T14:08:52.782Z" }, ] [[package]] name = "numpy" -version = "2.3.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/76/65/21b3bc86aac7b8f2862db1e808f1ea22b028e30a225a34a5ede9bf8678f2/numpy-2.3.5.tar.gz", hash = "sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0", size = 20584950, upload-time = "2025-11-16T22:52:42.067Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/44/37/e669fe6cbb2b96c62f6bbedc6a81c0f3b7362f6a59230b23caa673a85721/numpy-2.3.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e", size = 16733873, upload-time = "2025-11-16T22:49:49.84Z" }, - { url = "https://files.pythonhosted.org/packages/c5/65/df0db6c097892c9380851ab9e44b52d4f7ba576b833996e0080181c0c439/numpy-2.3.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769", size = 12259838, upload-time = "2025-11-16T22:49:52.863Z" }, - { url = "https://files.pythonhosted.org/packages/5b/e1/1ee06e70eb2136797abe847d386e7c0e830b67ad1d43f364dd04fa50d338/numpy-2.3.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5", size = 5088378, upload-time = "2025-11-16T22:49:55.055Z" }, - { url = "https://files.pythonhosted.org/packages/6d/9c/1ca85fb86708724275103b81ec4cf1ac1d08f465368acfc8da7ab545bdae/numpy-2.3.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4", size = 6628559, upload-time = "2025-11-16T22:49:57.371Z" }, - { url = "https://files.pythonhosted.org/packages/74/78/fcd41e5a0ce4f3f7b003da85825acddae6d7ecb60cf25194741b036ca7d6/numpy-2.3.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d", size = 14250702, upload-time = "2025-11-16T22:49:59.632Z" }, - { url = "https://files.pythonhosted.org/packages/b6/23/2a1b231b8ff672b4c450dac27164a8b2ca7d9b7144f9c02d2396518352eb/numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28", size = 16606086, upload-time = "2025-11-16T22:50:02.127Z" }, - { url = "https://files.pythonhosted.org/packages/a0/c5/5ad26fbfbe2012e190cc7d5003e4d874b88bb18861d0829edc140a713021/numpy-2.3.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b", size = 16025985, upload-time = "2025-11-16T22:50:04.536Z" }, - { url = "https://files.pythonhosted.org/packages/d2/fa/dd48e225c46c819288148d9d060b047fd2a6fb1eb37eae25112ee4cb4453/numpy-2.3.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c", size = 18542976, upload-time = "2025-11-16T22:50:07.557Z" }, - { url = "https://files.pythonhosted.org/packages/05/79/ccbd23a75862d95af03d28b5c6901a1b7da4803181513d52f3b86ed9446e/numpy-2.3.5-cp312-cp312-win32.whl", hash = "sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952", size = 6285274, upload-time = "2025-11-16T22:50:10.746Z" }, - { url = "https://files.pythonhosted.org/packages/2d/57/8aeaf160312f7f489dea47ab61e430b5cb051f59a98ae68b7133ce8fa06a/numpy-2.3.5-cp312-cp312-win_amd64.whl", hash = "sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa", size = 12782922, upload-time = "2025-11-16T22:50:12.811Z" }, - { url = "https://files.pythonhosted.org/packages/78/a6/aae5cc2ca78c45e64b9ef22f089141d661516856cf7c8a54ba434576900d/numpy-2.3.5-cp312-cp312-win_arm64.whl", hash = "sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013", size = 10194667, upload-time = "2025-11-16T22:50:16.16Z" }, - { url = "https://files.pythonhosted.org/packages/db/69/9cde09f36da4b5a505341180a3f2e6fadc352fd4d2b7096ce9778db83f1a/numpy-2.3.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff", size = 16728251, upload-time = "2025-11-16T22:50:19.013Z" }, - { url = "https://files.pythonhosted.org/packages/79/fb/f505c95ceddd7027347b067689db71ca80bd5ecc926f913f1a23e65cf09b/numpy-2.3.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188", size = 12254652, upload-time = "2025-11-16T22:50:21.487Z" }, - { url = "https://files.pythonhosted.org/packages/78/da/8c7738060ca9c31b30e9301ee0cf6c5ffdbf889d9593285a1cead337f9a5/numpy-2.3.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0", size = 5083172, upload-time = "2025-11-16T22:50:24.562Z" }, - { url = "https://files.pythonhosted.org/packages/a4/b4/ee5bb2537fb9430fd2ef30a616c3672b991a4129bb1c7dcc42aa0abbe5d7/numpy-2.3.5-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903", size = 6622990, upload-time = "2025-11-16T22:50:26.47Z" }, - { url = "https://files.pythonhosted.org/packages/95/03/dc0723a013c7d7c19de5ef29e932c3081df1c14ba582b8b86b5de9db7f0f/numpy-2.3.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d", size = 14248902, upload-time = "2025-11-16T22:50:28.861Z" }, - { url = "https://files.pythonhosted.org/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017", size = 16597430, upload-time = "2025-11-16T22:50:31.56Z" }, - { url = "https://files.pythonhosted.org/packages/2a/51/c1e29be863588db58175175f057286900b4b3327a1351e706d5e0f8dd679/numpy-2.3.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf", size = 16024551, upload-time = "2025-11-16T22:50:34.242Z" }, - { url = "https://files.pythonhosted.org/packages/83/68/8236589d4dbb87253d28259d04d9b814ec0ecce7cb1c7fed29729f4c3a78/numpy-2.3.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce", size = 18533275, upload-time = "2025-11-16T22:50:37.651Z" }, - { url = "https://files.pythonhosted.org/packages/40/56/2932d75b6f13465239e3b7b7e511be27f1b8161ca2510854f0b6e521c395/numpy-2.3.5-cp313-cp313-win32.whl", hash = "sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e", size = 6277637, upload-time = "2025-11-16T22:50:40.11Z" }, - { url = "https://files.pythonhosted.org/packages/0c/88/e2eaa6cffb115b85ed7c7c87775cb8bcf0816816bc98ca8dbfa2ee33fe6e/numpy-2.3.5-cp313-cp313-win_amd64.whl", hash = "sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b", size = 12779090, upload-time = "2025-11-16T22:50:42.503Z" }, - { url = "https://files.pythonhosted.org/packages/8f/88/3f41e13a44ebd4034ee17baa384acac29ba6a4fcc2aca95f6f08ca0447d1/numpy-2.3.5-cp313-cp313-win_arm64.whl", hash = "sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae", size = 10194710, upload-time = "2025-11-16T22:50:44.971Z" }, - { url = "https://files.pythonhosted.org/packages/13/cb/71744144e13389d577f867f745b7df2d8489463654a918eea2eeb166dfc9/numpy-2.3.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd", size = 16827292, upload-time = "2025-11-16T22:50:47.715Z" }, - { url = "https://files.pythonhosted.org/packages/71/80/ba9dc6f2a4398e7f42b708a7fdc841bb638d353be255655498edbf9a15a8/numpy-2.3.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f", size = 12378897, upload-time = "2025-11-16T22:50:51.327Z" }, - { url = "https://files.pythonhosted.org/packages/2e/6d/db2151b9f64264bcceccd51741aa39b50150de9b602d98ecfe7e0c4bff39/numpy-2.3.5-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a", size = 5207391, upload-time = "2025-11-16T22:50:54.542Z" }, - { url = "https://files.pythonhosted.org/packages/80/ae/429bacace5ccad48a14c4ae5332f6aa8ab9f69524193511d60ccdfdc65fa/numpy-2.3.5-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139", size = 6721275, upload-time = "2025-11-16T22:50:56.794Z" }, - { url = "https://files.pythonhosted.org/packages/74/5b/1919abf32d8722646a38cd527bc3771eb229a32724ee6ba340ead9b92249/numpy-2.3.5-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e", size = 14306855, upload-time = "2025-11-16T22:50:59.208Z" }, - { url = "https://files.pythonhosted.org/packages/a5/87/6831980559434973bebc30cd9c1f21e541a0f2b0c280d43d3afd909b66d0/numpy-2.3.5-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9", size = 16657359, upload-time = "2025-11-16T22:51:01.991Z" }, - { url = "https://files.pythonhosted.org/packages/dd/91/c797f544491ee99fd00495f12ebb7802c440c1915811d72ac5b4479a3356/numpy-2.3.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946", size = 16093374, upload-time = "2025-11-16T22:51:05.291Z" }, - { url = "https://files.pythonhosted.org/packages/74/a6/54da03253afcbe7a72785ec4da9c69fb7a17710141ff9ac5fcb2e32dbe64/numpy-2.3.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1", size = 18594587, upload-time = "2025-11-16T22:51:08.585Z" }, - { url = "https://files.pythonhosted.org/packages/80/e9/aff53abbdd41b0ecca94285f325aff42357c6b5abc482a3fcb4994290b18/numpy-2.3.5-cp313-cp313t-win32.whl", hash = "sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3", size = 6405940, upload-time = "2025-11-16T22:51:11.541Z" }, - { url = "https://files.pythonhosted.org/packages/d5/81/50613fec9d4de5480de18d4f8ef59ad7e344d497edbef3cfd80f24f98461/numpy-2.3.5-cp313-cp313t-win_amd64.whl", hash = "sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234", size = 12920341, upload-time = "2025-11-16T22:51:14.312Z" }, - { url = "https://files.pythonhosted.org/packages/bb/ab/08fd63b9a74303947f34f0bd7c5903b9c5532c2d287bead5bdf4c556c486/numpy-2.3.5-cp313-cp313t-win_arm64.whl", hash = "sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7", size = 10262507, upload-time = "2025-11-16T22:51:16.846Z" }, - { url = "https://files.pythonhosted.org/packages/ba/97/1a914559c19e32d6b2e233cf9a6a114e67c856d35b1d6babca571a3e880f/numpy-2.3.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82", size = 16735706, upload-time = "2025-11-16T22:51:19.558Z" }, - { url = "https://files.pythonhosted.org/packages/57/d4/51233b1c1b13ecd796311216ae417796b88b0616cfd8a33ae4536330748a/numpy-2.3.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0", size = 12264507, upload-time = "2025-11-16T22:51:22.492Z" }, - { url = "https://files.pythonhosted.org/packages/45/98/2fe46c5c2675b8306d0b4a3ec3494273e93e1226a490f766e84298576956/numpy-2.3.5-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63", size = 5093049, upload-time = "2025-11-16T22:51:25.171Z" }, - { url = "https://files.pythonhosted.org/packages/ce/0e/0698378989bb0ac5f1660c81c78ab1fe5476c1a521ca9ee9d0710ce54099/numpy-2.3.5-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9", size = 6626603, upload-time = "2025-11-16T22:51:27Z" }, - { url = "https://files.pythonhosted.org/packages/5e/a6/9ca0eecc489640615642a6cbc0ca9e10df70df38c4d43f5a928ff18d8827/numpy-2.3.5-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b", size = 14262696, upload-time = "2025-11-16T22:51:29.402Z" }, - { url = "https://files.pythonhosted.org/packages/c8/f6/07ec185b90ec9d7217a00eeeed7383b73d7e709dae2a9a021b051542a708/numpy-2.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520", size = 16597350, upload-time = "2025-11-16T22:51:32.167Z" }, - { url = "https://files.pythonhosted.org/packages/75/37/164071d1dde6a1a84c9b8e5b414fa127981bad47adf3a6b7e23917e52190/numpy-2.3.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c", size = 16040190, upload-time = "2025-11-16T22:51:35.403Z" }, - { url = "https://files.pythonhosted.org/packages/08/3c/f18b82a406b04859eb026d204e4e1773eb41c5be58410f41ffa511d114ae/numpy-2.3.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8", size = 18536749, upload-time = "2025-11-16T22:51:39.698Z" }, - { url = "https://files.pythonhosted.org/packages/40/79/f82f572bf44cf0023a2fe8588768e23e1592585020d638999f15158609e1/numpy-2.3.5-cp314-cp314-win32.whl", hash = "sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248", size = 6335432, upload-time = "2025-11-16T22:51:42.476Z" }, - { url = "https://files.pythonhosted.org/packages/a3/2e/235b4d96619931192c91660805e5e49242389742a7a82c27665021db690c/numpy-2.3.5-cp314-cp314-win_amd64.whl", hash = "sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e", size = 12919388, upload-time = "2025-11-16T22:51:45.275Z" }, - { url = "https://files.pythonhosted.org/packages/07/2b/29fd75ce45d22a39c61aad74f3d718e7ab67ccf839ca8b60866054eb15f8/numpy-2.3.5-cp314-cp314-win_arm64.whl", hash = "sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2", size = 10476651, upload-time = "2025-11-16T22:51:47.749Z" }, - { url = "https://files.pythonhosted.org/packages/17/e1/f6a721234ebd4d87084cfa68d081bcba2f5cfe1974f7de4e0e8b9b2a2ba1/numpy-2.3.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41", size = 16834503, upload-time = "2025-11-16T22:51:50.443Z" }, - { url = "https://files.pythonhosted.org/packages/5c/1c/baf7ffdc3af9c356e1c135e57ab7cf8d247931b9554f55c467efe2c69eff/numpy-2.3.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad", size = 12381612, upload-time = "2025-11-16T22:51:53.609Z" }, - { url = "https://files.pythonhosted.org/packages/74/91/f7f0295151407ddc9ba34e699013c32c3c91944f9b35fcf9281163dc1468/numpy-2.3.5-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39", size = 5210042, upload-time = "2025-11-16T22:51:56.213Z" }, - { url = "https://files.pythonhosted.org/packages/2e/3b/78aebf345104ec50dd50a4d06ddeb46a9ff5261c33bcc58b1c4f12f85ec2/numpy-2.3.5-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20", size = 6724502, upload-time = "2025-11-16T22:51:58.584Z" }, - { url = "https://files.pythonhosted.org/packages/02/c6/7c34b528740512e57ef1b7c8337ab0b4f0bddf34c723b8996c675bc2bc91/numpy-2.3.5-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52", size = 14308962, upload-time = "2025-11-16T22:52:01.698Z" }, - { url = "https://files.pythonhosted.org/packages/80/35/09d433c5262bc32d725bafc619e095b6a6651caf94027a03da624146f655/numpy-2.3.5-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b", size = 16655054, upload-time = "2025-11-16T22:52:04.267Z" }, - { url = "https://files.pythonhosted.org/packages/7a/ab/6a7b259703c09a88804fa2430b43d6457b692378f6b74b356155283566ac/numpy-2.3.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3", size = 16091613, upload-time = "2025-11-16T22:52:08.651Z" }, - { url = "https://files.pythonhosted.org/packages/c2/88/330da2071e8771e60d1038166ff9d73f29da37b01ec3eb43cb1427464e10/numpy-2.3.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227", size = 18591147, upload-time = "2025-11-16T22:52:11.453Z" }, - { url = "https://files.pythonhosted.org/packages/51/41/851c4b4082402d9ea860c3626db5d5df47164a712cb23b54be028b184c1c/numpy-2.3.5-cp314-cp314t-win32.whl", hash = "sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5", size = 6479806, upload-time = "2025-11-16T22:52:14.641Z" }, - { url = "https://files.pythonhosted.org/packages/90/30/d48bde1dfd93332fa557cff1972fbc039e055a52021fbef4c2c4b1eefd17/numpy-2.3.5-cp314-cp314t-win_amd64.whl", hash = "sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf", size = 13105760, upload-time = "2025-11-16T22:52:17.975Z" }, - { url = "https://files.pythonhosted.org/packages/2d/fd/4b5eb0b3e888d86aee4d198c23acec7d214baaf17ea93c1adec94c9518b9/numpy-2.3.5-cp314-cp314t-win_arm64.whl", hash = "sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42", size = 10545459, upload-time = "2025-11-16T22:52:20.55Z" }, +version = "2.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz", hash = "sha256:659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae", size = 20723651, upload-time = "2026-01-31T23:13:10.135Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/6e/6f394c9c77668153e14d4da83bcc247beb5952f6ead7699a1a2992613bea/numpy-2.4.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:21982668592194c609de53ba4933a7471880ccbaadcc52352694a59ecc860b3a", size = 16667963, upload-time = "2026-01-31T23:10:52.147Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/55483431f2b2fd015ae6ed4fe62288823ce908437ed49db5a03d15151678/numpy-2.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40397bda92382fcec844066efb11f13e1c9a3e2a8e8f318fb72ed8b6db9f60f1", size = 14693571, upload-time = "2026-01-31T23:10:54.789Z" }, + { url = "https://files.pythonhosted.org/packages/2f/20/18026832b1845cdc82248208dd929ca14c9d8f2bac391f67440707fff27c/numpy-2.4.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:b3a24467af63c67829bfaa61eecf18d5432d4f11992688537be59ecd6ad32f5e", size = 5203469, upload-time = "2026-01-31T23:10:57.343Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/2eb97c8a77daaba34eaa3fa7241a14ac5f51c46a6bd5911361b644c4a1e2/numpy-2.4.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:805cc8de9fd6e7a22da5aed858e0ab16be5a4db6c873dde1d7451c541553aa27", size = 6550820, upload-time = "2026-01-31T23:10:59.429Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/b97fdfd12dc75b02c44e26c6638241cc004d4079a0321a69c62f51470c4c/numpy-2.4.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d82351358ffbcdcd7b686b90742a9b86632d6c1c051016484fa0b326a0a1548", size = 15663067, upload-time = "2026-01-31T23:11:01.291Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c6/a18e59f3f0b8071cc85cbc8d80cd02d68aa9710170b2553a117203d46936/numpy-2.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e35d3e0144137d9fdae62912e869136164534d64a169f86438bc9561b6ad49f", size = 16619782, upload-time = "2026-01-31T23:11:03.669Z" }, + { url = "https://files.pythonhosted.org/packages/b7/83/9751502164601a79e18847309f5ceec0b1446d7b6aa12305759b72cf98b2/numpy-2.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adb6ed2ad29b9e15321d167d152ee909ec73395901b70936f029c3bc6d7f4460", size = 17013128, upload-time = "2026-01-31T23:11:05.913Z" }, + { url = "https://files.pythonhosted.org/packages/61/c4/c4066322256ec740acc1c8923a10047818691d2f8aec254798f3dd90f5f2/numpy-2.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8906e71fd8afcb76580404e2a950caef2685df3d2a57fe82a86ac8d33cc007ba", size = 18345324, upload-time = "2026-01-31T23:11:08.248Z" }, + { url = "https://files.pythonhosted.org/packages/ab/af/6157aa6da728fa4525a755bfad486ae7e3f76d4c1864138003eb84328497/numpy-2.4.2-cp312-cp312-win32.whl", hash = "sha256:ec055f6dae239a6299cace477b479cca2fc125c5675482daf1dd886933a1076f", size = 5960282, upload-time = "2026-01-31T23:11:10.497Z" }, + { url = "https://files.pythonhosted.org/packages/92/0f/7ceaaeaacb40567071e94dbf2c9480c0ae453d5bb4f52bea3892c39dc83c/numpy-2.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:209fae046e62d0ce6435fcfe3b1a10537e858249b3d9b05829e2a05218296a85", size = 12314210, upload-time = "2026-01-31T23:11:12.176Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a3/56c5c604fae6dd40fa2ed3040d005fca97e91bd320d232ac9931d77ba13c/numpy-2.4.2-cp312-cp312-win_arm64.whl", hash = "sha256:fbde1b0c6e81d56f5dccd95dd4a711d9b95df1ae4009a60887e56b27e8d903fa", size = 10220171, upload-time = "2026-01-31T23:11:14.684Z" }, + { url = "https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25f2059807faea4b077a2b6837391b5d830864b3543627f381821c646f31a63c", size = 16663696, upload-time = "2026-01-31T23:11:17.516Z" }, + { url = "https://files.pythonhosted.org/packages/09/f0/817d03a03f93ba9c6c8993de509277d84e69f9453601915e4a69554102a1/numpy-2.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bd3a7a9f5847d2fb8c2c6d1c862fa109c31a9abeca1a3c2bd5a64572955b2979", size = 14688322, upload-time = "2026-01-31T23:11:19.883Z" }, + { url = "https://files.pythonhosted.org/packages/da/b4/f805ab79293c728b9a99438775ce51885fd4f31b76178767cfc718701a39/numpy-2.4.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8e4549f8a3c6d13d55041925e912bfd834285ef1dd64d6bc7d542583355e2e98", size = 5198157, upload-time = "2026-01-31T23:11:22.375Z" }, + { url = "https://files.pythonhosted.org/packages/74/09/826e4289844eccdcd64aac27d13b0fd3f32039915dd5b9ba01baae1f436c/numpy-2.4.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:aea4f66ff44dfddf8c2cffd66ba6538c5ec67d389285292fe428cb2c738c8aef", size = 6546330, upload-time = "2026-01-31T23:11:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/19/fb/cbfdbfa3057a10aea5422c558ac57538e6acc87ec1669e666d32ac198da7/numpy-2.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3cd545784805de05aafe1dde61752ea49a359ccba9760c1e5d1c88a93bbf2b7", size = 15660968, upload-time = "2026-01-31T23:11:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499", size = 16607311, upload-time = "2026-01-31T23:11:28.117Z" }, + { url = "https://files.pythonhosted.org/packages/14/d9/4b5adfc39a43fa6bf918c6d544bc60c05236cc2f6339847fc5b35e6cb5b0/numpy-2.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f74f0f7779cc7ae07d1810aab8ac6b1464c3eafb9e283a40da7309d5e6e48fbb", size = 17012850, upload-time = "2026-01-31T23:11:30.888Z" }, + { url = "https://files.pythonhosted.org/packages/b7/20/adb6e6adde6d0130046e6fdfb7675cc62bc2f6b7b02239a09eb58435753d/numpy-2.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7ac672d699bf36275c035e16b65539931347d68b70667d28984c9fb34e07fa7", size = 18334210, upload-time = "2026-01-31T23:11:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/78/0e/0a73b3dff26803a8c02baa76398015ea2a5434d9b8265a7898a6028c1591/numpy-2.4.2-cp313-cp313-win32.whl", hash = "sha256:8e9afaeb0beff068b4d9cd20d322ba0ee1cecfb0b08db145e4ab4dd44a6b5110", size = 5958199, upload-time = "2026-01-31T23:11:35.385Z" }, + { url = "https://files.pythonhosted.org/packages/43/bc/6352f343522fcb2c04dbaf94cb30cca6fd32c1a750c06ad6231b4293708c/numpy-2.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:7df2de1e4fba69a51c06c28f5a3de36731eb9639feb8e1cf7e4a7b0daf4cf622", size = 12310848, upload-time = "2026-01-31T23:11:38.001Z" }, + { url = "https://files.pythonhosted.org/packages/6e/8d/6da186483e308da5da1cc6918ce913dcfe14ffde98e710bfeff2a6158d4e/numpy-2.4.2-cp313-cp313-win_arm64.whl", hash = "sha256:0fece1d1f0a89c16b03442eae5c56dc0be0c7883b5d388e0c03f53019a4bfd71", size = 10221082, upload-time = "2026-01-31T23:11:40.392Z" }, + { url = "https://files.pythonhosted.org/packages/25/a1/9510aa43555b44781968935c7548a8926274f815de42ad3997e9e83680dd/numpy-2.4.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5633c0da313330fd20c484c78cdd3f9b175b55e1a766c4a174230c6b70ad8262", size = 14815866, upload-time = "2026-01-31T23:11:42.495Z" }, + { url = "https://files.pythonhosted.org/packages/36/30/6bbb5e76631a5ae46e7923dd16ca9d3f1c93cfa8d4ed79a129814a9d8db3/numpy-2.4.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d9f64d786b3b1dd742c946c42d15b07497ed14af1a1f3ce840cce27daa0ce913", size = 5325631, upload-time = "2026-01-31T23:11:44.7Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/3a490938800c1923b567b3a15cd17896e68052e2145d8662aaf3e1ffc58f/numpy-2.4.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:b21041e8cb6a1eb5312dd1d2f80a94d91efffb7a06b70597d44f1bd2dfc315ab", size = 6646254, upload-time = "2026-01-31T23:11:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e9/fac0890149898a9b609caa5af7455a948b544746e4b8fe7c212c8edd71f8/numpy-2.4.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00ab83c56211a1d7c07c25e3217ea6695e50a3e2f255053686b081dc0b091a82", size = 15720138, upload-time = "2026-01-31T23:11:48.082Z" }, + { url = "https://files.pythonhosted.org/packages/ea/5c/08887c54e68e1e28df53709f1893ce92932cc6f01f7c3d4dc952f61ffd4e/numpy-2.4.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fb882da679409066b4603579619341c6d6898fc83a8995199d5249f986e8e8f", size = 16655398, upload-time = "2026-01-31T23:11:50.293Z" }, + { url = "https://files.pythonhosted.org/packages/4d/89/253db0fa0e66e9129c745e4ef25631dc37d5f1314dad2b53e907b8538e6d/numpy-2.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66cb9422236317f9d44b67b4d18f44efe6e9c7f8794ac0462978513359461554", size = 17079064, upload-time = "2026-01-31T23:11:52.927Z" }, + { url = "https://files.pythonhosted.org/packages/2a/d5/cbade46ce97c59c6c3da525e8d95b7abe8a42974a1dc5c1d489c10433e88/numpy-2.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0f01dcf33e73d80bd8dc0f20a71303abbafa26a19e23f6b68d1aa9990af90257", size = 18379680, upload-time = "2026-01-31T23:11:55.22Z" }, + { url = "https://files.pythonhosted.org/packages/40/62/48f99ae172a4b63d981babe683685030e8a3df4f246c893ea5c6ef99f018/numpy-2.4.2-cp313-cp313t-win32.whl", hash = "sha256:52b913ec40ff7ae845687b0b34d8d93b60cb66dcee06996dd5c99f2fc9328657", size = 6082433, upload-time = "2026-01-31T23:11:58.096Z" }, + { url = "https://files.pythonhosted.org/packages/07/38/e054a61cfe48ad9f1ed0d188e78b7e26859d0b60ef21cd9de4897cdb5326/numpy-2.4.2-cp313-cp313t-win_amd64.whl", hash = "sha256:5eea80d908b2c1f91486eb95b3fb6fab187e569ec9752ab7d9333d2e66bf2d6b", size = 12451181, upload-time = "2026-01-31T23:11:59.782Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a4/a05c3a6418575e185dd84d0b9680b6bb2e2dc3e4202f036b7b4e22d6e9dc/numpy-2.4.2-cp313-cp313t-win_arm64.whl", hash = "sha256:fd49860271d52127d61197bb50b64f58454e9f578cb4b2c001a6de8b1f50b0b1", size = 10290756, upload-time = "2026-01-31T23:12:02.438Z" }, + { url = "https://files.pythonhosted.org/packages/18/88/b7df6050bf18fdcfb7046286c6535cabbdd2064a3440fca3f069d319c16e/numpy-2.4.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:444be170853f1f9d528428eceb55f12918e4fda5d8805480f36a002f1415e09b", size = 16663092, upload-time = "2026-01-31T23:12:04.521Z" }, + { url = "https://files.pythonhosted.org/packages/25/7a/1fee4329abc705a469a4afe6e69b1ef7e915117747886327104a8493a955/numpy-2.4.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d1240d50adff70c2a88217698ca844723068533f3f5c5fa6ee2e3220e3bdb000", size = 14698770, upload-time = "2026-01-31T23:12:06.96Z" }, + { url = "https://files.pythonhosted.org/packages/fb/0b/f9e49ba6c923678ad5bc38181c08ac5e53b7a5754dbca8e581aa1a56b1ff/numpy-2.4.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:7cdde6de52fb6664b00b056341265441192d1291c130e99183ec0d4b110ff8b1", size = 5208562, upload-time = "2026-01-31T23:12:09.632Z" }, + { url = "https://files.pythonhosted.org/packages/7d/12/d7de8f6f53f9bb76997e5e4c069eda2051e3fe134e9181671c4391677bb2/numpy-2.4.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:cda077c2e5b780200b6b3e09d0b42205a3d1c68f30c6dceb90401c13bff8fe74", size = 6543710, upload-time = "2026-01-31T23:12:11.969Z" }, + { url = "https://files.pythonhosted.org/packages/09/63/c66418c2e0268a31a4cf8a8b512685748200f8e8e8ec6c507ce14e773529/numpy-2.4.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d30291931c915b2ab5717c2974bb95ee891a1cf22ebc16a8006bd59cd210d40a", size = 15677205, upload-time = "2026-01-31T23:12:14.33Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6c/7f237821c9642fb2a04d2f1e88b4295677144ca93285fd76eff3bcba858d/numpy-2.4.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bba37bc29d4d85761deed3954a1bc62be7cf462b9510b51d367b769a8c8df325", size = 16611738, upload-time = "2026-01-31T23:12:16.525Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/39c4cdda9f019b609b5c473899d87abff092fc908cfe4d1ecb2fcff453b0/numpy-2.4.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b2f0073ed0868db1dcd86e052d37279eef185b9c8db5bf61f30f46adac63c909", size = 17028888, upload-time = "2026-01-31T23:12:19.306Z" }, + { url = "https://files.pythonhosted.org/packages/da/b3/e84bb64bdfea967cc10950d71090ec2d84b49bc691df0025dddb7c26e8e3/numpy-2.4.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7f54844851cdb630ceb623dcec4db3240d1ac13d4990532446761baede94996a", size = 18339556, upload-time = "2026-01-31T23:12:21.816Z" }, + { url = "https://files.pythonhosted.org/packages/88/f5/954a291bc1192a27081706862ac62bb5920fbecfbaa302f64682aa90beed/numpy-2.4.2-cp314-cp314-win32.whl", hash = "sha256:12e26134a0331d8dbd9351620f037ec470b7c75929cb8a1537f6bfe411152a1a", size = 6006899, upload-time = "2026-01-31T23:12:24.14Z" }, + { url = "https://files.pythonhosted.org/packages/05/cb/eff72a91b2efdd1bc98b3b8759f6a1654aa87612fc86e3d87d6fe4f948c4/numpy-2.4.2-cp314-cp314-win_amd64.whl", hash = "sha256:068cdb2d0d644cdb45670810894f6a0600797a69c05f1ac478e8d31670b8ee75", size = 12443072, upload-time = "2026-01-31T23:12:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/37/75/62726948db36a56428fce4ba80a115716dc4fad6a3a4352487f8bb950966/numpy-2.4.2-cp314-cp314-win_arm64.whl", hash = "sha256:6ed0be1ee58eef41231a5c943d7d1375f093142702d5723ca2eb07db9b934b05", size = 10494886, upload-time = "2026-01-31T23:12:28.488Z" }, + { url = "https://files.pythonhosted.org/packages/36/2f/ee93744f1e0661dc267e4b21940870cabfae187c092e1433b77b09b50ac4/numpy-2.4.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:98f16a80e917003a12c0580f97b5f875853ebc33e2eaa4bccfc8201ac6869308", size = 14818567, upload-time = "2026-01-31T23:12:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/a7/24/6535212add7d76ff938d8bdc654f53f88d35cddedf807a599e180dcb8e66/numpy-2.4.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:20abd069b9cda45874498b245c8015b18ace6de8546bf50dfa8cea1696ed06ef", size = 5328372, upload-time = "2026-01-31T23:12:32.962Z" }, + { url = "https://files.pythonhosted.org/packages/5e/9d/c48f0a035725f925634bf6b8994253b43f2047f6778a54147d7e213bc5a7/numpy-2.4.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:e98c97502435b53741540a5717a6749ac2ada901056c7db951d33e11c885cc7d", size = 6649306, upload-time = "2026-01-31T23:12:34.797Z" }, + { url = "https://files.pythonhosted.org/packages/81/05/7c73a9574cd4a53a25907bad38b59ac83919c0ddc8234ec157f344d57d9a/numpy-2.4.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da6cad4e82cb893db4b69105c604d805e0c3ce11501a55b5e9f9083b47d2ffe8", size = 15722394, upload-time = "2026-01-31T23:12:36.565Z" }, + { url = "https://files.pythonhosted.org/packages/35/fa/4de10089f21fc7d18442c4a767ab156b25c2a6eaf187c0db6d9ecdaeb43f/numpy-2.4.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e4424677ce4b47fe73c8b5556d876571f7c6945d264201180db2dc34f676ab5", size = 16653343, upload-time = "2026-01-31T23:12:39.188Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f9/d33e4ffc857f3763a57aa85650f2e82486832d7492280ac21ba9efda80da/numpy-2.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2b8f157c8a6f20eb657e240f8985cc135598b2b46985c5bccbde7616dc9c6b1e", size = 17078045, upload-time = "2026-01-31T23:12:42.041Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b8/54bdb43b6225badbea6389fa038c4ef868c44f5890f95dd530a218706da3/numpy-2.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5daf6f3914a733336dab21a05cdec343144600e964d2fcdabaac0c0269874b2a", size = 18380024, upload-time = "2026-01-31T23:12:44.331Z" }, + { url = "https://files.pythonhosted.org/packages/a5/55/6e1a61ded7af8df04016d81b5b02daa59f2ea9252ee0397cb9f631efe9e5/numpy-2.4.2-cp314-cp314t-win32.whl", hash = "sha256:8c50dd1fc8826f5b26a5ee4d77ca55d88a895f4e4819c7ecc2a9f5905047a443", size = 6153937, upload-time = "2026-01-31T23:12:47.229Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/fa6118d1ed6d776b0983f3ceac9b1a5558e80df9365b1c3aa6d42bf9eee4/numpy-2.4.2-cp314-cp314t-win_amd64.whl", hash = "sha256:fcf92bee92742edd401ba41135185866f7026c502617f422eb432cfeca4fe236", size = 12631844, upload-time = "2026-01-31T23:12:48.997Z" }, + { url = "https://files.pythonhosted.org/packages/32/0a/2ec5deea6dcd158f254a7b372fb09cfba5719419c8d66343bab35237b3fb/numpy-2.4.2-cp314-cp314t-win_arm64.whl", hash = "sha256:1f92f53998a17265194018d1cc321b2e96e900ca52d54c7c77837b71b9465181", size = 10565379, upload-time = "2026-01-31T23:12:51.345Z" }, ] [[package]] @@ -795,23 +722,23 @@ wheels = [ [[package]] name = "pandapower" -version = "3.2.1" +version = "3.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "deepdiff" }, { name = "geojson" }, - { name = "lxml" }, { name = "networkx" }, { name = "numpy" }, { name = "packaging" }, { name = "pandas" }, + { name = "pandera" }, { name = "scipy" }, { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/de/68/a34cf6518502ca21ff4bfc4277842afb9020aa50cc4cae29d97e4d2a5aad/pandapower-3.2.1.tar.gz", hash = "sha256:c73648cd0db693a9b7551daa1f2a15f16a50c5b67944797ebda9f3e3a27017ef", size = 5208503, upload-time = "2025-10-27T07:38:25.697Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c5/93/253e1d013047b6416c22d05359b98a9931162dc3ce6fba6ac5f331287bc9/pandapower-3.3.2.tar.gz", hash = "sha256:4392be6857d94f91f881e29dbfa2e22707c95cd5c5c550cc16583a6517d6d61a", size = 5220882, upload-time = "2026-01-14T12:23:11.19Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/45/a4/cb151c6f5cdad908735956cd450abd2bb5d271088842f53a229381c573db/pandapower-3.2.1-py3-none-any.whl", hash = "sha256:23646f73b55c44044d7f55de0995d629737c76eb6659587e5d51a9e3ad5c1238", size = 5482582, upload-time = "2025-10-27T07:38:23.024Z" }, + { url = "https://files.pythonhosted.org/packages/50/61/7ee46418d731d9d1bf9f998a513e8474002f2c60a03d97f9caedf26f43c1/pandapower-3.3.2-py3-none-any.whl", hash = "sha256:eee09e3f5cac3c13bb10da656e5e096ee24a057feb8bee153ae2612dfdbc1999", size = 5528835, upload-time = "2026-01-14T12:23:09.273Z" }, ] [[package]] @@ -863,93 +790,109 @@ wheels = [ [[package]] name = "pandas-stubs" -version = "2.3.3.251201" +version = "2.3.3.260113" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, { name = "types-pytz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ee/a6/491b2af2cb3ee232765a73fb273a44cc1ac33b154f7745b2df2ee1dc4d01/pandas_stubs-2.3.3.251201.tar.gz", hash = "sha256:7a980f4f08cff2a6d7e4c6d6d26f4c5fcdb82a6f6531489b2f75c81567fe4536", size = 107787, upload-time = "2025-12-01T18:29:22.403Z" } +sdist = { url = "https://files.pythonhosted.org/packages/92/5d/be23854a73fda69f1dbdda7bc10fbd6f930bd1fa87aaec389f00c901c1e8/pandas_stubs-2.3.3.260113.tar.gz", hash = "sha256:076e3724bcaa73de78932b012ec64b3010463d377fa63116f4e6850643d93800", size = 116131, upload-time = "2026-01-13T22:30:16.704Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/c6/df1fe324248424f77b89371116dab5243db7f052c32cc9fe7442ad9c5f75/pandas_stubs-2.3.3.260113-py3-none-any.whl", hash = "sha256:ec070b5c576e1badf12544ae50385872f0631fc35d99d00dc598c2954ec564d3", size = 168246, upload-time = "2026-01-13T22:30:15.244Z" }, +] + +[[package]] +name = "pandera" +version = "0.26.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, + { name = "pydantic" }, + { name = "typeguard" }, + { name = "typing-extensions" }, + { name = "typing-inspect" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ff/0b/bb312b98a92b00ff48e869e2769ce5ca6c7bc4ec793a429d450dc3c9bba2/pandera-0.26.1.tar.gz", hash = "sha256:81a55a6429770d31b3bf4c3e8e1096a38296bd3009f9eca5780fad3c3c17fd82", size = 560263, upload-time = "2025-08-26T17:06:30.907Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/68/78a3c253f146254b8e2c19f4a4768f272e12ef11001d9b45ec7b165db054/pandas_stubs-2.3.3.251201-py3-none-any.whl", hash = "sha256:eb5c9b6138bd8492fd74a47b09c9497341a278fcfbc8633ea4b35b230ebf4be5", size = 164638, upload-time = "2025-12-01T18:29:21.006Z" }, + { url = "https://files.pythonhosted.org/packages/db/3b/91622e08086a6be44d2c0f34947d94c5282b53d217003d3ba390ee2d174b/pandera-0.26.1-py3-none-any.whl", hash = "sha256:1ff5b70556ce2f85c6b27e8fbe835a1761972f4d05f6548b4686b0db26ecb73b", size = 292907, upload-time = "2025-08-26T17:06:29.193Z" }, ] [[package]] name = "pathspec" -version = "0.12.1" +version = "1.0.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, + { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" }, ] [[package]] name = "pillow" -version = "12.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/cace85a1b0c9775a9f8f5d5423c8261c858760e2466c79b2dd184638b056/pillow-12.0.0.tar.gz", hash = "sha256:87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353", size = 47008828, upload-time = "2025-10-15T18:24:14.008Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/90/4fcce2c22caf044e660a198d740e7fbc14395619e3cb1abad12192c0826c/pillow-12.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:53561a4ddc36facb432fae7a9d8afbfaf94795414f5cdc5fc52f28c1dca90371", size = 5249377, upload-time = "2025-10-15T18:22:05.993Z" }, - { url = "https://files.pythonhosted.org/packages/fd/e0/ed960067543d080691d47d6938ebccbf3976a931c9567ab2fbfab983a5dd/pillow-12.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71db6b4c1653045dacc1585c1b0d184004f0d7e694c7b34ac165ca70c0838082", size = 4650343, upload-time = "2025-10-15T18:22:07.718Z" }, - { url = "https://files.pythonhosted.org/packages/e7/a1/f81fdeddcb99c044bf7d6faa47e12850f13cee0849537a7d27eeab5534d4/pillow-12.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2fa5f0b6716fc88f11380b88b31fe591a06c6315e955c096c35715788b339e3f", size = 6232981, upload-time = "2025-10-15T18:22:09.287Z" }, - { url = "https://files.pythonhosted.org/packages/88/e1/9098d3ce341a8750b55b0e00c03f1630d6178f38ac191c81c97a3b047b44/pillow-12.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82240051c6ca513c616f7f9da06e871f61bfd7805f566275841af15015b8f98d", size = 8041399, upload-time = "2025-10-15T18:22:10.872Z" }, - { url = "https://files.pythonhosted.org/packages/a7/62/a22e8d3b602ae8cc01446d0c57a54e982737f44b6f2e1e019a925143771d/pillow-12.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55f818bd74fe2f11d4d7cbc65880a843c4075e0ac7226bc1a23261dbea531953", size = 6347740, upload-time = "2025-10-15T18:22:12.769Z" }, - { url = "https://files.pythonhosted.org/packages/4f/87/424511bdcd02c8d7acf9f65caa09f291a519b16bd83c3fb3374b3d4ae951/pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b87843e225e74576437fd5b6a4c2205d422754f84a06942cfaf1dc32243e45a8", size = 7040201, upload-time = "2025-10-15T18:22:14.813Z" }, - { url = "https://files.pythonhosted.org/packages/dc/4d/435c8ac688c54d11755aedfdd9f29c9eeddf68d150fe42d1d3dbd2365149/pillow-12.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c607c90ba67533e1b2355b821fef6764d1dd2cbe26b8c1005ae84f7aea25ff79", size = 6462334, upload-time = "2025-10-15T18:22:16.375Z" }, - { url = "https://files.pythonhosted.org/packages/2b/f2/ad34167a8059a59b8ad10bc5c72d4d9b35acc6b7c0877af8ac885b5f2044/pillow-12.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:21f241bdd5080a15bc86d3466a9f6074a9c2c2b314100dd896ac81ee6db2f1ba", size = 7134162, upload-time = "2025-10-15T18:22:17.996Z" }, - { url = "https://files.pythonhosted.org/packages/0c/b1/a7391df6adacf0a5c2cf6ac1cf1fcc1369e7d439d28f637a847f8803beb3/pillow-12.0.0-cp312-cp312-win32.whl", hash = "sha256:dd333073e0cacdc3089525c7df7d39b211bcdf31fc2824e49d01c6b6187b07d0", size = 6298769, upload-time = "2025-10-15T18:22:19.923Z" }, - { url = "https://files.pythonhosted.org/packages/a2/0b/d87733741526541c909bbf159e338dcace4f982daac6e5a8d6be225ca32d/pillow-12.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe611163f6303d1619bbcb653540a4d60f9e55e622d60a3108be0d5b441017a", size = 7001107, upload-time = "2025-10-15T18:22:21.644Z" }, - { url = "https://files.pythonhosted.org/packages/bc/96/aaa61ce33cc98421fb6088af2a03be4157b1e7e0e87087c888e2370a7f45/pillow-12.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:7dfb439562f234f7d57b1ac6bc8fe7f838a4bd49c79230e0f6a1da93e82f1fad", size = 2436012, upload-time = "2025-10-15T18:22:23.621Z" }, - { url = "https://files.pythonhosted.org/packages/62/f2/de993bb2d21b33a98d031ecf6a978e4b61da207bef02f7b43093774c480d/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0869154a2d0546545cde61d1789a6524319fc1897d9ee31218eae7a60ccc5643", size = 4045493, upload-time = "2025-10-15T18:22:25.758Z" }, - { url = "https://files.pythonhosted.org/packages/0e/b6/bc8d0c4c9f6f111a783d045310945deb769b806d7574764234ffd50bc5ea/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a7921c5a6d31b3d756ec980f2f47c0cfdbce0fc48c22a39347a895f41f4a6ea4", size = 4120461, upload-time = "2025-10-15T18:22:27.286Z" }, - { url = "https://files.pythonhosted.org/packages/5d/57/d60d343709366a353dc56adb4ee1e7d8a2cc34e3fbc22905f4167cfec119/pillow-12.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1ee80a59f6ce048ae13cda1abf7fbd2a34ab9ee7d401c46be3ca685d1999a399", size = 3576912, upload-time = "2025-10-15T18:22:28.751Z" }, - { url = "https://files.pythonhosted.org/packages/a4/a4/a0a31467e3f83b94d37568294b01d22b43ae3c5d85f2811769b9c66389dd/pillow-12.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c50f36a62a22d350c96e49ad02d0da41dbd17ddc2e29750dbdba4323f85eb4a5", size = 5249132, upload-time = "2025-10-15T18:22:30.641Z" }, - { url = "https://files.pythonhosted.org/packages/83/06/48eab21dd561de2914242711434c0c0eb992ed08ff3f6107a5f44527f5e9/pillow-12.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5193fde9a5f23c331ea26d0cf171fbf67e3f247585f50c08b3e205c7aeb4589b", size = 4650099, upload-time = "2025-10-15T18:22:32.73Z" }, - { url = "https://files.pythonhosted.org/packages/fc/bd/69ed99fd46a8dba7c1887156d3572fe4484e3f031405fcc5a92e31c04035/pillow-12.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bde737cff1a975b70652b62d626f7785e0480918dece11e8fef3c0cf057351c3", size = 6230808, upload-time = "2025-10-15T18:22:34.337Z" }, - { url = "https://files.pythonhosted.org/packages/ea/94/8fad659bcdbf86ed70099cb60ae40be6acca434bbc8c4c0d4ef356d7e0de/pillow-12.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6597ff2b61d121172f5844b53f21467f7082f5fb385a9a29c01414463f93b07", size = 8037804, upload-time = "2025-10-15T18:22:36.402Z" }, - { url = "https://files.pythonhosted.org/packages/20/39/c685d05c06deecfd4e2d1950e9a908aa2ca8bc4e6c3b12d93b9cafbd7837/pillow-12.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b817e7035ea7f6b942c13aa03bb554fc44fea70838ea21f8eb31c638326584e", size = 6345553, upload-time = "2025-10-15T18:22:38.066Z" }, - { url = "https://files.pythonhosted.org/packages/38/57/755dbd06530a27a5ed74f8cb0a7a44a21722ebf318edbe67ddbd7fb28f88/pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4f1231b7dec408e8670264ce63e9c71409d9583dd21d32c163e25213ee2a344", size = 7037729, upload-time = "2025-10-15T18:22:39.769Z" }, - { url = "https://files.pythonhosted.org/packages/ca/b6/7e94f4c41d238615674d06ed677c14883103dce1c52e4af16f000338cfd7/pillow-12.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e51b71417049ad6ab14c49608b4a24d8fb3fe605e5dfabfe523b58064dc3d27", size = 6459789, upload-time = "2025-10-15T18:22:41.437Z" }, - { url = "https://files.pythonhosted.org/packages/9c/14/4448bb0b5e0f22dd865290536d20ec8a23b64e2d04280b89139f09a36bb6/pillow-12.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d120c38a42c234dc9a8c5de7ceaaf899cf33561956acb4941653f8bdc657aa79", size = 7130917, upload-time = "2025-10-15T18:22:43.152Z" }, - { url = "https://files.pythonhosted.org/packages/dd/ca/16c6926cc1c015845745d5c16c9358e24282f1e588237a4c36d2b30f182f/pillow-12.0.0-cp313-cp313-win32.whl", hash = "sha256:4cc6b3b2efff105c6a1656cfe59da4fdde2cda9af1c5e0b58529b24525d0a098", size = 6302391, upload-time = "2025-10-15T18:22:44.753Z" }, - { url = "https://files.pythonhosted.org/packages/6d/2a/dd43dcfd6dae9b6a49ee28a8eedb98c7d5ff2de94a5d834565164667b97b/pillow-12.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:4cf7fed4b4580601c4345ceb5d4cbf5a980d030fd5ad07c4d2ec589f95f09905", size = 7007477, upload-time = "2025-10-15T18:22:46.838Z" }, - { url = "https://files.pythonhosted.org/packages/77/f0/72ea067f4b5ae5ead653053212af05ce3705807906ba3f3e8f58ddf617e6/pillow-12.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:9f0b04c6b8584c2c193babcccc908b38ed29524b29dd464bc8801bf10d746a3a", size = 2435918, upload-time = "2025-10-15T18:22:48.399Z" }, - { url = "https://files.pythonhosted.org/packages/f5/5e/9046b423735c21f0487ea6cb5b10f89ea8f8dfbe32576fe052b5ba9d4e5b/pillow-12.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7fa22993bac7b77b78cae22bad1e2a987ddf0d9015c63358032f84a53f23cdc3", size = 5251406, upload-time = "2025-10-15T18:22:49.905Z" }, - { url = "https://files.pythonhosted.org/packages/12/66/982ceebcdb13c97270ef7a56c3969635b4ee7cd45227fa707c94719229c5/pillow-12.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f135c702ac42262573fe9714dfe99c944b4ba307af5eb507abef1667e2cbbced", size = 4653218, upload-time = "2025-10-15T18:22:51.587Z" }, - { url = "https://files.pythonhosted.org/packages/16/b3/81e625524688c31859450119bf12674619429cab3119eec0e30a7a1029cb/pillow-12.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c85de1136429c524e55cfa4e033b4a7940ac5c8ee4d9401cc2d1bf48154bbc7b", size = 6266564, upload-time = "2025-10-15T18:22:53.215Z" }, - { url = "https://files.pythonhosted.org/packages/98/59/dfb38f2a41240d2408096e1a76c671d0a105a4a8471b1871c6902719450c/pillow-12.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38df9b4bfd3db902c9c2bd369bcacaf9d935b2fff73709429d95cc41554f7b3d", size = 8069260, upload-time = "2025-10-15T18:22:54.933Z" }, - { url = "https://files.pythonhosted.org/packages/dc/3d/378dbea5cd1874b94c312425ca77b0f47776c78e0df2df751b820c8c1d6c/pillow-12.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d87ef5795da03d742bf49439f9ca4d027cde49c82c5371ba52464aee266699a", size = 6379248, upload-time = "2025-10-15T18:22:56.605Z" }, - { url = "https://files.pythonhosted.org/packages/84/b0/d525ef47d71590f1621510327acec75ae58c721dc071b17d8d652ca494d8/pillow-12.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aff9e4d82d082ff9513bdd6acd4f5bd359f5b2c870907d2b0a9c5e10d40c88fe", size = 7066043, upload-time = "2025-10-15T18:22:58.53Z" }, - { url = "https://files.pythonhosted.org/packages/61/2c/aced60e9cf9d0cde341d54bf7932c9ffc33ddb4a1595798b3a5150c7ec4e/pillow-12.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d8ca2b210ada074d57fcee40c30446c9562e542fc46aedc19baf758a93532ee", size = 6490915, upload-time = "2025-10-15T18:23:00.582Z" }, - { url = "https://files.pythonhosted.org/packages/ef/26/69dcb9b91f4e59f8f34b2332a4a0a951b44f547c4ed39d3e4dcfcff48f89/pillow-12.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:99a7f72fb6249302aa62245680754862a44179b545ded638cf1fef59befb57ef", size = 7157998, upload-time = "2025-10-15T18:23:02.627Z" }, - { url = "https://files.pythonhosted.org/packages/61/2b/726235842220ca95fa441ddf55dd2382b52ab5b8d9c0596fe6b3f23dafe8/pillow-12.0.0-cp313-cp313t-win32.whl", hash = "sha256:4078242472387600b2ce8d93ade8899c12bf33fa89e55ec89fe126e9d6d5d9e9", size = 6306201, upload-time = "2025-10-15T18:23:04.709Z" }, - { url = "https://files.pythonhosted.org/packages/c0/3d/2afaf4e840b2df71344ababf2f8edd75a705ce500e5dc1e7227808312ae1/pillow-12.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2c54c1a783d6d60595d3514f0efe9b37c8808746a66920315bfd34a938d7994b", size = 7013165, upload-time = "2025-10-15T18:23:06.46Z" }, - { url = "https://files.pythonhosted.org/packages/6f/75/3fa09aa5cf6ed04bee3fa575798ddf1ce0bace8edb47249c798077a81f7f/pillow-12.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:26d9f7d2b604cd23aba3e9faf795787456ac25634d82cd060556998e39c6fa47", size = 2437834, upload-time = "2025-10-15T18:23:08.194Z" }, - { url = "https://files.pythonhosted.org/packages/54/2a/9a8c6ba2c2c07b71bec92cf63e03370ca5e5f5c5b119b742bcc0cde3f9c5/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:beeae3f27f62308f1ddbcfb0690bf44b10732f2ef43758f169d5e9303165d3f9", size = 4045531, upload-time = "2025-10-15T18:23:10.121Z" }, - { url = "https://files.pythonhosted.org/packages/84/54/836fdbf1bfb3d66a59f0189ff0b9f5f666cee09c6188309300df04ad71fa/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d4827615da15cd59784ce39d3388275ec093ae3ee8d7f0c089b76fa87af756c2", size = 4120554, upload-time = "2025-10-15T18:23:12.14Z" }, - { url = "https://files.pythonhosted.org/packages/0d/cd/16aec9f0da4793e98e6b54778a5fbce4f375c6646fe662e80600b8797379/pillow-12.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:3e42edad50b6909089750e65c91aa09aaf1e0a71310d383f11321b27c224ed8a", size = 3576812, upload-time = "2025-10-15T18:23:13.962Z" }, - { url = "https://files.pythonhosted.org/packages/f6/b7/13957fda356dc46339298b351cae0d327704986337c3c69bb54628c88155/pillow-12.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e5d8efac84c9afcb40914ab49ba063d94f5dbdf5066db4482c66a992f47a3a3b", size = 5252689, upload-time = "2025-10-15T18:23:15.562Z" }, - { url = "https://files.pythonhosted.org/packages/fc/f5/eae31a306341d8f331f43edb2e9122c7661b975433de5e447939ae61c5da/pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:266cd5f2b63ff316d5a1bba46268e603c9caf5606d44f38c2873c380950576ad", size = 4650186, upload-time = "2025-10-15T18:23:17.379Z" }, - { url = "https://files.pythonhosted.org/packages/86/62/2a88339aa40c4c77e79108facbd307d6091e2c0eb5b8d3cf4977cfca2fe6/pillow-12.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58eea5ebe51504057dd95c5b77d21700b77615ab0243d8152793dc00eb4faf01", size = 6230308, upload-time = "2025-10-15T18:23:18.971Z" }, - { url = "https://files.pythonhosted.org/packages/c7/33/5425a8992bcb32d1cb9fa3dd39a89e613d09a22f2c8083b7bf43c455f760/pillow-12.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f13711b1a5ba512d647a0e4ba79280d3a9a045aaf7e0cc6fbe96b91d4cdf6b0c", size = 8039222, upload-time = "2025-10-15T18:23:20.909Z" }, - { url = "https://files.pythonhosted.org/packages/d8/61/3f5d3b35c5728f37953d3eec5b5f3e77111949523bd2dd7f31a851e50690/pillow-12.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6846bd2d116ff42cba6b646edf5bf61d37e5cbd256425fa089fee4ff5c07a99e", size = 6346657, upload-time = "2025-10-15T18:23:23.077Z" }, - { url = "https://files.pythonhosted.org/packages/3a/be/ee90a3d79271227e0f0a33c453531efd6ed14b2e708596ba5dd9be948da3/pillow-12.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c98fa880d695de164b4135a52fd2e9cd7b7c90a9d8ac5e9e443a24a95ef9248e", size = 7038482, upload-time = "2025-10-15T18:23:25.005Z" }, - { url = "https://files.pythonhosted.org/packages/44/34/a16b6a4d1ad727de390e9bd9f19f5f669e079e5826ec0f329010ddea492f/pillow-12.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa3ed2a29a9e9d2d488b4da81dcb54720ac3104a20bf0bd273f1e4648aff5af9", size = 6461416, upload-time = "2025-10-15T18:23:27.009Z" }, - { url = "https://files.pythonhosted.org/packages/b6/39/1aa5850d2ade7d7ba9f54e4e4c17077244ff7a2d9e25998c38a29749eb3f/pillow-12.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d034140032870024e6b9892c692fe2968493790dd57208b2c37e3fb35f6df3ab", size = 7131584, upload-time = "2025-10-15T18:23:29.752Z" }, - { url = "https://files.pythonhosted.org/packages/bf/db/4fae862f8fad0167073a7733973bfa955f47e2cac3dc3e3e6257d10fab4a/pillow-12.0.0-cp314-cp314-win32.whl", hash = "sha256:1b1b133e6e16105f524a8dec491e0586d072948ce15c9b914e41cdadd209052b", size = 6400621, upload-time = "2025-10-15T18:23:32.06Z" }, - { url = "https://files.pythonhosted.org/packages/2b/24/b350c31543fb0107ab2599464d7e28e6f856027aadda995022e695313d94/pillow-12.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:8dc232e39d409036af549c86f24aed8273a40ffa459981146829a324e0848b4b", size = 7142916, upload-time = "2025-10-15T18:23:34.71Z" }, - { url = "https://files.pythonhosted.org/packages/0f/9b/0ba5a6fd9351793996ef7487c4fdbde8d3f5f75dbedc093bb598648fddf0/pillow-12.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:d52610d51e265a51518692045e372a4c363056130d922a7351429ac9f27e70b0", size = 2523836, upload-time = "2025-10-15T18:23:36.967Z" }, - { url = "https://files.pythonhosted.org/packages/f5/7a/ceee0840aebc579af529b523d530840338ecf63992395842e54edc805987/pillow-12.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1979f4566bb96c1e50a62d9831e2ea2d1211761e5662afc545fa766f996632f6", size = 5255092, upload-time = "2025-10-15T18:23:38.573Z" }, - { url = "https://files.pythonhosted.org/packages/44/76/20776057b4bfd1aef4eeca992ebde0f53a4dce874f3ae693d0ec90a4f79b/pillow-12.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2e4b27a6e15b04832fe9bf292b94b5ca156016bbc1ea9c2c20098a0320d6cf6", size = 4653158, upload-time = "2025-10-15T18:23:40.238Z" }, - { url = "https://files.pythonhosted.org/packages/82/3f/d9ff92ace07be8836b4e7e87e6a4c7a8318d47c2f1463ffcf121fc57d9cb/pillow-12.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb3096c30df99fd01c7bf8e544f392103d0795b9f98ba71a8054bcbf56b255f1", size = 6267882, upload-time = "2025-10-15T18:23:42.434Z" }, - { url = "https://files.pythonhosted.org/packages/9f/7a/4f7ff87f00d3ad33ba21af78bfcd2f032107710baf8280e3722ceec28cda/pillow-12.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7438839e9e053ef79f7112c881cef684013855016f928b168b81ed5835f3e75e", size = 8071001, upload-time = "2025-10-15T18:23:44.29Z" }, - { url = "https://files.pythonhosted.org/packages/75/87/fcea108944a52dad8cca0715ae6247e271eb80459364a98518f1e4f480c1/pillow-12.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d5c411a8eaa2299322b647cd932586b1427367fd3184ffbb8f7a219ea2041ca", size = 6380146, upload-time = "2025-10-15T18:23:46.065Z" }, - { url = "https://files.pythonhosted.org/packages/91/52/0d31b5e571ef5fd111d2978b84603fce26aba1b6092f28e941cb46570745/pillow-12.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e091d464ac59d2c7ad8e7e08105eaf9dafbc3883fd7265ffccc2baad6ac925", size = 7067344, upload-time = "2025-10-15T18:23:47.898Z" }, - { url = "https://files.pythonhosted.org/packages/7b/f4/2dd3d721f875f928d48e83bb30a434dee75a2531bca839bb996bb0aa5a91/pillow-12.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:792a2c0be4dcc18af9d4a2dfd8a11a17d5e25274a1062b0ec1c2d79c76f3e7f8", size = 6491864, upload-time = "2025-10-15T18:23:49.607Z" }, - { url = "https://files.pythonhosted.org/packages/30/4b/667dfcf3d61fc309ba5a15b141845cece5915e39b99c1ceab0f34bf1d124/pillow-12.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:afbefa430092f71a9593a99ab6a4e7538bc9eabbf7bf94f91510d3503943edc4", size = 7158911, upload-time = "2025-10-15T18:23:51.351Z" }, - { url = "https://files.pythonhosted.org/packages/a2/2f/16cabcc6426c32218ace36bf0d55955e813f2958afddbf1d391849fee9d1/pillow-12.0.0-cp314-cp314t-win32.whl", hash = "sha256:3830c769decf88f1289680a59d4f4c46c72573446352e2befec9a8512104fa52", size = 6408045, upload-time = "2025-10-15T18:23:53.177Z" }, - { url = "https://files.pythonhosted.org/packages/35/73/e29aa0c9c666cf787628d3f0dcf379f4791fba79f4936d02f8b37165bdf8/pillow-12.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:905b0365b210c73afb0ebe9101a32572152dfd1c144c7e28968a331b9217b94a", size = 7148282, upload-time = "2025-10-15T18:23:55.316Z" }, - { url = "https://files.pythonhosted.org/packages/c1/70/6b41bdcddf541b437bbb9f47f94d2db5d9ddef6c37ccab8c9107743748a4/pillow-12.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:99353a06902c2e43b43e8ff74ee65a7d90307d82370604746738a1e0661ccca7", size = 2525630, upload-time = "2025-10-15T18:23:57.149Z" }, +version = "12.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/02/d52c733a2452ef1ffcc123b68e6606d07276b0e358db70eabad7e40042b7/pillow-12.1.0.tar.gz", hash = "sha256:5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9", size = 46977283, upload-time = "2026-01-02T09:13:29.892Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/31/dc53fe21a2f2996e1b7d92bf671cdb157079385183ef7c1ae08b485db510/pillow-12.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a332ac4ccb84b6dde65dbace8431f3af08874bf9770719d32a635c4ef411b18b", size = 5262642, upload-time = "2026-01-02T09:11:10.138Z" }, + { url = "https://files.pythonhosted.org/packages/ab/c1/10e45ac9cc79419cedf5121b42dcca5a50ad2b601fa080f58c22fb27626e/pillow-12.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:907bfa8a9cb790748a9aa4513e37c88c59660da3bcfffbd24a7d9e6abf224551", size = 4657464, upload-time = "2026-01-02T09:11:12.319Z" }, + { url = "https://files.pythonhosted.org/packages/ad/26/7b82c0ab7ef40ebede7a97c72d473bda5950f609f8e0c77b04af574a0ddb/pillow-12.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efdc140e7b63b8f739d09a99033aa430accce485ff78e6d311973a67b6bf3208", size = 6234878, upload-time = "2026-01-02T09:11:14.096Z" }, + { url = "https://files.pythonhosted.org/packages/76/25/27abc9792615b5e886ca9411ba6637b675f1b77af3104710ac7353fe5605/pillow-12.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bef9768cab184e7ae6e559c032e95ba8d07b3023c289f79a2bd36e8bf85605a5", size = 8044868, upload-time = "2026-01-02T09:11:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/0a/ea/f200a4c36d836100e7bc738fc48cd963d3ba6372ebc8298a889e0cfc3359/pillow-12.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:742aea052cf5ab5034a53c3846165bc3ce88d7c38e954120db0ab867ca242661", size = 6349468, upload-time = "2026-01-02T09:11:17.631Z" }, + { url = "https://files.pythonhosted.org/packages/11/8f/48d0b77ab2200374c66d344459b8958c86693be99526450e7aee714e03e4/pillow-12.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a6dfc2af5b082b635af6e08e0d1f9f1c4e04d17d4e2ca0ef96131e85eda6eb17", size = 7041518, upload-time = "2026-01-02T09:11:19.389Z" }, + { url = "https://files.pythonhosted.org/packages/1d/23/c281182eb986b5d31f0a76d2a2c8cd41722d6fb8ed07521e802f9bba52de/pillow-12.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:609e89d9f90b581c8d16358c9087df76024cf058fa693dd3e1e1620823f39670", size = 6462829, upload-time = "2026-01-02T09:11:21.28Z" }, + { url = "https://files.pythonhosted.org/packages/25/ef/7018273e0faac099d7b00982abdcc39142ae6f3bd9ceb06de09779c4a9d6/pillow-12.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43b4899cfd091a9693a1278c4982f3e50f7fb7cff5153b05174b4afc9593b616", size = 7166756, upload-time = "2026-01-02T09:11:23.559Z" }, + { url = "https://files.pythonhosted.org/packages/8f/c8/993d4b7ab2e341fe02ceef9576afcf5830cdec640be2ac5bee1820d693d4/pillow-12.1.0-cp312-cp312-win32.whl", hash = "sha256:aa0c9cc0b82b14766a99fbe6084409972266e82f459821cd26997a488a7261a7", size = 6328770, upload-time = "2026-01-02T09:11:25.661Z" }, + { url = "https://files.pythonhosted.org/packages/a7/87/90b358775a3f02765d87655237229ba64a997b87efa8ccaca7dd3e36e7a7/pillow-12.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:d70534cea9e7966169ad29a903b99fc507e932069a881d0965a1a84bb57f6c6d", size = 7033406, upload-time = "2026-01-02T09:11:27.474Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cf/881b457eccacac9e5b2ddd97d5071fb6d668307c57cbf4e3b5278e06e536/pillow-12.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:65b80c1ee7e14a87d6a068dd3b0aea268ffcabfe0498d38661b00c5b4b22e74c", size = 2452612, upload-time = "2026-01-02T09:11:29.309Z" }, + { url = "https://files.pythonhosted.org/packages/dd/c7/2530a4aa28248623e9d7f27316b42e27c32ec410f695929696f2e0e4a778/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7b5dd7cbae20285cdb597b10eb5a2c13aa9de6cde9bb64a3c1317427b1db1ae1", size = 4062543, upload-time = "2026-01-02T09:11:31.566Z" }, + { url = "https://files.pythonhosted.org/packages/8f/1f/40b8eae823dc1519b87d53c30ed9ef085506b05281d313031755c1705f73/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:29a4cef9cb672363926f0470afc516dbf7305a14d8c54f7abbb5c199cd8f8179", size = 4138373, upload-time = "2026-01-02T09:11:33.367Z" }, + { url = "https://files.pythonhosted.org/packages/d4/77/6fa60634cf06e52139fd0e89e5bbf055e8166c691c42fb162818b7fda31d/pillow-12.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:681088909d7e8fa9e31b9799aaa59ba5234c58e5e4f1951b4c4d1082a2e980e0", size = 3601241, upload-time = "2026-01-02T09:11:35.011Z" }, + { url = "https://files.pythonhosted.org/packages/4f/bf/28ab865de622e14b747f0cd7877510848252d950e43002e224fb1c9ababf/pillow-12.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:983976c2ab753166dc66d36af6e8ec15bb511e4a25856e2227e5f7e00a160587", size = 5262410, upload-time = "2026-01-02T09:11:36.682Z" }, + { url = "https://files.pythonhosted.org/packages/1c/34/583420a1b55e715937a85bd48c5c0991598247a1fd2eb5423188e765ea02/pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:db44d5c160a90df2d24a24760bbd37607d53da0b34fb546c4c232af7192298ac", size = 4657312, upload-time = "2026-01-02T09:11:38.535Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fd/f5a0896839762885b3376ff04878f86ab2b097c2f9a9cdccf4eda8ba8dc0/pillow-12.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b7a9d1db5dad90e2991645874f708e87d9a3c370c243c2d7684d28f7e133e6b", size = 6232605, upload-time = "2026-01-02T09:11:40.602Z" }, + { url = "https://files.pythonhosted.org/packages/98/aa/938a09d127ac1e70e6ed467bd03834350b33ef646b31edb7452d5de43792/pillow-12.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6258f3260986990ba2fa8a874f8b6e808cf5abb51a94015ca3dc3c68aa4f30ea", size = 8041617, upload-time = "2026-01-02T09:11:42.721Z" }, + { url = "https://files.pythonhosted.org/packages/17/e8/538b24cb426ac0186e03f80f78bc8dc7246c667f58b540bdd57c71c9f79d/pillow-12.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e115c15e3bc727b1ca3e641a909f77f8ca72a64fff150f666fcc85e57701c26c", size = 6346509, upload-time = "2026-01-02T09:11:44.955Z" }, + { url = "https://files.pythonhosted.org/packages/01/9a/632e58ec89a32738cabfd9ec418f0e9898a2b4719afc581f07c04a05e3c9/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6741e6f3074a35e47c77b23a4e4f2d90db3ed905cb1c5e6e0d49bff2045632bc", size = 7038117, upload-time = "2026-01-02T09:11:46.736Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a2/d40308cf86eada842ca1f3ffa45d0ca0df7e4ab33c83f81e73f5eaed136d/pillow-12.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:935b9d1aed48fcfb3f838caac506f38e29621b44ccc4f8a64d575cb1b2a88644", size = 6460151, upload-time = "2026-01-02T09:11:48.625Z" }, + { url = "https://files.pythonhosted.org/packages/f1/88/f5b058ad6453a085c5266660a1417bdad590199da1b32fb4efcff9d33b05/pillow-12.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5fee4c04aad8932da9f8f710af2c1a15a83582cfb884152a9caa79d4efcdbf9c", size = 7164534, upload-time = "2026-01-02T09:11:50.445Z" }, + { url = "https://files.pythonhosted.org/packages/19/ce/c17334caea1db789163b5d855a5735e47995b0b5dc8745e9a3605d5f24c0/pillow-12.1.0-cp313-cp313-win32.whl", hash = "sha256:a786bf667724d84aa29b5db1c61b7bfdde380202aaca12c3461afd6b71743171", size = 6332551, upload-time = "2026-01-02T09:11:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/e5/07/74a9d941fa45c90a0d9465098fe1ec85de3e2afbdc15cc4766622d516056/pillow-12.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:461f9dfdafa394c59cd6d818bdfdbab4028b83b02caadaff0ffd433faf4c9a7a", size = 7040087, upload-time = "2026-01-02T09:11:54.822Z" }, + { url = "https://files.pythonhosted.org/packages/88/09/c99950c075a0e9053d8e880595926302575bc742b1b47fe1bbcc8d388d50/pillow-12.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:9212d6b86917a2300669511ed094a9406888362e085f2431a7da985a6b124f45", size = 2452470, upload-time = "2026-01-02T09:11:56.522Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ba/970b7d85ba01f348dee4d65412476321d40ee04dcb51cd3735b9dc94eb58/pillow-12.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:00162e9ca6d22b7c3ee8e61faa3c3253cd19b6a37f126cad04f2f88b306f557d", size = 5264816, upload-time = "2026-01-02T09:11:58.227Z" }, + { url = "https://files.pythonhosted.org/packages/10/60/650f2fb55fdba7a510d836202aa52f0baac633e50ab1cf18415d332188fb/pillow-12.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7d6daa89a00b58c37cb1747ec9fb7ac3bc5ffd5949f5888657dfddde6d1312e0", size = 4660472, upload-time = "2026-01-02T09:12:00.798Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/5273a99478956a099d533c4f46cbaa19fd69d606624f4334b85e50987a08/pillow-12.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2479c7f02f9d505682dc47df8c0ea1fc5e264c4d1629a5d63fe3e2334b89554", size = 6268974, upload-time = "2026-01-02T09:12:02.572Z" }, + { url = "https://files.pythonhosted.org/packages/b4/26/0bf714bc2e73d5267887d47931d53c4ceeceea6978148ed2ab2a4e6463c4/pillow-12.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f188d580bd870cda1e15183790d1cc2fa78f666e76077d103edf048eed9c356e", size = 8073070, upload-time = "2026-01-02T09:12:04.75Z" }, + { url = "https://files.pythonhosted.org/packages/43/cf/1ea826200de111a9d65724c54f927f3111dc5ae297f294b370a670c17786/pillow-12.1.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0fde7ec5538ab5095cc02df38ee99b0443ff0e1c847a045554cf5f9af1f4aa82", size = 6380176, upload-time = "2026-01-02T09:12:06.626Z" }, + { url = "https://files.pythonhosted.org/packages/03/e0/7938dd2b2013373fd85d96e0f38d62b7a5a262af21ac274250c7ca7847c9/pillow-12.1.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ed07dca4a8464bada6139ab38f5382f83e5f111698caf3191cb8dbf27d908b4", size = 7067061, upload-time = "2026-01-02T09:12:08.624Z" }, + { url = "https://files.pythonhosted.org/packages/86/ad/a2aa97d37272a929a98437a8c0ac37b3cf012f4f8721e1bd5154699b2518/pillow-12.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f45bd71d1fa5e5749587613037b172e0b3b23159d1c00ef2fc920da6f470e6f0", size = 6491824, upload-time = "2026-01-02T09:12:10.488Z" }, + { url = "https://files.pythonhosted.org/packages/a4/44/80e46611b288d51b115826f136fb3465653c28f491068a72d3da49b54cd4/pillow-12.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:277518bf4fe74aa91489e1b20577473b19ee70fb97c374aa50830b279f25841b", size = 7190911, upload-time = "2026-01-02T09:12:12.772Z" }, + { url = "https://files.pythonhosted.org/packages/86/77/eacc62356b4cf81abe99ff9dbc7402750044aed02cfd6a503f7c6fc11f3e/pillow-12.1.0-cp313-cp313t-win32.whl", hash = "sha256:7315f9137087c4e0ee73a761b163fc9aa3b19f5f606a7fc08d83fd3e4379af65", size = 6336445, upload-time = "2026-01-02T09:12:14.775Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3c/57d81d0b74d218706dafccb87a87ea44262c43eef98eb3b164fd000e0491/pillow-12.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:0ddedfaa8b5f0b4ffbc2fa87b556dc59f6bb4ecb14a53b33f9189713ae8053c0", size = 7045354, upload-time = "2026-01-02T09:12:16.599Z" }, + { url = "https://files.pythonhosted.org/packages/ac/82/8b9b97bba2e3576a340f93b044a3a3a09841170ab4c1eb0d5c93469fd32f/pillow-12.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:80941e6d573197a0c28f394753de529bb436b1ca990ed6e765cf42426abc39f8", size = 2454547, upload-time = "2026-01-02T09:12:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/8c/87/bdf971d8bbcf80a348cc3bacfcb239f5882100fe80534b0ce67a784181d8/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:5cb7bc1966d031aec37ddb9dcf15c2da5b2e9f7cc3ca7c54473a20a927e1eb91", size = 4062533, upload-time = "2026-01-02T09:12:20.791Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/5eb37a681c68d605eb7034c004875c81f86ec9ef51f5be4a63eadd58859a/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:97e9993d5ed946aba26baf9c1e8cf18adbab584b99f452ee72f7ee8acb882796", size = 4138546, upload-time = "2026-01-02T09:12:23.664Z" }, + { url = "https://files.pythonhosted.org/packages/11/6d/19a95acb2edbace40dcd582d077b991646b7083c41b98da4ed7555b59733/pillow-12.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:414b9a78e14ffeb98128863314e62c3f24b8a86081066625700b7985b3f529bd", size = 3601163, upload-time = "2026-01-02T09:12:26.338Z" }, + { url = "https://files.pythonhosted.org/packages/fc/36/2b8138e51cb42e4cc39c3297713455548be855a50558c3ac2beebdc251dd/pillow-12.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e6bdb408f7c9dd2a5ff2b14a3b0bb6d4deb29fb9961e6eb3ae2031ae9a5cec13", size = 5266086, upload-time = "2026-01-02T09:12:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/649056e4d22e1caa90816bf99cef0884aed607ed38075bd75f091a607a38/pillow-12.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3413c2ae377550f5487991d444428f1a8ae92784aac79caa8b1e3b89b175f77e", size = 4657344, upload-time = "2026-01-02T09:12:31.117Z" }, + { url = "https://files.pythonhosted.org/packages/6c/6b/c5742cea0f1ade0cd61485dc3d81f05261fc2276f537fbdc00802de56779/pillow-12.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e5dcbe95016e88437ecf33544ba5db21ef1b8dd6e1b434a2cb2a3d605299e643", size = 6232114, upload-time = "2026-01-02T09:12:32.936Z" }, + { url = "https://files.pythonhosted.org/packages/bf/8f/9f521268ce22d63991601aafd3d48d5ff7280a246a1ef62d626d67b44064/pillow-12.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0a7735df32ccbcc98b98a1ac785cc4b19b580be1bdf0aeb5c03223220ea09d5", size = 8042708, upload-time = "2026-01-02T09:12:34.78Z" }, + { url = "https://files.pythonhosted.org/packages/1a/eb/257f38542893f021502a1bbe0c2e883c90b5cff26cc33b1584a841a06d30/pillow-12.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c27407a2d1b96774cbc4a7594129cc027339fd800cd081e44497722ea1179de", size = 6347762, upload-time = "2026-01-02T09:12:36.748Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5a/8ba375025701c09b309e8d5163c5a4ce0102fa86bbf8800eb0d7ac87bc51/pillow-12.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15c794d74303828eaa957ff8070846d0efe8c630901a1c753fdc63850e19ecd9", size = 7039265, upload-time = "2026-01-02T09:12:39.082Z" }, + { url = "https://files.pythonhosted.org/packages/cf/dc/cf5e4cdb3db533f539e88a7bbf9f190c64ab8a08a9bc7a4ccf55067872e4/pillow-12.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c990547452ee2800d8506c4150280757f88532f3de2a58e3022e9b179107862a", size = 6462341, upload-time = "2026-01-02T09:12:40.946Z" }, + { url = "https://files.pythonhosted.org/packages/d0/47/0291a25ac9550677e22eda48510cfc4fa4b2ef0396448b7fbdc0a6946309/pillow-12.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b63e13dd27da389ed9475b3d28510f0f954bca0041e8e551b2a4eb1eab56a39a", size = 7165395, upload-time = "2026-01-02T09:12:42.706Z" }, + { url = "https://files.pythonhosted.org/packages/4f/4c/e005a59393ec4d9416be06e6b45820403bb946a778e39ecec62f5b2b991e/pillow-12.1.0-cp314-cp314-win32.whl", hash = "sha256:1a949604f73eb07a8adab38c4fe50791f9919344398bdc8ac6b307f755fc7030", size = 6431413, upload-time = "2026-01-02T09:12:44.944Z" }, + { url = "https://files.pythonhosted.org/packages/1c/af/f23697f587ac5f9095d67e31b81c95c0249cd461a9798a061ed6709b09b5/pillow-12.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:4f9f6a650743f0ddee5593ac9e954ba1bdbc5e150bc066586d4f26127853ab94", size = 7176779, upload-time = "2026-01-02T09:12:46.727Z" }, + { url = "https://files.pythonhosted.org/packages/b3/36/6a51abf8599232f3e9afbd16d52829376a68909fe14efe29084445db4b73/pillow-12.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:808b99604f7873c800c4840f55ff389936ef1948e4e87645eaf3fccbc8477ac4", size = 2543105, upload-time = "2026-01-02T09:12:49.243Z" }, + { url = "https://files.pythonhosted.org/packages/82/54/2e1dd20c8749ff225080d6ba465a0cab4387f5db0d1c5fb1439e2d99923f/pillow-12.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc11908616c8a283cf7d664f77411a5ed2a02009b0097ff8abbba5e79128ccf2", size = 5268571, upload-time = "2026-01-02T09:12:51.11Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/571163a5ef86ec0cf30d265ac2a70ae6fc9e28413d1dc94fa37fae6bda89/pillow-12.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:896866d2d436563fa2a43a9d72f417874f16b5545955c54a64941e87c1376c61", size = 4660426, upload-time = "2026-01-02T09:12:52.865Z" }, + { url = "https://files.pythonhosted.org/packages/5e/e1/53ee5163f794aef1bf84243f755ee6897a92c708505350dd1923f4afec48/pillow-12.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8e178e3e99d3c0ea8fc64b88447f7cac8ccf058af422a6cedc690d0eadd98c51", size = 6269908, upload-time = "2026-01-02T09:12:54.884Z" }, + { url = "https://files.pythonhosted.org/packages/bc/0b/b4b4106ff0ee1afa1dc599fde6ab230417f800279745124f6c50bcffed8e/pillow-12.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:079af2fb0c599c2ec144ba2c02766d1b55498e373b3ac64687e43849fbbef5bc", size = 8074733, upload-time = "2026-01-02T09:12:56.802Z" }, + { url = "https://files.pythonhosted.org/packages/19/9f/80b411cbac4a732439e629a26ad3ef11907a8c7fc5377b7602f04f6fe4e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bdec5e43377761c5dbca620efb69a77f6855c5a379e32ac5b158f54c84212b14", size = 6381431, upload-time = "2026-01-02T09:12:58.823Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b7/d65c45db463b66ecb6abc17c6ba6917a911202a07662247e1355ce1789e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:565c986f4b45c020f5421a4cea13ef294dde9509a8577f29b2fc5edc7587fff8", size = 7068529, upload-time = "2026-01-02T09:13:00.885Z" }, + { url = "https://files.pythonhosted.org/packages/50/96/dfd4cd726b4a45ae6e3c669fc9e49deb2241312605d33aba50499e9d9bd1/pillow-12.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43aca0a55ce1eefc0aefa6253661cb54571857b1a7b2964bd8a1e3ef4b729924", size = 6492981, upload-time = "2026-01-02T09:13:03.314Z" }, + { url = "https://files.pythonhosted.org/packages/4d/1c/b5dc52cf713ae46033359c5ca920444f18a6359ce1020dd3e9c553ea5bc6/pillow-12.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0deedf2ea233722476b3a81e8cdfbad786f7adbed5d848469fa59fe52396e4ef", size = 7191878, upload-time = "2026-01-02T09:13:05.276Z" }, + { url = "https://files.pythonhosted.org/packages/53/26/c4188248bd5edaf543864fe4834aebe9c9cb4968b6f573ce014cc42d0720/pillow-12.1.0-cp314-cp314t-win32.whl", hash = "sha256:b17fbdbe01c196e7e159aacb889e091f28e61020a8abeac07b68079b6e626988", size = 6438703, upload-time = "2026-01-02T09:13:07.491Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0e/69ed296de8ea05cb03ee139cee600f424ca166e632567b2d66727f08c7ed/pillow-12.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27b9baecb428899db6c0de572d6d305cfaf38ca1596b5c0542a5182e3e74e8c6", size = 7182927, upload-time = "2026-01-02T09:13:09.841Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f5/68334c015eed9b5cff77814258717dec591ded209ab5b6fb70e2ae873d1d/pillow-12.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f61333d817698bdcdd0f9d7793e365ac3d2a21c1f1eb02b32ad6aefb8d8ea831", size = 2545104, upload-time = "2026-01-02T09:13:12.068Z" }, ] [[package]] @@ -961,6 +904,92 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "pydantic" +version = "2.12.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, +] + [[package]] name = "pygments" version = "2.19.2" @@ -1015,11 +1044,11 @@ wheels = [ [[package]] name = "pyparsing" -version = "3.2.5" +version = "3.3.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/a5/181488fc2b9d093e3972d2a472855aae8a03f000592dbfce716a512b3359/pyparsing-3.2.5.tar.gz", hash = "sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6", size = 1099274, upload-time = "2025-09-21T04:11:06.277Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/10/5e/1aa9a93198c6b64513c9d7752de7422c06402de6600a8767da1524f9570b/pyparsing-3.2.5-py3-none-any.whl", hash = "sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e", size = 113890, upload-time = "2025-09-21T04:11:04.117Z" }, + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, ] [[package]] @@ -1080,15 +1109,15 @@ wheels = [ [[package]] name = "pyright" -version = "1.1.407" +version = "1.1.408" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/1b/0aa08ee42948b61745ac5b5b5ccaec4669e8884b53d31c8ec20b2fcd6b6f/pyright-1.1.407.tar.gz", hash = "sha256:099674dba5c10489832d4a4b2d302636152a9a42d317986c38474c76fe562262", size = 4122872, upload-time = "2025-10-24T23:17:15.145Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/b2/5db700e52554b8f025faa9c3c624c59f1f6c8841ba81ab97641b54322f16/pyright-1.1.408.tar.gz", hash = "sha256:f28f2321f96852fa50b5829ea492f6adb0e6954568d1caa3f3af3a5f555eb684", size = 4400578, upload-time = "2026-01-08T08:07:38.795Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/93/b69052907d032b00c40cb656d21438ec00b3a471733de137a3f65a49a0a0/pyright-1.1.407-py3-none-any.whl", hash = "sha256:6dd419f54fcc13f03b52285796d65e639786373f433e243f8b94cf93a7444d21", size = 5997008, upload-time = "2025-10-24T23:17:13.159Z" }, + { url = "https://files.pythonhosted.org/packages/0c/82/a2c93e32800940d9573fb28c346772a14778b84ba7524e691b324620ab89/pyright-1.1.408-py3-none-any.whl", hash = "sha256:090b32865f4fdb1e0e6cd82bf5618480d48eecd2eb2e70f960982a3d9a4c17c1", size = 6399144, upload-time = "2026-01-08T08:07:37.082Z" }, ] [[package]] @@ -1174,7 +1203,7 @@ dev = [ { name = "folium", specifier = ">=0.16.0" }, { name = "geopandas", specifier = ">=1.0.0" }, { name = "matplotlib", specifier = ">=3.8.0" }, - { name = "mypy", specifier = ">=1.14.1" }, + { name = "mypy", specifier = ">=1.19.1" }, { name = "networkx", specifier = ">=3.2.1" }, { name = "pandapower", specifier = ">=3.1.2" }, { name = "pandas-stubs", specifier = ">=2.2.2" }, @@ -1182,7 +1211,7 @@ dev = [ { name = "pytest", specifier = ">=8.0" }, { name = "rich-argparse", specifier = ">=1.6.0" }, { name = "rtree", specifier = ">=1.2.0" }, - { name = "ruff", specifier = ">=0.9.2" }, + { name = "ruff", specifier = ">=0.14.14" }, { name = "types-geopandas", specifier = ">=1.0.1" }, { name = "types-netaddr", specifier = ">=1.2.0" }, { name = "types-networkx", specifier = ">=3.4.2" }, @@ -1234,15 +1263,15 @@ wheels = [ [[package]] name = "rich" -version = "14.2.0" +version = "14.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990, upload-time = "2025-10-09T14:16:53.064Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/84/4831f881aa6ff3c976f6d6809b58cdfa350593ffc0dc3c58f5f6586780fb/rich-14.3.1.tar.gz", hash = "sha256:b8c5f568a3a749f9290ec6bddedf835cec33696bfc1e48bcfecb276c7386e4b8", size = 230125, upload-time = "2026-01-24T21:40:44.847Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" }, + { url = "https://files.pythonhosted.org/packages/87/2a/a1810c8627b9ec8c57ec5ec325d306701ae7be50235e8fd81266e002a3cc/rich-14.3.1-py3-none-any.whl", hash = "sha256:da750b1aebbff0b372557426fb3f35ba56de8ef954b3190315eb64076d6fb54e", size = 309952, upload-time = "2026-01-24T21:40:42.969Z" }, ] [[package]] @@ -1275,28 +1304,28 @@ wheels = [ [[package]] name = "ruff" -version = "0.14.9" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/1b/ab712a9d5044435be8e9a2beb17cbfa4c241aa9b5e4413febac2a8b79ef2/ruff-0.14.9.tar.gz", hash = "sha256:35f85b25dd586381c0cc053f48826109384c81c00ad7ef1bd977bfcc28119d5b", size = 5809165, upload-time = "2025-12-11T21:39:47.381Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/1c/d1b1bba22cffec02351c78ab9ed4f7d7391876e12720298448b29b7229c1/ruff-0.14.9-py3-none-linux_armv6l.whl", hash = "sha256:f1ec5de1ce150ca6e43691f4a9ef5c04574ad9ca35c8b3b0e18877314aba7e75", size = 13576541, upload-time = "2025-12-11T21:39:14.806Z" }, - { url = "https://files.pythonhosted.org/packages/94/ab/ffe580e6ea1fca67f6337b0af59fc7e683344a43642d2d55d251ff83ceae/ruff-0.14.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ed9d7417a299fc6030b4f26333bf1117ed82a61ea91238558c0268c14e00d0c2", size = 13779363, upload-time = "2025-12-11T21:39:20.29Z" }, - { url = "https://files.pythonhosted.org/packages/7d/f8/2be49047f929d6965401855461e697ab185e1a6a683d914c5c19c7962d9e/ruff-0.14.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d5dc3473c3f0e4a1008d0ef1d75cee24a48e254c8bed3a7afdd2b4392657ed2c", size = 12925292, upload-time = "2025-12-11T21:39:38.757Z" }, - { url = "https://files.pythonhosted.org/packages/9e/e9/08840ff5127916bb989c86f18924fd568938b06f58b60e206176f327c0fe/ruff-0.14.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84bf7c698fc8f3cb8278830fb6b5a47f9bcc1ed8cb4f689b9dd02698fa840697", size = 13362894, upload-time = "2025-12-11T21:39:02.524Z" }, - { url = "https://files.pythonhosted.org/packages/31/1c/5b4e8e7750613ef43390bb58658eaf1d862c0cc3352d139cd718a2cea164/ruff-0.14.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aa733093d1f9d88a5d98988d8834ef5d6f9828d03743bf5e338bf980a19fce27", size = 13311482, upload-time = "2025-12-11T21:39:17.51Z" }, - { url = "https://files.pythonhosted.org/packages/5b/3a/459dce7a8cb35ba1ea3e9c88f19077667a7977234f3b5ab197fad240b404/ruff-0.14.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a1cfb04eda979b20c8c19550c8b5f498df64ff8da151283311ce3199e8b3648", size = 14016100, upload-time = "2025-12-11T21:39:41.948Z" }, - { url = "https://files.pythonhosted.org/packages/a6/31/f064f4ec32524f9956a0890fc6a944e5cf06c63c554e39957d208c0ffc45/ruff-0.14.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:1e5cb521e5ccf0008bd74d5595a4580313844a42b9103b7388eca5a12c970743", size = 15477729, upload-time = "2025-12-11T21:39:23.279Z" }, - { url = "https://files.pythonhosted.org/packages/7a/6d/f364252aad36ccd443494bc5f02e41bf677f964b58902a17c0b16c53d890/ruff-0.14.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd429a8926be6bba4befa8cdcf3f4dd2591c413ea5066b1e99155ed245ae42bb", size = 15122386, upload-time = "2025-12-11T21:39:33.125Z" }, - { url = "https://files.pythonhosted.org/packages/20/02/e848787912d16209aba2799a4d5a1775660b6a3d0ab3944a4ccc13e64a02/ruff-0.14.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab208c1b7a492e37caeaf290b1378148f75e13c2225af5d44628b95fd7834273", size = 14497124, upload-time = "2025-12-11T21:38:59.33Z" }, - { url = "https://files.pythonhosted.org/packages/f3/51/0489a6a5595b7760b5dbac0dd82852b510326e7d88d51dbffcd2e07e3ff3/ruff-0.14.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72034534e5b11e8a593f517b2f2f2b273eb68a30978c6a2d40473ad0aaa4cb4a", size = 14195343, upload-time = "2025-12-11T21:39:44.866Z" }, - { url = "https://files.pythonhosted.org/packages/f6/53/3bb8d2fa73e4c2f80acc65213ee0830fa0c49c6479313f7a68a00f39e208/ruff-0.14.9-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:712ff04f44663f1b90a1195f51525836e3413c8a773574a7b7775554269c30ed", size = 14346425, upload-time = "2025-12-11T21:39:05.927Z" }, - { url = "https://files.pythonhosted.org/packages/ad/04/bdb1d0ab876372da3e983896481760867fc84f969c5c09d428e8f01b557f/ruff-0.14.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a111fee1db6f1d5d5810245295527cda1d367c5aa8f42e0fca9a78ede9b4498b", size = 13258768, upload-time = "2025-12-11T21:39:08.691Z" }, - { url = "https://files.pythonhosted.org/packages/40/d9/8bf8e1e41a311afd2abc8ad12be1b6c6c8b925506d9069b67bb5e9a04af3/ruff-0.14.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8769efc71558fecc25eb295ddec7d1030d41a51e9dcf127cbd63ec517f22d567", size = 13326939, upload-time = "2025-12-11T21:39:53.842Z" }, - { url = "https://files.pythonhosted.org/packages/f4/56/a213fa9edb6dd849f1cfbc236206ead10913693c72a67fb7ddc1833bf95d/ruff-0.14.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:347e3bf16197e8a2de17940cd75fd6491e25c0aa7edf7d61aa03f146a1aa885a", size = 13578888, upload-time = "2025-12-11T21:39:35.988Z" }, - { url = "https://files.pythonhosted.org/packages/33/09/6a4a67ffa4abae6bf44c972a4521337ffce9cbc7808faadede754ef7a79c/ruff-0.14.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7715d14e5bccf5b660f54516558aa94781d3eb0838f8e706fb60e3ff6eff03a8", size = 14314473, upload-time = "2025-12-11T21:39:50.78Z" }, - { url = "https://files.pythonhosted.org/packages/12/0d/15cc82da5d83f27a3c6b04f3a232d61bc8c50d38a6cd8da79228e5f8b8d6/ruff-0.14.9-py3-none-win32.whl", hash = "sha256:df0937f30aaabe83da172adaf8937003ff28172f59ca9f17883b4213783df197", size = 13202651, upload-time = "2025-12-11T21:39:26.628Z" }, - { url = "https://files.pythonhosted.org/packages/32/f7/c78b060388eefe0304d9d42e68fab8cffd049128ec466456cef9b8d4f06f/ruff-0.14.9-py3-none-win_amd64.whl", hash = "sha256:c0b53a10e61df15a42ed711ec0bda0c582039cf6c754c49c020084c55b5b0bc2", size = 14702079, upload-time = "2025-12-11T21:39:11.954Z" }, - { url = "https://files.pythonhosted.org/packages/26/09/7a9520315decd2334afa65ed258fed438f070e31f05a2e43dd480a5e5911/ruff-0.14.9-py3-none-win_arm64.whl", hash = "sha256:8e821c366517a074046d92f0e9213ed1c13dbc5b37a7fc20b07f79b64d62cc84", size = 13744730, upload-time = "2025-12-11T21:39:29.659Z" }, +version = "0.14.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2e/06/f71e3a86b2df0dfa2d2f72195941cd09b44f87711cb7fa5193732cb9a5fc/ruff-0.14.14.tar.gz", hash = "sha256:2d0f819c9a90205f3a867dbbd0be083bee9912e170fd7d9704cc8ae45824896b", size = 4515732, upload-time = "2026-01-22T22:30:17.527Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/89/20a12e97bc6b9f9f68343952da08a8099c57237aef953a56b82711d55edd/ruff-0.14.14-py3-none-linux_armv6l.whl", hash = "sha256:7cfe36b56e8489dee8fbc777c61959f60ec0f1f11817e8f2415f429552846aed", size = 10467650, upload-time = "2026-01-22T22:30:08.578Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b1/c5de3fd2d5a831fcae21beda5e3589c0ba67eec8202e992388e4b17a6040/ruff-0.14.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6006a0082336e7920b9573ef8a7f52eec837add1265cc74e04ea8a4368cd704c", size = 10883245, upload-time = "2026-01-22T22:30:04.155Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7c/3c1db59a10e7490f8f6f8559d1db8636cbb13dccebf18686f4e3c9d7c772/ruff-0.14.14-py3-none-macosx_11_0_arm64.whl", hash = "sha256:026c1d25996818f0bf498636686199d9bd0d9d6341c9c2c3b62e2a0198b758de", size = 10231273, upload-time = "2026-01-22T22:30:34.642Z" }, + { url = "https://files.pythonhosted.org/packages/a1/6e/5e0e0d9674be0f8581d1f5e0f0a04761203affce3232c1a1189d0e3b4dad/ruff-0.14.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f666445819d31210b71e0a6d1c01e24447a20b85458eea25a25fe8142210ae0e", size = 10585753, upload-time = "2026-01-22T22:30:31.781Z" }, + { url = "https://files.pythonhosted.org/packages/23/09/754ab09f46ff1884d422dc26d59ba18b4e5d355be147721bb2518aa2a014/ruff-0.14.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c0f18b922c6d2ff9a5e6c3ee16259adc513ca775bcf82c67ebab7cbd9da5bc8", size = 10286052, upload-time = "2026-01-22T22:30:24.827Z" }, + { url = "https://files.pythonhosted.org/packages/c8/cc/e71f88dd2a12afb5f50733851729d6b571a7c3a35bfdb16c3035132675a0/ruff-0.14.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1629e67489c2dea43e8658c3dba659edbfd87361624b4040d1df04c9740ae906", size = 11043637, upload-time = "2026-01-22T22:30:13.239Z" }, + { url = "https://files.pythonhosted.org/packages/67/b2/397245026352494497dac935d7f00f1468c03a23a0c5db6ad8fc49ca3fb2/ruff-0.14.14-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:27493a2131ea0f899057d49d303e4292b2cae2bb57253c1ed1f256fbcd1da480", size = 12194761, upload-time = "2026-01-22T22:30:22.542Z" }, + { url = "https://files.pythonhosted.org/packages/5b/06/06ef271459f778323112c51b7587ce85230785cd64e91772034ddb88f200/ruff-0.14.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01ff589aab3f5b539e35db38425da31a57521efd1e4ad1ae08fc34dbe30bd7df", size = 12005701, upload-time = "2026-01-22T22:30:20.499Z" }, + { url = "https://files.pythonhosted.org/packages/41/d6/99364514541cf811ccc5ac44362f88df66373e9fec1b9d1c4cc830593fe7/ruff-0.14.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc12d74eef0f29f51775f5b755913eb523546b88e2d733e1d701fe65144e89b", size = 11282455, upload-time = "2026-01-22T22:29:59.679Z" }, + { url = "https://files.pythonhosted.org/packages/ca/71/37daa46f89475f8582b7762ecd2722492df26421714a33e72ccc9a84d7a5/ruff-0.14.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb8481604b7a9e75eff53772496201690ce2687067e038b3cc31aaf16aa0b974", size = 11215882, upload-time = "2026-01-22T22:29:57.032Z" }, + { url = "https://files.pythonhosted.org/packages/2c/10/a31f86169ec91c0705e618443ee74ede0bdd94da0a57b28e72db68b2dbac/ruff-0.14.14-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:14649acb1cf7b5d2d283ebd2f58d56b75836ed8c6f329664fa91cdea19e76e66", size = 11180549, upload-time = "2026-01-22T22:30:27.175Z" }, + { url = "https://files.pythonhosted.org/packages/fd/1e/c723f20536b5163adf79bdd10c5f093414293cdf567eed9bdb7b83940f3f/ruff-0.14.14-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e8058d2145566510790eab4e2fad186002e288dec5e0d343a92fe7b0bc1b3e13", size = 10543416, upload-time = "2026-01-22T22:30:01.964Z" }, + { url = "https://files.pythonhosted.org/packages/3e/34/8a84cea7e42c2d94ba5bde1d7a4fae164d6318f13f933d92da6d7c2041ff/ruff-0.14.14-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e651e977a79e4c758eb807f0481d673a67ffe53cfa92209781dfa3a996cf8412", size = 10285491, upload-time = "2026-01-22T22:30:29.51Z" }, + { url = "https://files.pythonhosted.org/packages/55/ef/b7c5ea0be82518906c978e365e56a77f8de7678c8bb6651ccfbdc178c29f/ruff-0.14.14-py3-none-musllinux_1_2_i686.whl", hash = "sha256:cc8b22da8d9d6fdd844a68ae937e2a0adf9b16514e9a97cc60355e2d4b219fc3", size = 10733525, upload-time = "2026-01-22T22:30:06.499Z" }, + { url = "https://files.pythonhosted.org/packages/6a/5b/aaf1dfbcc53a2811f6cc0a1759de24e4b03e02ba8762daabd9b6bd8c59e3/ruff-0.14.14-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:16bc890fb4cc9781bb05beb5ab4cd51be9e7cb376bf1dd3580512b24eb3fda2b", size = 11315626, upload-time = "2026-01-22T22:30:36.848Z" }, + { url = "https://files.pythonhosted.org/packages/2c/aa/9f89c719c467dfaf8ad799b9bae0df494513fb21d31a6059cb5870e57e74/ruff-0.14.14-py3-none-win32.whl", hash = "sha256:b530c191970b143375b6a68e6f743800b2b786bbcf03a7965b06c4bf04568167", size = 10502442, upload-time = "2026-01-22T22:30:38.93Z" }, + { url = "https://files.pythonhosted.org/packages/87/44/90fa543014c45560cae1fffc63ea059fb3575ee6e1cb654562197e5d16fb/ruff-0.14.14-py3-none-win_amd64.whl", hash = "sha256:3dde1435e6b6fe5b66506c1dff67a421d0b7f6488d466f651c07f4cab3bf20fd", size = 11630486, upload-time = "2026-01-22T22:30:10.852Z" }, + { url = "https://files.pythonhosted.org/packages/9e/6a/40fee331a52339926a92e17ae748827270b288a35ef4a15c9c8f2ec54715/ruff-0.14.14-py3-none-win_arm64.whl", hash = "sha256:56e6981a98b13a32236a72a8da421d7839221fa308b223b9283312312e5ac76c", size = 10920448, upload-time = "2026-01-22T22:30:15.417Z" }, ] [[package]] @@ -1422,19 +1451,31 @@ wheels = [ [[package]] name = "tqdm" -version = "4.67.1" +version = "4.67.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +sdist = { url = "https://files.pythonhosted.org/packages/27/89/4b0001b2dab8df0a5ee2787dcbe771de75ded01f18f1f8d53dedeea2882b/tqdm-4.67.2.tar.gz", hash = "sha256:649aac53964b2cb8dec76a14b405a4c0d13612cb8933aae547dd144eacc99653", size = 169514, upload-time = "2026-01-30T23:12:06.555Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f5/e2/31eac96de2915cf20ccaed0225035db149dfb9165a9ed28d4b252ef3f7f7/tqdm-4.67.2-py3-none-any.whl", hash = "sha256:9a12abcbbff58b6036b2167d9d3853042b9d436fe7330f06ae047867f2f8e0a7", size = 78354, upload-time = "2026-01-30T23:12:04.368Z" }, +] + +[[package]] +name = "typeguard" +version = "4.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/68/71c1a15b5f65f40e91b65da23b8224dad41349894535a97f63a52e462196/typeguard-4.4.4.tar.gz", hash = "sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74", size = 75203, upload-time = "2025-06-18T09:56:07.624Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a9/e3aee762739c1d7528da1c3e06d518503f8b6c439c35549b53735ba52ead/typeguard-4.4.4-py3-none-any.whl", hash = "sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e", size = 34874, upload-time = "2025-06-18T09:56:05.999Z" }, ] [[package]] name = "types-geopandas" -version = "1.1.1.20251214" +version = "1.1.2.20260120" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, @@ -1442,30 +1483,30 @@ dependencies = [ { name = "pyproj" }, { name = "types-shapely" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e7/fa/89734db83e9fc19f1e26793a3377b6e8abf35b99f900a26f95eed2a1868a/types_geopandas-1.1.1.20251214.tar.gz", hash = "sha256:84faf42433a1d664959356350f6be15d44ba9dda109206a9c5e2b39dd6c8a56a", size = 23437, upload-time = "2025-12-14T03:20:37.532Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/72/b210806aa1ad77ccc65db2b9814cdcdcec619c6cc1a44b04d45af1e98bbd/types_geopandas-1.1.2.20260120.tar.gz", hash = "sha256:8b7ef9d87b047770c7dbd21b351804161a178f9dba904ffa2050fe4854456008", size = 23531, upload-time = "2026-01-20T03:25:11.247Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/66/86/52edc7ed7ab1cb4f2e2a7082e9f61ca03c762eb525937c8e75ae210843bd/types_geopandas-1.1.1.20251214-py3-none-any.whl", hash = "sha256:d488701f9492213410e0592c0b4c8d36e68285121f06f51d8cb8a90fe7abb564", size = 31740, upload-time = "2025-12-14T03:20:36.374Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4c/e7689188fda0499b367ef5cdefc298565cd070cbb19302635d9e26093e8a/types_geopandas-1.1.2.20260120-py3-none-any.whl", hash = "sha256:ffd92f6faa3715154c86a4cc99a9688f411bfbdcf515b1d9bbf6113347f7b820", size = 31755, upload-time = "2026-01-20T03:25:09.942Z" }, ] [[package]] name = "types-netaddr" -version = "1.3.0.20251108" +version = "1.3.0.20260130" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2c/59/1b41ff2af286b96a30e42494090e2c561f20abd1238c4209ed872bb00c0d/types_netaddr-1.3.0.20251108.tar.gz", hash = "sha256:2895d8a48eb71ba0ebecf74c6cebaddfa0f97199835ebb406b5aae1725e06ac1", size = 15371, upload-time = "2025-11-08T02:55:45.606Z" } +sdist = { url = "https://files.pythonhosted.org/packages/76/fb/5ff4139da4ecf47da8604cacab200edea08529a7ad4ea56c8c0665271fff/types_netaddr-1.3.0.20260130.tar.gz", hash = "sha256:13d9805c8d5eeb27406938de9c2d9c447c032358c8538c11f796ab382d17d54d", size = 15483, upload-time = "2026-01-30T03:58:10.221Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/9b/063a2d2453b4f8835316dd0b342cb7448472c99a0a834001fc005bdbe44c/types_netaddr-1.3.0.20251108-py3-none-any.whl", hash = "sha256:1699b3aae860b8754e8ba7fb426905287065c9dbce05d019c25b630ae2ba66c5", size = 19243, upload-time = "2025-11-08T02:55:44.533Z" }, + { url = "https://files.pythonhosted.org/packages/bb/22/9876cb8cce787cb2b78de406ddf86b2ab4365e9b6b3e3893423a2286cfb2/types_netaddr-1.3.0.20260130-py3-none-any.whl", hash = "sha256:ec1b2de102bda98d063f97d87de5370778d0d955ae2928a9e3465554f90c9a92", size = 19236, upload-time = "2026-01-30T03:58:09.334Z" }, ] [[package]] name = "types-networkx" -version = "3.6.1.20251212" +version = "3.6.1.20251220" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cf/6d/6409db1e89f88bbc5614e3857f387cc8aeccb24de7fe4adba145210e310a/types_networkx-3.6.1.20251212.tar.gz", hash = "sha256:aba1a4ab21ce0afe8b8ba12b93249368282a1f90fded44ff31861cbfd967485f", size = 73357, upload-time = "2025-12-12T03:15:21.114Z" } +sdist = { url = "https://files.pythonhosted.org/packages/07/e3/dcc20d645dc0631b0df263959b8dde49dc47ad3c0537d8958bfefe692380/types_networkx-3.6.1.20251220.tar.gz", hash = "sha256:caf95e0d7777b969e50ceeb2c430d9d4dfe6b7bdee43c42dc9879a2d4408a790", size = 73500, upload-time = "2025-12-20T03:07:47.933Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/03/cd/e1fb6a3f3e5d721124951bc3463eecb8bf51bdea9e8ac89d83b9f634c575/types_networkx-3.6.1.20251212-py3-none-any.whl", hash = "sha256:e9535ecece10c220189dbbc2d50e2d76d35bd7ec4f83b8e351ec5abe583de564", size = 162633, upload-time = "2025-12-12T03:15:19.886Z" }, + { url = "https://files.pythonhosted.org/packages/65/e7/fe40cfe7ba384d1f46fee835eb7727a4ee2fd80021a69add9553197b69a1/types_networkx-3.6.1.20251220-py3-none-any.whl", hash = "sha256:417ccbe7841f335a4c2b8e7515c3bc97a00fb5f686f399a763ef64392b209eac", size = 162715, upload-time = "2025-12-20T03:07:46.882Z" }, ] [[package]] @@ -1479,11 +1520,11 @@ wheels = [ [[package]] name = "types-python-dateutil" -version = "2.9.0.20251115" +version = "2.9.0.20260124" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6a/36/06d01fb52c0d57e9ad0c237654990920fa41195e4b3d640830dabf9eeb2f/types_python_dateutil-2.9.0.20251115.tar.gz", hash = "sha256:8a47f2c3920f52a994056b8786309b43143faa5a64d4cbb2722d6addabdf1a58", size = 16363, upload-time = "2025-11-15T03:00:13.717Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/41/4f8eb1ce08688a9e3e23709ed07089ccdeaf95b93745bfb768c6da71197d/types_python_dateutil-2.9.0.20260124.tar.gz", hash = "sha256:7d2db9f860820c30e5b8152bfe78dbdf795f7d1c6176057424e8b3fdd1f581af", size = 16596, upload-time = "2026-01-24T03:18:42.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/43/0b/56961d3ba517ed0df9b3a27bfda6514f3d01b28d499d1bce9068cfe4edd1/types_python_dateutil-2.9.0.20251115-py3-none-any.whl", hash = "sha256:9cf9c1c582019753b8639a081deefd7e044b9fa36bd8217f565c6c4e36ee0624", size = 18251, upload-time = "2025-11-15T03:00:12.317Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c2/aa5e3f4103cc8b1dcf92432415dde75d70021d634ecfd95b2e913cf43e17/types_python_dateutil-2.9.0.20260124-py3-none-any.whl", hash = "sha256:f802977ae08bf2260142e7ca1ab9d4403772a254409f7bbdf652229997124951", size = 18266, upload-time = "2026-01-24T03:18:42.155Z" }, ] [[package]] @@ -1516,6 +1557,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] +[[package]] +name = "typing-inspect" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/74/1789779d91f1961fa9438e9a8710cdae6bd138c80d7303996933d117264a/typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78", size = 13825, upload-time = "2023-05-24T20:25:47.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f", size = 8827, upload-time = "2023-05-24T20:25:45.287Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + [[package]] name = "tzdata" version = "2025.3" @@ -1527,11 +1593,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.6.2" +version = "2.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" }, + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [[package]]