diff --git a/CHANGES.md b/CHANGES.md index 6a457c625..65adc84e3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,9 @@ releases are available on [Anaconda.org](https://anaconda.org/conda-forge/gettsi ## Unpublished +- {gh}`1054` DOC: Simple example and comprehensive how-to notebook + ({ghuser}`MImmesberger`) + - {gh}`804` The PR that has been collecting all changes over the past 7 months, which have been listed individually. diff --git a/docs/gettsim_developer/hh_concepts.md b/docs/gettsim_developer/hh_concepts.md index 41ebe8417..0a9c0d58a 100644 --- a/docs/gettsim_developer/hh_concepts.md +++ b/docs/gettsim_developer/hh_concepts.md @@ -59,65 +59,65 @@ The units are: ## Kindergeld -#### Description +### Description - Only one parent receives child allowances (specified via `kindergeld__p_id_empfänger`) - Relevant for alimony payment of the other parent, if separate -#### Pointers +### Pointers - `kindergeld__p_id_empfänger` (exogenous) ## Kinderzuschlag -#### Description +### Description - Paid out on Bedarfsgemeinschaft level - Parents outside of Bedarfsgemeinschaft (e.g. not in the same household) are not considered (besides of Unterhalts(vorschuss)zahlungen) -#### Aggregation unit +### Aggregation unit - `arbeitslosengeld_2__bg_id` (endogenous) -#### Pointers +### Pointers - `arbeitslosengeld_2__p_id_einstandspartner`, `familie__p_id_elternteil_1`, `familie__p_id_elternteil_2` (exogenous) ## Elterngeld -#### Description +### Description - Parents and their children - Number of months parents can claim Elterngeld is capped (both individually and sum over parents). -#### Pointers +### Pointers - `familie__p_id_elternteil_1`, `familie__p_id_elternteil_2` (exogenous) ## Unterhalt / Unterhaltsvorschuss -#### Description +### Description - Parents and their children - Parents necessarily in different households (different `hh_id`) -#### Pointers +### Pointers - `kindergeld__p_id_empfänger` (exogenous) ## Pflegeversicherung -#### Description +### Description - Contribution depends on the number of children and their ages (since July 2023) - Parents and their children - Can be in different households - No reference to age categories of children -#### Pointers +### Pointers - `familie__p_id_elternteil_1`, `familie__p_id_elternteil_2` (exogenous) @@ -125,7 +125,7 @@ The units are: ### Grundrente -#### Description +### Description - Couples that are married or in a civil union @@ -144,7 +144,7 @@ The units are: - Couples that were married or in a civil union - Not implemented yet -#### Aggregation unit +### Aggregation unit - `familie__ehe_id` (endogenous) diff --git a/docs/how_to_guides/index.md b/docs/how_to_guides/index.md index 84e1b24af..113cf8496 100644 --- a/docs/how_to_guides/index.md +++ b/docs/how_to_guides/index.md @@ -4,3 +4,10 @@ How-to guides provide detailed explanations on how to accomplish specific tasks with GETTSIM. + +```{toctree} +--- +maxdepth: 1 +--- +modifications_of_policy_environments +``` diff --git a/docs/how_to_guides/modifications_of_policy_environments.ipynb b/docs/how_to_guides/modifications_of_policy_environments.ipynb new file mode 100644 index 000000000..f0622123b --- /dev/null +++ b/docs/how_to_guides/modifications_of_policy_environments.ipynb @@ -0,0 +1,1052 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "metadata": {}, + "source": [ + "# Taxes & Transfers Objects and Modifications of the Policy Environment\n", + "\n", + "GETTSIM's design allows you to go beyond the depiction of the current (or historical)\n", + "tax and transfer system. Analyzing counterfactual reform scenarios, ranging from small\n", + "changes of certain parameters of the tax and transfer system, to the introduction of\n", + "large-scale reforms, is a common use case.\n", + "\n", + "This tutorial showcases how to modify the calculation of taxes and transfers when using\n", + "GETTSIM.\n", + "\n", + "Here, we focus mainly on small reforms to the calculation of income taxes. We pick this\n", + "example because it is a fairly complex system that uses (almost) the entire range of\n", + "objects TTSIM offers." + ] + }, + { + "cell_type": "markdown", + "id": "1", + "metadata": {}, + "source": [ + "## Status Quo\n", + "\n", + "Before modifying taxes and transfers, it's important to understand how GETTSIM\n", + "represents the current tax and transfer system. The core of GETTSIM's implementation is\n", + "the **policy environment**.\n", + "\n", + "### What is a Policy Environment?\n", + "\n", + "A policy environment is a nested dictionary that holds all the parameters and functions\n", + "needed to calculate taxes and transfers for a given policy date. Think of it as a\n", + "complete snapshot of the tax and transfer system at a particular point in time.\n", + "\n", + "### The Three Types of Objects\n", + "\n", + "The policy environment contains three main categories of objects:\n", + "\n", + "1. **Column Objects** (`ColumnObjects`): These work with data columns - either input\n", + " data you provide or results computed by previous functions. They handle the actual\n", + " calculations and data processing.\n", + "\n", + "2. **Parameter Objects** (`ParamObjects`): These store the parameters and constants\n", + " used in calculations, such as tax rates, benefit amounts, or thresholds.\n", + "\n", + "3. **Parameter Functions** (`ParamFunctions`): These process parameters which cannot be\n", + " used directly by the column objects.\n", + "\n", + "### Getting Started\n", + "\n", + "After the standard imports, the first step in modifying taxes and transfers is to create\n", + "the base policy environment for the date you want to work with." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2", + "metadata": {}, + "outputs": [], + "source": [ + "from __future__ import annotations\n", + "\n", + "import numpy as np\n", + "\n", + "from gettsim import InputData, MainTarget, copy_environment, main" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment = main(\n", + " main_target=MainTarget.policy_environment,\n", + " policy_date_str=\"2025-01-01\",\n", + " backend=\"numpy\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": {}, + "source": [ + "We also create some input data in order to verify how our modifications affect the\n", + "output. The following input data is required to compute the amount of income tax when\n", + "assuming parental leave benefits (i.e. `('elterngeld', 'betrag_m')`), pensions (i.e.\n", + "`('sozialversicherung', 'rente', 'altersrente', 'betrag_m')`, `('sozialversicherung',\n", + "'rente', 'erwerbsminderung', 'betrag_m')`) and unemployment benefits (i.e.\n", + "`('sozialversicherung', 'arbeitslosen', 'betrag_m')`) are fixed at some value." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5", + "metadata": {}, + "outputs": [], + "source": [ + "INPUT_DATA_TREE = {\n", + " \"alter\": np.array([40, 40, 5]),\n", + " \"arbeitsstunden_w\": np.array([40, 40, 0]),\n", + " \"behinderungsgrad\": np.array([0, 60, 0]),\n", + " \"einkommensteuer\": {\n", + " \"abzüge\": {\n", + " \"beitrag_private_rentenversicherung_m\": np.array([120, 120, 0]),\n", + " \"kinderbetreuungskosten_m\": np.array([0.0, 0.0, 120.0]),\n", + " \"p_id_kinderbetreuungskostenträger\": np.array([-1, -1, 0]),\n", + " },\n", + " \"einkünfte\": {\n", + " \"aus_forst_und_landwirtschaft\": {\"betrag_m\": np.array([0.0, 0.0, 0.0])},\n", + " \"aus_gewerbebetrieb\": {\"betrag_m\": np.array([0.0, 0.0, 0.0])},\n", + " \"aus_kapitalvermögen\": {\"kapitalerträge_m\": np.array([0.0, 0.0, 0.0])},\n", + " \"aus_nichtselbstständiger_arbeit\": {\n", + " \"bruttolohn_m\": np.array([6000.0, 4000.0, 0.0])\n", + " },\n", + " \"aus_selbstständiger_arbeit\": {\"betrag_m\": np.array([0.0, 0.0, 0.0])},\n", + " \"aus_vermietung_und_verpachtung\": {\"betrag_m\": np.array([0.0, 0.0, 0.0])},\n", + " \"ist_hauptberuflich_selbstständig\": np.array([False, False, False]),\n", + " \"sonstige\": {\n", + " \"alle_weiteren_m\": np.array([0.0, 0.0, 0.0]),\n", + " \"rente\": {\n", + " \"betriebliche_altersvorsorge_m\": np.array([0.0, 0.0, 0.0]),\n", + " \"geförderte_private_vorsorge_m\": np.array([0.0, 0.0, 0.0]),\n", + " \"sonstige_private_vorsorge_m\": np.array([0.0, 0.0, 0.0]),\n", + " },\n", + " },\n", + " },\n", + " \"gemeinsam_veranlagt\": np.array([True, True, False]),\n", + " },\n", + " \"arbeitslosengeld_2\": {\n", + " \"p_id_einstandspartner\": np.array([1, 0, -1])\n", + " }, # not required for ESt, but we need it later\n", + " \"familie\": {\n", + " \"alleinerziehend\": np.array([False, False, False]),\n", + " \"p_id_ehepartner\": np.array([1, 0, -1]),\n", + " \"p_id_elternteil_1\": np.array([-1, -1, 0]),\n", + " \"p_id_elternteil_2\": np.array([-1, -1, 1]),\n", + " },\n", + " \"geburtsjahr\": np.array([1985, 1985, 2020]),\n", + " \"kindergeld\": {\n", + " \"in_ausbildung\": np.array([False, False, False]),\n", + " \"p_id_empfänger\": np.array([-1, -1, 0]),\n", + " },\n", + " \"p_id\": np.array([0, 1, 2]),\n", + " \"hh_id\": np.array([0, 0, 0]),\n", + " \"sozialversicherung\": {\n", + " \"kranken\": {\"beitrag\": {\"privat_versichert\": np.array([False, False, False])}},\n", + " \"pflege\": {\"beitrag\": {\"hat_kinder\": np.array([True, True, False])}},\n", + " \"rente\": {\n", + " \"altersrente\": {\"betrag_m\": np.array([0.0, 0.0, 0.0])},\n", + " \"erwerbsminderung\": {\"betrag_m\": np.array([0.0, 0.0, 0.0])},\n", + " \"jahr_renteneintritt\": np.array([2060, 2060, 2090]),\n", + " },\n", + " },\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "The status quo is the following:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "metadata": {}, + "outputs": [], + "source": [ + "main(\n", + " main_target=MainTarget.results.df_with_nested_columns,\n", + " policy_date_str=\"2025-01-01\",\n", + " input_data=InputData.tree(INPUT_DATA_TREE),\n", + " tt_targets={\"tree\": {\"einkommensteuer\": {\"betrag_y_sn\": None}}},\n", + " include_warn_nodes=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "8", + "metadata": {}, + "source": [ + "## Modifying Parameters\n", + "\n", + "GETTSIM's parameters are stored in different objects depending on the form they are\n", + "specified in the law. If you modify the parameters in the `policy_environment`, you will\n", + "encounter the following objects:\n", + "\n", + "1. **ScalarParam**: A scalar parameter, i.e. a parameter that is a single number.\n", + "2. **DictParam**: A parameter that is a flat dictionary with homogeneous keys and values\n", + " (i.e. all keys and values are of the same type).\n", + "3. **ConsecutiveIntLookupTableParam**: A lookup table that stores values and assigns a\n", + " consecutive integer index to each value.\n", + "4. **PiecewisePolynomialParam**: A piecewise polynomial parameter, i.e. a parameter that\n", + " describes a piecewise polynomial function.\n", + "5. **RawParam**: A parameter that does not fit into the other categories. For these\n", + " parameters, we need `ParamFunction`s to process them (see next section).\n", + "\n", + "All of those parameter classes have the following attributes:\n", + "- `leaf_name`: The leaf name of the parameter in GETTSIM's policy environment.\n", + "- `start_date`: The date from which the parameter is valid (if applicable).\n", + "- `end_date`: The date until which the parameter is valid (if applicable).\n", + "- `unit`: The unit of the parameter (if applicable).\n", + "- `reference_period`: The period over which the parameter is valid (if applicable).\n", + "- `name`: The name of the parameter.\n", + "- `description`: A more elaborate description of the parameter.\n", + "- `value`: The value of the parameter.\n", + "- `note`: Some notes (if applicable).\n", + "- `reference`: A legal reference.\n", + "\n", + "When modifying parameters, you will mostly care about the `value` attribute.\n", + "\n", + "### Scalar Parameters\n", + "\n", + "Scalar parameters are the simplest type of parameters. They are represented by the\n", + "`ScalarParam` class.\n", + "\n", + "Let's take a look at the `arbeitnehmerpauschbetrag` parameter, a flat deduction applied\n", + "to income from regular employment.\n", + "\n", + "As you can see the `arbeitnehmerpauschbetrag` parameter is a `ScalarParam` object and\n", + "its value is 1230€ in the status quo." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"einkünfte\"][\n", + " \"aus_nichtselbstständiger_arbeit\"\n", + "][\"arbeitnehmerpauschbetrag\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"einkünfte\"][\n", + " \"aus_nichtselbstständiger_arbeit\"\n", + "][\"arbeitnehmerpauschbetrag\"].value" + ] + }, + { + "cell_type": "markdown", + "id": "11", + "metadata": {}, + "source": [ + "Let's increase the parameter.\n", + "\n", + "#### Step 1: Create a copy of the status quo policy environment. \n", + "\n", + "This is good practice to avoid in-place modifications of the original policy\n", + "environment." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "12", + "metadata": {}, + "outputs": [], + "source": [ + "higher_arbeitnehmerpauschbetrag_pe = copy_environment(status_quo_environment)" + ] + }, + { + "cell_type": "markdown", + "id": "13", + "metadata": {}, + "source": [ + "#### Step 2: Create the new parameter.\n", + "\n", + "Create a new `ScalarParam` object. To do this, we first import the `ScalarParam` class\n", + "from GETTSIM and then instantiate it with the new value.\n", + "\n", + "**Note**: You don't have to specify all attributes of the `ScalarParam` class. Only the\n", + "value attribute is required." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14", + "metadata": {}, + "outputs": [], + "source": [ + "from gettsim.tt import ScalarParam\n", + "\n", + "higher_arbeitnehmerpauschbetrag = ScalarParam(value=1600)" + ] + }, + { + "cell_type": "markdown", + "id": "15", + "metadata": {}, + "source": [ + "#### Step 3: Replace the old parameter with the new one in the new policy environment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16", + "metadata": {}, + "outputs": [], + "source": [ + "higher_arbeitnehmerpauschbetrag_pe[\"einkommensteuer\"][\"einkünfte\"][\n", + " \"aus_nichtselbstständiger_arbeit\"\n", + "][\"arbeitnehmerpauschbetrag\"] = higher_arbeitnehmerpauschbetrag" + ] + }, + { + "cell_type": "markdown", + "id": "17", + "metadata": {}, + "source": [ + "Let's call GETTSIM with the modified policy environment." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18", + "metadata": {}, + "outputs": [], + "source": [ + "main(\n", + " main_target=MainTarget.results.df_with_nested_columns,\n", + " policy_date_str=\"2025-01-01\",\n", + " input_data=InputData.tree(INPUT_DATA_TREE),\n", + " tt_targets={\"tree\": {\"einkommensteuer\": {\"betrag_y_sn\": None}}},\n", + " policy_environment=higher_arbeitnehmerpauschbetrag_pe,\n", + " include_warn_nodes=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "19", + "metadata": {}, + "source": [ + "### Dict Parameters\n", + "\n", + "Dict parameters are parameters that are a flat dictionary with homogeneous keys and\n", + "values. They are represented by the `DictParam` class. They are stored as a flat\n", + "dictionary in the `policy_environment`.\n", + "\n", + "Let's take a look at the `parameter_kinderfreibetrag` parameter. This parameter\n", + "contains tax deductions for parents of young children.\n", + "\n", + "As you can see the `parameter_kinderfreibetrag` parameter is a `DictParam` object and\n", + "its value is a dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"parameter_kinderfreibetrag\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "21", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"parameter_kinderfreibetrag\"].value" + ] + }, + { + "cell_type": "markdown", + "id": "22", + "metadata": {}, + "source": [ + "Let's modify the parameter by increasing the \"sächliches Existenzminimum\" for children.\n", + "We follow the same steps as in the previous section." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23", + "metadata": {}, + "outputs": [], + "source": [ + "from gettsim.tt import DictParam\n", + "\n", + "# Step 1: Create a copy of the status quo policy environment.\n", + "higher_kinderfreibetrag_pe = copy_environment(status_quo_environment)\n", + "\n", + "# Step 2: Create a new parameter `parameter_kinderfreibetrag`\n", + "higher_kinderfreibetrag = DictParam(\n", + " value={\n", + " \"betreuung_erziehung_ausbildung\": 1464,\n", + " \"sächliches_existenzminimum\": 4000,\n", + " },\n", + ")\n", + "\n", + "# Step 3: Insert the new parameter into the copied policy environment\n", + "higher_kinderfreibetrag_pe[\"einkommensteuer\"][\"parameter_kinderfreibetrag\"] = (\n", + " higher_kinderfreibetrag\n", + ")\n", + "\n", + "main(\n", + " main_target=MainTarget.results.df_with_nested_columns,\n", + " policy_date_str=\"2025-01-01\",\n", + " input_data=InputData.tree(INPUT_DATA_TREE),\n", + " tt_targets={\"tree\": {\"einkommensteuer\": {\"betrag_y_sn\": None}}},\n", + " policy_environment=higher_kinderfreibetrag_pe,\n", + " include_warn_nodes=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "24", + "metadata": {}, + "source": [ + "### Consecutive Int Lookup Table Parameters\n", + "\n", + "In many cases, we need to look up values in a table, for which we tend to use\n", + "dictionaries. E.g., the increase in the normal retirement age for the 1940s cohort would\n", + "look like this:\n", + "\n", + "```python\n", + "{\n", + " 1940: 65,\n", + " 1941: 65,\n", + " 1942: 65,\n", + " 1943: 65,\n", + " 1944: 65,\n", + " 1945: 65,\n", + " 1946: 65,\n", + " 1947: 65.08333333,\n", + " 1948: 65.16666667,\n", + " 1949: 65.25,\n", + "}\n", + "``` \n", + "\n", + "For all its efficiency, our alternative computing engine Jax does not support such lookup tables. \n", + "We thus construct our own version, which only works for consecutive integer values\n", + "(i.e., the dictionary keys could not be `red`, `blue`, `green`, or `1`, `7`, `9`, etc.).\n", + "\n", + "Let's look at the implementation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"sozialversicherung\"][\"rente\"][\"altersrente\"][\n", + " \"regelaltersrente\"\n", + "][\"altersgrenze_gestaffelt\"]" + ] + }, + { + "cell_type": "markdown", + "id": "26", + "metadata": {}, + "source": [ + "The `value` attribute of `ConsecutiveIntLookupTableParam` stores a `ConsecutiveIntLookupTableParamValue` object:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"sozialversicherung\"][\"rente\"][\"altersrente\"][\n", + " \"regelaltersrente\"\n", + "][\"altersgrenze_gestaffelt\"].value" + ] + }, + { + "cell_type": "markdown", + "id": "28", + "metadata": {}, + "source": [ + "This object has a `look_up` method, which returns the value for the given key." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29", + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(1940, 1950):\n", + " print(\n", + " i,\n", + " status_quo_environment[\"sozialversicherung\"][\"rente\"][\"altersrente\"][\n", + " \"regelaltersrente\"\n", + " ][\"altersgrenze_gestaffelt\"].value.look_up(i),\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "30", + "metadata": {}, + "source": [ + "Let's create a modified version with a steeper increase in the normal retirement age.\n", + "\n", + "In order to instantiate a `ConsecutiveIntLookupTableParamValue`, we have a function\n", + "`get_consecutive_int_lookup_table_param_value` that takes a dictionary as above:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "31", + "metadata": {}, + "outputs": [], + "source": [ + "from gettsim.tt import (\n", + " ConsecutiveIntLookupTableParam,\n", + " get_consecutive_int_lookup_table_param_value,\n", + ")\n", + "\n", + "# Step 1: Create a copy of the status quo policy environment.\n", + "increased_nra_by_birth_year_pe = copy_environment(status_quo_environment)\n", + "\n", + "# Step 2: Create a new parameter `altersgrenze_gestaffelt`\n", + "increased_nra_by_birth_year = ConsecutiveIntLookupTableParam(\n", + " value=get_consecutive_int_lookup_table_param_value(\n", + " raw={\n", + " 1940: 65,\n", + " 1941: 65,\n", + " 1942: 65,\n", + " 1943: 65,\n", + " 1944: 65,\n", + " 1945: 65.5,\n", + " 1946: 66,\n", + " 1947: 66.5,\n", + " 1948: 67,\n", + " 1949: 67,\n", + " },\n", + " xnp=np,\n", + " ),\n", + ")\n", + "\n", + "# Step 3: Insert the new parameter into the copied policy environment\n", + "increased_nra_by_birth_year_pe[\"sozialversicherung\"][\"rente\"][\"altersrente\"][\n", + " \"regelaltersrente\"\n", + "][\"altersgrenze_gestaffelt\"] = increased_nra_by_birth_year\n", + "\n", + "main(\n", + " main_target=MainTarget.results.df_with_nested_columns,\n", + " policy_date_str=\"2025-01-01\",\n", + " input_data=InputData.tree(\n", + " {\n", + " \"geburtsjahr\": np.array([1944, 1945, 1946, 1947, 1948]),\n", + " \"p_id\": np.array([0, 1, 2, 3, 4]),\n", + " }\n", + " ),\n", + " tt_targets={\n", + " \"tree\": {\n", + " \"geburtsjahr\": None,\n", + " \"sozialversicherung\": {\n", + " \"rente\": {\"altersrente\": {\"regelaltersrente\": {\"altersgrenze\": None}}}\n", + " },\n", + " }\n", + " },\n", + " policy_environment=increased_nra_by_birth_year_pe,\n", + " include_warn_nodes=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "32", + "metadata": {}, + "source": [ + "### Piecewise Polynomial Parameters\n", + "\n", + "Piecewise polynomial parameters specify a continuous polynomial (first to third degree)\n", + "on the real line. GETTSIM uses them whenever a parameter is a function of a continuous\n", + "variable (like income, age, etc.).\n", + "\n", + "Let's take a look at `parameter_behindertenpauschbetrag`, a tax deduction for disabled\n", + "individuals. The deduction is a function of the degree of disability (between 0 and\n", + "100)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"abzüge\"][\"parameter_behindertenpauschbetrag\"]" + ] + }, + { + "cell_type": "markdown", + "id": "34", + "metadata": {}, + "source": [ + "The `value` attribute of `PiecewisePolynomialParam` stores a `PiecewisePolynomialParamValue` object:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"abzüge\"][\n", + " \"parameter_behindertenpauschbetrag\"\n", + "].value" + ] + }, + { + "cell_type": "markdown", + "id": "36", + "metadata": {}, + "source": [ + "Let's change the schedule such that any disability degree above the level of 50% gets a\n", + "flat deduction of 3000€.\n", + "\n", + "In order to instantiate a `PiecewisePolynomialParamValue`, we have a function\n", + "`get_piecewise_parameters` that takes a configuration dictionary and processes it. Here,\n", + "we define a `piecewise_constant` function on the real line with two pieces:\n", + "\n", + "- `0`: `-inf` to `0` with `0` as intercept\n", + "- `1`: `0` to `inf` with `3000` as intercept\n", + "\n", + "**Note:** Piecewise polynomial parameters must **always** be defined on the real line.\n", + "**Note:** It can be complex to build the `parameter_dict` for\n", + "`get_piecewise_parameters`. For more complex schedules, take a look at the tutorial on\n", + "piecewise polynomial functions [not available yet, add link eventually; in the mean\n", + "time, look at the implementation in GETTSIM's parameter yamls (or ask for help)]." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37", + "metadata": {}, + "outputs": [], + "source": [ + "from gettsim.tt import PiecewisePolynomialParam, get_piecewise_parameters\n", + "\n", + "increased_behindertenpauschbetrag = PiecewisePolynomialParam(\n", + " value=get_piecewise_parameters(\n", + " func_type=\"piecewise_constant\",\n", + " parameter_dict={\n", + " 0: {\n", + " \"lower_threshold\": \"-inf\",\n", + " \"intercept_at_lower_threshold\": 0,\n", + " },\n", + " 1: {\n", + " \"lower_threshold\": 0.5,\n", + " \"upper_threshold\": \"inf\",\n", + " \"intercept_at_lower_threshold\": 3000.0,\n", + " },\n", + " },\n", + " leaf_name=\"parameter_behindertenpauschbetrag\",\n", + " xnp=np,\n", + " )\n", + ")\n", + "\n", + "increased_behindertenpauschbetrag_pe = copy_environment(status_quo_environment)\n", + "increased_behindertenpauschbetrag_pe[\"einkommensteuer\"][\"abzüge\"][\n", + " \"parameter_behindertenpauschbetrag\"\n", + "] = increased_behindertenpauschbetrag\n", + "\n", + "main(\n", + " main_target=MainTarget.results.df_with_nested_columns,\n", + " policy_date_str=\"2025-01-01\",\n", + " input_data=InputData.tree(INPUT_DATA_TREE),\n", + " tt_targets={\"tree\": {\"einkommensteuer\": {\"betrag_y_sn\": None}}},\n", + " policy_environment=increased_behindertenpauschbetrag_pe,\n", + " include_warn_nodes=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "38", + "metadata": {}, + "source": [ + "### Raw params\n", + "\n", + "Raw parameters are parameters that are stored in a way that doesn't fit into the other\n", + "categories. `RawParam`s need to be processed via a `ParamFunction` to make them usable\n", + "for standard `ColumnFunction`s (see next section).\n", + "\n", + "Because of this, `RawParam`s may come in very different shapes. One example is the\n", + "income tax tariff. GETTSIM stores it as it is reported in the law. To receive the shape\n", + "we need to wrap it in a `PiecewisePolynomialParam`, some post-processing is needed to\n", + "convert it to the shape we need.\n", + "\n", + "Let's take a look at the `raw_parameter_einkommensteuertarif` parameter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"raw_parameter_einkommensteuertarif\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "40", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"raw_parameter_einkommensteuertarif\"].value" + ] + }, + { + "cell_type": "markdown", + "id": "41", + "metadata": {}, + "source": [ + "We modify it by increasing the income exempt from any income tax (upper threshold of the\n", + "first bracket) from 12096€ to 14000€." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "42", + "metadata": {}, + "outputs": [], + "source": [ + "from gettsim.tt import RawParam\n", + "\n", + "# Step 1: Create a copy of the status quo policy environment.\n", + "increased_tax_exemption_pe = copy_environment(status_quo_environment)\n", + "\n", + "# Step 2: Create the new parameter.\n", + "increased_tax_exemption = RawParam(\n", + " value={\n", + " 0: {\n", + " \"lower_threshold\": \"-inf\",\n", + " \"upper_threshold\": 14000,\n", + " \"rate_linear\": 0,\n", + " \"rate_quadratic\": 0,\n", + " \"intercept_at_lower_threshold\": 0,\n", + " },\n", + " 1: {\"upper_threshold\": 17443, \"rate_linear\": 0.14},\n", + " 2: {\"upper_threshold\": 68480, \"rate_linear\": 0.2397},\n", + " 3: {\"upper_threshold\": 277825, \"rate_linear\": 0.42, \"rate_quadratic\": 0},\n", + " 4: {\"upper_threshold\": \"inf\", \"rate_linear\": 0.45, \"rate_quadratic\": 0},\n", + " }\n", + ")\n", + "\n", + "# Step 3: Insert the new parameter into the copied policy environment\n", + "increased_tax_exemption_pe[\"einkommensteuer\"][\"raw_parameter_einkommensteuertarif\"] = (\n", + " increased_tax_exemption\n", + ")\n", + "\n", + "main(\n", + " main_target=MainTarget.results.df_with_nested_columns,\n", + " policy_date_str=\"2025-01-01\",\n", + " input_data=InputData.tree(INPUT_DATA_TREE),\n", + " tt_targets={\"tree\": {\"einkommensteuer\": {\"betrag_y_sn\": None}}},\n", + " policy_environment=increased_tax_exemption_pe,\n", + " include_warn_nodes=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "43", + "metadata": {}, + "source": [ + "## Modifying Parameter Functions\n", + "\n", + "Parameter functions process parameters. Often, they process `RawParam`s to make them\n", + "usable for standard `ColumnFunction`s, but they can also be used to modify the standard\n", + "parameters described above. Parameter functions must not depend on `ColumnFunction`s.\n", + "\n", + "Let's take a look at the `kinderfreibetrag_pro_kind_y` parameter. It is created via a\n", + "`ParamFunction` by summing up the values of the `parameter_kinderfreibetrag` parameter\n", + "dictionary.\n", + "\n", + "```python\n", + "@param_function()\n", + "def kinderfreibetrag_pro_kind_y(parameter_kinderfreibetrag: dict[str, float]) -> float:\n", + " return sum(parameter_kinderfreibetrag.values())\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44", + "metadata": {}, + "outputs": [], + "source": [ + "status_quo_environment[\"einkommensteuer\"][\"kinderfreibetrag_pro_kind_y\"]" + ] + }, + { + "cell_type": "markdown", + "id": "45", + "metadata": {}, + "source": [ + "Let's look at a reform that modifies the tax deduction for children by adding the\n", + "\"Bildung und Teilhabe\" bonus of the \"Kinderzuschlag\" to it. This effectively increases\n", + "the tax deduction for parents with children by 348€ per child. \n", + "\n", + "Instead of rewriting the underlying parameters (strictly speaking, the parameters\n", + "themselves are not affected by this reform), we can use a `ParamFunction` to modify the\n", + "tax deduction for children only.\n", + "\n", + "The original function looks like this:\n", + "\n", + "```python\n", + "@param_function()\n", + "def kinderfreibetrag_pro_kind_y(\n", + " parameter_kinderfreibetrag: dict[str, float],\n", + ") -> float:\n", + " return sum(parameter_kinderfreibetrag.values())\n", + "```\n", + "\n", + "This is our modified version:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46", + "metadata": {}, + "outputs": [], + "source": [ + "from gettsim.tt import param_function\n", + "\n", + "\n", + "@param_function()\n", + "def kinderfreibetrag_pro_kind_y(\n", + " parameter_kinderfreibetrag: dict[str, float],\n", + " kinderzuschlag__parameter_existenzminimum: dict[str, float],\n", + ") -> float:\n", + " return (\n", + " sum(parameter_kinderfreibetrag.values())\n", + " + kinderzuschlag__parameter_existenzminimum[\"bildung_und_teilhabe\"][\"kind\"]\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "47", + "metadata": {}, + "source": [ + "As before, we create a copy of the status quo environment and replace the old function\n", + "with the new one." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48", + "metadata": {}, + "outputs": [], + "source": [ + "bildung_und_teilhabe_tax_deductible_pe = copy_environment(status_quo_environment)\n", + "bildung_und_teilhabe_tax_deductible_pe[\"einkommensteuer\"][\n", + " \"kinderfreibetrag_pro_kind_y\"\n", + "] = kinderfreibetrag_pro_kind_y\n", + "\n", + "main(\n", + " main_target=MainTarget.results.df_with_nested_columns,\n", + " policy_date_str=\"2025-01-01\",\n", + " input_data=InputData.tree(INPUT_DATA_TREE),\n", + " tt_targets={\"tree\": {\"einkommensteuer\": {\"betrag_y_sn\": None}}},\n", + " policy_environment=bildung_und_teilhabe_tax_deductible_pe,\n", + " include_warn_nodes=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "49", + "metadata": {}, + "source": [ + "## Modifying Column Objects\n", + "\n", + "`ColumnObject`s are objects that operate on columns of data. The policy environment\n", + "contains three types of `ColumnObject`s:\n", + "\n", + "- `PolicyFunction`s: The most common type of `ColumnObject`. They perform the standard\n", + " tax and transfer calculations on the individual (or group) level.\n", + "- `GroupCreationFunction`s: These are used to create grouping IDs for individuals (e.g.\n", + " Bedarfsgemeinschaften or Ehegemeinschaften).\n", + "- `AggByGroupFunction`s: These functions aggregate the results of `PolicyFunction`s\n", + " by group (e.g. aggregate a transfer from the individual level to the level of a\n", + " Bedarfsgemeinschaft).\n", + "- `AggByPIDFunction`s: These functions aggregate the results of `PolicyFunction`s by\n", + " person (e.g. aggregate a transfer from the individual level to the level of one\n", + " specific parent).\n", + "- `PolicyInput`s: These are placeholders for the basic inputs of the tax and transfer\n", + " system, delivering information about the input type. If you add new inputs when\n", + " modifying the policy environemnt **and** want to create input data templates (via\n", + " `MainTarget.templates.input_data_dtypes`), you should add a `PolicyInput` for each new\n", + " input variable. Else, you can safely ignore them.\n", + "\n", + "\n", + "Here, we look at how to modify `PolicyFunction`s. If you want to specify aggregation\n", + "functions, take a look at [GEP\n", + "2](https://gettsim.readthedocs.io/en/stable/geps/gep-04.html).\n", + "\n", + "### Policy Functions\n", + "\n", + "`PolicyFunction`s are usually written to operate on rows of the input data. They can\n", + "take any parameter or other `ColumnObject` as inputs.\n", + "\n", + "**Note**: Some `PolicyFunction`s operate on columns of input data. Their decorator will\n", + "contain the term `vectorization_strategy=\"not_required\"`.\n", + "\n", + "Let's take a look at the tax deduction for children again. We look at a reform that\n", + "abolishes the tax deduction for families with less than 2 children.\n", + "\n", + "This is the original function:\n", + "\n", + "```python\n", + "@policy_function()\n", + "def kinderfreibetrag_y(\n", + " anzahl_kinderfreibeträge: int,\n", + " kinderfreibetrag_pro_kind_y: float,\n", + ") -> float:\n", + " \"\"\"Individual child allowance.\"\"\"\n", + " return kinderfreibetrag_pro_kind_y * anzahl_kinderfreibeträge\n", + "```\n", + "\n", + "To do this, we do, as above, the following steps:\n", + "1. Create a copy of the status quo environment\n", + "2. Create a new parameter `min_anzahl_kinder_für_kinderfreibetrag`\n", + "3. Create a new `PolicyFunction` that modifies the tax deduction for children based on\n", + " the new parameter\n", + "4. Insert the new parameter and function into the copy of the status quo environment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50", + "metadata": {}, + "outputs": [], + "source": [ + "# Step 1: Create a copy of the status quo environment\n", + "tax_deduction_only_for_at_least_two_children_pe = copy_environment(\n", + " status_quo_environment\n", + ")\n", + "\n", + "# Step 2: Create a new parameter `min_anzahl_kinder_für_kinderfreibetrag`\n", + "from gettsim.tt import ScalarParam\n", + "\n", + "min_anzahl_kinder_für_kinderfreibetrag = ScalarParam(value=2)\n", + "\n", + "# Step 3: Create a new `PolicyFunction` that modifies the tax deduction for children\n", + "# based on the new parameter\n", + "from gettsim.tt import policy_function\n", + "\n", + "\n", + "@policy_function()\n", + "def kinderfreibetrag_y(\n", + " anzahl_kinderfreibeträge: int,\n", + " kinderfreibetrag_pro_kind_y: float,\n", + " familie__anzahl_kinder_fg: int,\n", + " min_anzahl_kinder_für_kinderfreibetrag: int,\n", + ") -> float:\n", + " \"\"\"Individual child allowance.\"\"\"\n", + " if familie__anzahl_kinder_fg >= min_anzahl_kinder_für_kinderfreibetrag:\n", + " out = kinderfreibetrag_pro_kind_y * anzahl_kinderfreibeträge\n", + " else:\n", + " out = 0.0\n", + " return out\n", + "\n", + "\n", + "# Step 4: Add the new parameter and function to the policy environment\n", + "tax_deduction_only_for_at_least_two_children_pe[\"einkommensteuer\"][\n", + " \"kinderfreibetrag_y\"\n", + "] = kinderfreibetrag_y\n", + "tax_deduction_only_for_at_least_two_children_pe[\"einkommensteuer\"][\n", + " \"min_anzahl_kinder_für_kinderfreibetrag\"\n", + "] = min_anzahl_kinder_für_kinderfreibetrag\n", + "\n", + "\n", + "main(\n", + " main_target=MainTarget.results.df_with_nested_columns,\n", + " policy_date_str=\"2025-01-01\",\n", + " input_data=InputData.tree(INPUT_DATA_TREE),\n", + " tt_targets={\"tree\": {\"einkommensteuer\": {\"betrag_y_sn\": None}}},\n", + " policy_environment=tax_deduction_only_for_at_least_two_children_pe,\n", + " include_warn_nodes=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "51", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md index 3f4487c28..e8371d023 100644 --- a/docs/tutorials/index.md +++ b/docs/tutorials/index.md @@ -3,3 +3,10 @@ # Tutorials Tutorials help you to get started with GETTSIM. + +```{toctree} +--- +maxdepth: 1 +--- +simple_example +``` diff --git a/sandbox/interface-playground.ipynb b/docs/tutorials/simple_example.ipynb similarity index 85% rename from sandbox/interface-playground.ipynb rename to docs/tutorials/simple_example.ipynb index 0b7c5ebc5..f3b3d93e9 100644 --- a/sandbox/interface-playground.ipynb +++ b/docs/tutorials/simple_example.ipynb @@ -1,41 +1,24 @@ { "cells": [ { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "import pandas as pd\n", + "# Introductory example\n", "\n", - "# Please ignore the import location for now; will be from gettsim in the future\n", - "from gettsim import InputData, MainTarget, TTTargets, main, tt" + "In this notebook, we compute income taxes and social security contributions for example\n", + "data." ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ - "# Prototypes of GETTSIM's new interface\n", - "\n", - "[GEP 7](https://gettsim--855.org.readthedocs.build/en/855/geps/gep-07.html) discusses\n", - "the principles of the new interface. This notebook allows you to play around with it.\n", - "\n", - "In this notebook, we compute income taxes and social security contributions for example\n", - "data.\n", - "\n", - "## Setup\n", - "\n", - "This notebook requires to have GETTSIM installed in its current development version.\n", - "\n", - "To do this:\n", - "\n", - "1. Clone the GETTSIM repository.\n", - "2. [Install](https://pixi.sh/latest/#installation) the pixi package manager on your system.\n", - "3. In your shell, navigate (cd) to the GETTSIM repository and run `git checkout gep-07`.\n", - "4. Start the notebook with `pixi run jupyter-notebook` and open `interface-playground.ipynb`.\n", + "import pandas as pd\n", "\n", - "If you have trouble with the setup, please reach out." + "from gettsim import InputData, MainTarget, TTTargets, copy_environment, main, tt" ] }, { @@ -53,7 +36,8 @@ "The key sequences of the nested dictionary below are the paths GETTSIM will use as\n", "targets. For instance, via the path `einkommensteuer` and `betrag_m_sn`, we request the\n", "amount of income tax to be paid monthly at the Steuernummer level. *Note: Of course, the\n", - "income tax is paid annually, but GETTSIM will do the conversion for you.*\n", + "income tax is paid annually and calculated at that level, but GETTSIM will do the\n", + "conversion for you.*\n", "\n", "The values on the lowest level of the dictionaries (called leaves) will be used as the\n", "column names of the resulting DataFrame. Here, `income_tax_m` will be the name of the\n", @@ -101,7 +85,7 @@ "`gettsim.main`.\n", "\n", "Because we are interested social insurance contributions paid when being in regular\n", - "employment, we are not interested in retirees or households dependent on social\n", + "employment, we are not interested in retirees or households which depend on social\n", "assistance. We can override these transfers when requesting the template. This removes\n", "the input data needed to compute these transfers from the template." ] @@ -115,9 +99,7 @@ "main(\n", " main_target=MainTarget.templates.input_data_dtypes,\n", " policy_date_str=\"2025-01-01\",\n", - " tt_targets=TTTargets(\n", - " tree=TT_TARGETS,\n", - " ),\n", + " tt_targets=TTTargets(tree=TT_TARGETS),\n", " input_data=InputData.tree(\n", " {\n", " \"p_id\": pd.Series([0]),\n", @@ -190,12 +172,10 @@ "source": [ "Next, we define a mapping from GETTSIM's expected input structure to your data. Note\n", "that the paths are the union of the input_data for `main` and the result from calling it\n", - "above. Just the leaves are different; we have replaced the dtype hints by the column\n", - "names in the data. \n", + "above (with `main_target=MainTarget.templates.input_data_dtypes`). \n", "\n", - "In practice, you would probably want to save the template above to disk (e.g. as a yaml\n", - "file) and edit it there. Then you can read in the file and use its content as the\n", - "mapper." + "Just the leaves are different; we have replaced the dtype hints by the column names in\n", + "the data." ] }, { @@ -235,7 +215,9 @@ " },\n", " },\n", " \"abzüge\": {\n", - " \"beitrag_private_rentenversicherung_m\": \"contribution_to_private_pension_insurance\", # noqa: E501\n", + " \"beitrag_private_rentenversicherung_m\": (\n", + " \"contribution_to_private_pension_insurance\"\n", + " ),\n", " \"kinderbetreuungskosten_m\": \"childcare_expenses\",\n", " \"p_id_kinderbetreuungskostenträger\": \"person_that_pays_childcare_expenses\",\n", " },\n", @@ -287,6 +269,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "In practice, you would probably want to save the template above to disk (e.g. as a yaml\n", + "file) and edit it there. Then you can read in the file and use its content as the\n", + "mapper.\n", "\n", "Note: When writing and reading the template to your disk, don't forget to allow for\n", "unicode characters. This is important because many transfers have Umlaute in their\n", @@ -309,11 +294,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Using GETTSIM's interface\n", + "## Calculating taxes and transfers\n", "\n", "Just as for taxes and transfers, GETTSIM's `main` function is powered by a DAG. This\n", - "comes with the advantages that seasoned GETTSIM users already know from the taxes and\n", - "transfers part:\n", + "comes with the advantages that seasoned GETTSIM users already know from the DAG\n", + "representing the taxes and transfers system:\n", "- Users can select any part of the DAG as a target. This means that users can access\n", " any intermediate objects.\n", "- Users can feed any part of the DAG as input. This means that users can overwrite\n", @@ -326,7 +311,7 @@ "data. In a second example, we manipulate the policy environment to see why the interface\n", "DAG is useful.\n", "\n", - "### Simple computation of taxes and transfers\n", + "### Simple computation\n", "\n", "Let's calculate taxes and transfers first:" ] @@ -344,9 +329,7 @@ " mapper=MAPPER,\n", " ),\n", " main_target=MainTarget.results.df_with_mapper,\n", - " tt_targets=TTTargets(\n", - " tree=TT_TARGETS,\n", - " ),\n", + " tt_targets=TTTargets(tree=TT_TARGETS),\n", " include_warn_nodes=False,\n", ")\n", "result.T" @@ -359,7 +342,7 @@ "### Manipulating the policy environment\n", "\n", "First, we obtain the policy environment for the policy date we're interested in. Similar\n", - "to above, we have to call the `main` function." + "to above, we call the `main` function." ] }, { @@ -368,7 +351,7 @@ "metadata": {}, "outputs": [], "source": [ - "policy_environment = main(\n", + "status_quo = main(\n", " policy_date_str=\"2025-01-01\",\n", " main_target=MainTarget.policy_environment,\n", ")" @@ -378,8 +361,25 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now, we slightly modify the policy environment. In this simple example, we increase the\n", - "contribution rate of the public pension insurance by 1 percentage point.\n", + "Let us modify the policy environment by increasing the contribution rate of the public\n", + "pension insurance by 1 percentage point. \n", + "\n", + "The first step is to create a copy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "increased_rate = copy_environment(status_quo)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "\n", "The contribution rate is a `ScalarParam` object:" ] @@ -390,7 +390,7 @@ "metadata": {}, "outputs": [], "source": [ - "type(policy_environment[\"sozialversicherung\"][\"rente\"][\"beitrag\"][\"beitragssatz\"])" + "type(status_quo[\"sozialversicherung\"][\"rente\"][\"beitrag\"][\"beitragssatz\"])" ] }, { @@ -406,10 +406,8 @@ "metadata": {}, "outputs": [], "source": [ - "old_beitragssatz = policy_environment[\"sozialversicherung\"][\"rente\"][\"beitrag\"][\n", - " \"beitragssatz\"\n", - "]\n", - "policy_environment[\"sozialversicherung\"][\"rente\"][\"beitrag\"][\"beitragssatz\"] = (\n", + "old_beitragssatz = status_quo[\"sozialversicherung\"][\"rente\"][\"beitrag\"][\"beitragssatz\"]\n", + "increased_rate[\"sozialversicherung\"][\"rente\"][\"beitrag\"][\"beitragssatz\"] = (\n", " tt.ScalarParam(value=old_beitragssatz.value + 0.01)\n", ")" ] @@ -430,7 +428,7 @@ "result = main(\n", " main_target=MainTarget.results.df_with_mapper,\n", " policy_date_str=\"2025-01-01\",\n", - " policy_environment=policy_environment,\n", + " policy_environment=increased_rate,\n", " input_data=InputData.df_and_mapper(\n", " df=DATA,\n", " mapper=MAPPER,\n", @@ -442,13 +440,6 @@ ")\n", "result.T" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/pixi.lock b/pixi.lock index 8bd785cdb..316aa5d4d 100644 --- a/pixi.lock +++ b/pixi.lock @@ -268,7 +268,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/33/48ac6749986e440838990a16beb830ddc1c30d8dba150a030a53377abf77/optree-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2b/e4/cf23c3f4231d2a9a043940ab045f799f84a6df1b4fb6c9b4412cdc3ebf8c/orjson-3.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -276,7 +276,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/bd/400b0bd372a5666addf2540c7358bfc3841b9ce5cdbc5cc4ad2f61627ad8/simplejson-3.20.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-64: @@ -285,7 +285,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.9.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-21.2.0-py312hb553811_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-21.2.0-py313ha37c0e0_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda @@ -295,20 +295,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.13.4-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyh29332c3_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.2.0-h82add2a_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312haafddd8_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py313h14b76d3_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.7.14-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.4-h950ec3b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.7.14-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py312hf857d28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py313h49682b3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.9.2-py312h3520af0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.15-py312h2ac44ba_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.9.2-py313h717bdf5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.15-py313h03db916_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda @@ -358,7 +358,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py313habf4b1d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.4.1-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.0-he01879c_0.conda @@ -393,6 +393,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.0-h6e16a3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-32_h236ab99_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-h6e16a3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_hbf64a52_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.50-h3c4a55f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/librsvg-2.58.4-h21a6cfa_3.conda @@ -403,7 +404,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.8-h93c44a6_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-20.1.8-hf4e0ed4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.2-py312h3520af0_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.2-py313h717bdf5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.3-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda @@ -413,14 +414,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.1-py312hda18a35_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.1-py313hdb1a8e5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numpy_groupies-0.11.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numpydoc-1.9.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openpyxl-3.1.5-py312h732d5f6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openpyxl-3.1.5-py313hde07947_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.5.1-hc426f3f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.1-py312hbf2c5ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.1-py313h366a99e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/pango-1.56.4-h6ef8af8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_1.conda @@ -433,28 +434,28 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.2.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.22.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.0.0-py312h01d7ebd_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.0.0-py313h63b0ddb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pygraphviz-1.14-py312hc79309e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-11.1-py312h3f2cce9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-11.1-py312h2365019_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pygraphviz-1.14-py313h3af7c70_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-11.1-py313h6971d95_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-11.1-py313h19a8f7f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-profiling-1.8.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.11-h9ccd52b_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.13.5-hc3a4c56_102_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312h3520af0_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-27.0.0-py312h679dbab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py313h717bdf5_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-27.0.0-py313h2d45800_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.4-pyhd8ed1ab_0.conda @@ -462,7 +463,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.26.0-py312haba3716_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.26.0-py313hb35714d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda @@ -484,14 +485,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.1-py312h01d7ebd_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.1-py313h63b0ddb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20250708-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.14.1-h4440ef1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.14.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hc5c4d5f_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py313h0c4e38b_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.32.0-pyhd8ed1ab_0.conda @@ -503,7 +504,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-h7130eaa_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h01d7ebd_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py313h63b0ddb_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h8210216_2.conda - pypi: https://files.pythonhosted.org/packages/e7/da/38f4a19fadd86416551871fa1cc385df61b0f54656e1def4892c148cfd8f/choreographer-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/47/85/048b6f1779f0d46f594122b1c73e016500098560b570fd81c5b5578a4d47/dags-0.4.1-py3-none-any.whl @@ -511,15 +512,15 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c6/08/c18e47472189bf9901ce98678f958bda15ec2f39803fea83cdf88b2f8a67/optree-0.16.0-cp312-cp312-macosx_10_13_universal2.whl - - pypi: https://files.pythonhosted.org/packages/92/c9/241e304fb1e58ea70b720f1a9e5349c6bb7735ffac401ef1b94f422edd6d/orjson-3.11.0-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl + - pypi: https://files.pythonhosted.org/packages/1a/e9/8abe32635c32b23e4dc8aaa93746229557046f01e2ecbf3cf8b776995a12/optree-0.16.0-cp313-cp313-macosx_10_13_universal2.whl + - pypi: https://files.pythonhosted.org/packages/31/63/82d9b6b48624009d230bc6038e54778af8f84dfd54402f9504f477c5cfd5/orjson-3.11.0-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl - pypi: https://files.pythonhosted.org/packages/a9/8b/2d16e4eb53bb49adf4eecb8190b2281f8b1b8c6fe78ca89c157ec65fa77e/pdbp-1.7.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/41/fc/2c2c007d135894971e6814e7c0806936e5bade28f8db4dd7e2a58b50debd/simplejson-3.20.1-cp312-cp312-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/74/1f/a729f4026850cabeaff23e134646c3f455e86925d2533463420635ae54de/simplejson-3.20.1-cp313-cp313-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-arm64: @@ -755,7 +756,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8b/70/3b8d96e14c182e606d83402e27b364b50a34a992b7c4ac419de2deed3609/optree-0.16.0-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/31/63/82d9b6b48624009d230bc6038e54778af8f84dfd54402f9504f477c5cfd5/orjson-3.11.0-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -763,7 +764,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e2/14/50a2713fee8ff1f8d655b1a14f4a0f1c0c7246768a1b3b3d12964a4ed5aa/simplejson-3.20.1-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ win-64: @@ -1006,7 +1007,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/e5/1f61f454101da963d8da10864291141d27e43ff7a305aa8d708990e41cba/optree-0.16.0-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/85/3f/544938dcfb7337d85ee1e43d7685cf8f3bfd452e0b15a32fe70cb4ca5094/orjson-3.11.0-cp313-cp313-win_amd64.whl @@ -1015,7 +1016,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/a9/25282fdd24493e1022f30b7f5cdf804255c007218b2bfaa655bd7ad34b2d/simplejson-3.20.1-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ docs: @@ -1297,7 +1298,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bf/ef/dc43196b9d49b2c587daf0ab450af36968d83d59332c9f256db12b666672/optree-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f8/4e/ef43582ef3e3dfd2a39bc3106fa543364fde1ba58489841120219da6e22f/orjson-3.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -1305,7 +1306,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e3/874b1cca3d3897b486d3afdccc475eb3a09815bf1015b01cf7fcb52a55f0/simplejson-3.20.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-64: @@ -1553,7 +1554,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/e9/8abe32635c32b23e4dc8aaa93746229557046f01e2ecbf3cf8b776995a12/optree-0.16.0-cp313-cp313-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/31/63/82d9b6b48624009d230bc6038e54778af8f84dfd54402f9504f477c5cfd5/orjson-3.11.0-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -1561,7 +1562,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/1f/a729f4026850cabeaff23e134646c3f455e86925d2533463420635ae54de/simplejson-3.20.1-cp313-cp313-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-arm64: @@ -1809,7 +1810,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8b/70/3b8d96e14c182e606d83402e27b364b50a34a992b7c4ac419de2deed3609/optree-0.16.0-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/31/63/82d9b6b48624009d230bc6038e54778af8f84dfd54402f9504f477c5cfd5/orjson-3.11.0-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -1817,7 +1818,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e2/14/50a2713fee8ff1f8d655b1a14f4a0f1c0c7246768a1b3b3d12964a4ed5aa/simplejson-3.20.1-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ win-64: @@ -2072,7 +2073,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/e5/1f61f454101da963d8da10864291141d27e43ff7a305aa8d708990e41cba/optree-0.16.0-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/85/3f/544938dcfb7337d85ee1e43d7685cf8f3bfd452e0b15a32fe70cb4ca5094/orjson-3.11.0-cp313-cp313-win_amd64.whl @@ -2081,7 +2082,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/a9/25282fdd24493e1022f30b7f5cdf804255c007218b2bfaa655bd7ad34b2d/simplejson-3.20.1-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ mypy: @@ -2354,7 +2355,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/64/d6120eca3835baf7179e6797a0b61d6c47e0bc2324b1f6819d8428d5b9ba/mypy-1.17.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/33/48ac6749986e440838990a16beb830ddc1c30d8dba150a030a53377abf77/optree-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2b/e4/cf23c3f4231d2a9a043940ab045f799f84a6df1b4fb6c9b4412cdc3ebf8c/orjson-3.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -2363,7 +2364,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/bd/400b0bd372a5666addf2540c7358bfc3841b9ce5cdbc5cc4ad2f61627ad8/simplejson-3.20.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/c1/ba/e205cd11c1c7183b23c97e4bcd1de7bc0633e2e867601c32ecfc6ad42675/types_pytz-2025.2.0.20250516-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5f/e0af6f7f6a260d9af67e1db4f54d732abad514252a7a378a6c4d17dd1036/types_pyyaml-6.0.12.20250516-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl @@ -2374,7 +2375,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.9.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-21.2.0-py312hb553811_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-21.2.0-py313ha37c0e0_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda @@ -2384,20 +2385,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.13.4-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyh29332c3_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.2.0-h82add2a_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312haafddd8_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py313h14b76d3_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.7.14-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.4-h950ec3b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.7.14-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py312hf857d28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py313h49682b3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.9.2-py312h3520af0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.15-py312h2ac44ba_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.9.2-py313h717bdf5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.15-py313h03db916_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda @@ -2447,7 +2448,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py313habf4b1d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.0-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.4.1-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.0-he01879c_0.conda @@ -2482,6 +2483,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.0-h6e16a3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-32_h236ab99_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-h6e16a3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_hbf64a52_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.50-h3c4a55f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/librsvg-2.58.4-h21a6cfa_3.conda @@ -2492,7 +2494,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.8-h93c44a6_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-20.1.8-hf4e0ed4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.2-py312h3520af0_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.2-py313h717bdf5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.3-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda @@ -2502,14 +2504,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.1-py312hda18a35_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.1-py313hdb1a8e5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numpy_groupies-0.11.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numpydoc-1.9.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openpyxl-3.1.5-py312h732d5f6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openpyxl-3.1.5-py313hde07947_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.5.1-hc426f3f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.1-py312hbf2c5ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.1-py313h366a99e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/pango-1.56.4-h6ef8af8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_1.conda @@ -2522,28 +2524,28 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.2.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.22.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.0.0-py312h01d7ebd_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.0.0-py313h63b0ddb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pygraphviz-1.14-py312hc79309e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-11.1-py312h3f2cce9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-11.1-py312h2365019_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pygraphviz-1.14-py313h3af7c70_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-11.1-py313h6971d95_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-11.1-py313h19a8f7f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-profiling-1.8.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.11-h9ccd52b_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.13.5-hc3a4c56_102_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312h3520af0_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-27.0.0-py312h679dbab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py313h717bdf5_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-27.0.0-py313h2d45800_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.4-pyhd8ed1ab_0.conda @@ -2551,7 +2553,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.26.0-py312haba3716_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.26.0-py313hb35714d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda @@ -2573,14 +2575,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.1-py312h01d7ebd_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.1-py313h63b0ddb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20250708-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.14.1-h4440ef1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.14.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hc5c4d5f_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py313h0c4e38b_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.32.0-pyhd8ed1ab_0.conda @@ -2592,7 +2594,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-h7130eaa_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h01d7ebd_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py313h63b0ddb_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h8210216_2.conda - pypi: https://files.pythonhosted.org/packages/e7/da/38f4a19fadd86416551871fa1cc385df61b0f54656e1def4892c148cfd8f/choreographer-1.0.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/47/85/048b6f1779f0d46f594122b1c73e016500098560b570fd81c5b5578a4d47/dags-0.4.1-py3-none-any.whl @@ -2600,18 +2602,18 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/12/e9/e6824ed620bbf51d3bf4d6cbbe4953e83eaf31a448d1b3cfb3620ccb641c/mypy-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/be/7b/5f8ab461369b9e62157072156935cec9d272196556bdc7c2ff5f4c7c0f9b/mypy-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c6/08/c18e47472189bf9901ce98678f958bda15ec2f39803fea83cdf88b2f8a67/optree-0.16.0-cp312-cp312-macosx_10_13_universal2.whl - - pypi: https://files.pythonhosted.org/packages/92/c9/241e304fb1e58ea70b720f1a9e5349c6bb7735ffac401ef1b94f422edd6d/orjson-3.11.0-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl + - pypi: https://files.pythonhosted.org/packages/1a/e9/8abe32635c32b23e4dc8aaa93746229557046f01e2ecbf3cf8b776995a12/optree-0.16.0-cp313-cp313-macosx_10_13_universal2.whl + - pypi: https://files.pythonhosted.org/packages/31/63/82d9b6b48624009d230bc6038e54778af8f84dfd54402f9504f477c5cfd5/orjson-3.11.0-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a9/8b/2d16e4eb53bb49adf4eecb8190b2281f8b1b8c6fe78ca89c157ec65fa77e/pdbp-1.7.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/41/fc/2c2c007d135894971e6814e7c0806936e5bade28f8db4dd7e2a58b50debd/simplejson-3.20.1-cp312-cp312-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/74/1f/a729f4026850cabeaff23e134646c3f455e86925d2533463420635ae54de/simplejson-3.20.1-cp313-cp313-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/c1/ba/e205cd11c1c7183b23c97e4bcd1de7bc0633e2e867601c32ecfc6ad42675/types_pytz-2025.2.0.20250516-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5f/e0af6f7f6a260d9af67e1db4f54d732abad514252a7a378a6c4d17dd1036/types_pyyaml-6.0.12.20250516-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl @@ -2851,7 +2853,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9c/f8/c49c9e5a2ac0badcc54beb24e774d2499748302c9568f7f09e8730e953fa/mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8b/70/3b8d96e14c182e606d83402e27b364b50a34a992b7c4ac419de2deed3609/optree-0.16.0-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/31/63/82d9b6b48624009d230bc6038e54778af8f84dfd54402f9504f477c5cfd5/orjson-3.11.0-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -2860,7 +2862,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e2/14/50a2713fee8ff1f8d655b1a14f4a0f1c0c7246768a1b3b3d12964a4ed5aa/simplejson-3.20.1-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/c1/ba/e205cd11c1c7183b23c97e4bcd1de7bc0633e2e867601c32ecfc6ad42675/types_pytz-2025.2.0.20250516-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5f/e0af6f7f6a260d9af67e1db4f54d732abad514252a7a378a6c4d17dd1036/types_pyyaml-6.0.12.20250516-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl @@ -3107,7 +3109,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/63/70c8b7dbfc520089ac48d01367a97e8acd734f65bd07813081f508a8c94c/mypy-1.17.0-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/e5/1f61f454101da963d8da10864291141d27e43ff7a305aa8d708990e41cba/optree-0.16.0-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/85/3f/544938dcfb7337d85ee1e43d7685cf8f3bfd452e0b15a32fe70cb4ca5094/orjson-3.11.0-cp313-cp313-win_amd64.whl @@ -3117,7 +3119,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/a9/25282fdd24493e1022f30b7f5cdf804255c007218b2bfaa655bd7ad34b2d/simplejson-3.20.1-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/c1/ba/e205cd11c1c7183b23c97e4bcd1de7bc0633e2e867601c32ecfc6ad42675/types_pytz-2025.2.0.20250516-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5f/e0af6f7f6a260d9af67e1db4f54d732abad514252a7a378a6c4d17dd1036/types_pyyaml-6.0.12.20250516-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl @@ -3390,7 +3392,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/6e/3721bf455834a4cfef1ecd9410666ec1d5708b32f01f57da7c10c2297e09/optree-0.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/67/4f/d22f79a3c56dde563c4fbc12eebf9224a1b87af5e4ec61beb11f9b3eb499/orjson-3.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -3398,7 +3400,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e1/33/d3e0779d5c58245e7370c98eb969275af6b7a4a5aec3b97cbf85f09ad328/simplejson-3.20.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-64: @@ -3633,7 +3635,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b2/2c/9cf4bf8054b9e91ff9189b250e410e0b586530dcfaae28eab8904759888b/optree-0.16.0-cp311-cp311-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/f9/2c/0b71a763f0f5130aa2631ef79e2cd84d361294665acccbb12b7a9813194e/orjson-3.11.0-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -3641,7 +3643,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/71/c7/1970916e0c51794fff89f76da2f632aaf0b259b87753c88a8c409623d3e1/simplejson-3.20.1-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-arm64: @@ -3876,7 +3878,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ad/25/276ba4dae7cb5a53f9b4b24bace4db9ff93b06f62f9fa93add225244637e/optree-0.16.0-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/f9/2c/0b71a763f0f5130aa2631ef79e2cd84d361294665acccbb12b7a9813194e/orjson-3.11.0-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -3884,7 +3886,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c8/0d/98cc5909180463f1d75fac7180de62d4cdb4e82c4fef276b9e591979372c/simplejson-3.20.1-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ win-64: @@ -4126,7 +4128,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/24/f29c7c819402b342020622304092a1607d6e8e8ede76610a3075663a19a7/optree-0.16.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/94/3e/afd5e284db9387023803553061ea05c785c36fe7845e4fe25912424b343f/orjson-3.11.0-cp311-cp311-win_amd64.whl @@ -4135,7 +4137,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/01/85/b52f24859237b4e9d523d5655796d911ba3d46e242eb1959c45b6af5aedd/simplejson-3.20.1-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ py312: @@ -4406,7 +4408,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/33/48ac6749986e440838990a16beb830ddc1c30d8dba150a030a53377abf77/optree-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2b/e4/cf23c3f4231d2a9a043940ab045f799f84a6df1b4fb6c9b4412cdc3ebf8c/orjson-3.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -4414,7 +4416,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/bd/400b0bd372a5666addf2540c7358bfc3841b9ce5cdbc5cc4ad2f61627ad8/simplejson-3.20.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-64: @@ -4649,7 +4651,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/08/c18e47472189bf9901ce98678f958bda15ec2f39803fea83cdf88b2f8a67/optree-0.16.0-cp312-cp312-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/92/c9/241e304fb1e58ea70b720f1a9e5349c6bb7735ffac401ef1b94f422edd6d/orjson-3.11.0-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -4657,7 +4659,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/fc/2c2c007d135894971e6814e7c0806936e5bade28f8db4dd7e2a58b50debd/simplejson-3.20.1-cp312-cp312-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-arm64: @@ -4892,7 +4894,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cc/73/d106c9d4ffcd24086504539bfb333ba0fec60664b0c4b59ce6b86268c684/optree-0.16.0-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/92/c9/241e304fb1e58ea70b720f1a9e5349c6bb7735ffac401ef1b94f422edd6d/orjson-3.11.0-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -4900,7 +4902,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0f/05/2b5ecb33b776c34bb5cace5de5d7669f9b60e3ca13c113037b2ca86edfbd/simplejson-3.20.1-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ win-64: @@ -5142,7 +5144,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4e/9e/d485bff9dee0efa90883bb54590dd8b18067ae3ea34c34a7b91d30cd5d1d/optree-0.16.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/82/ba/ef25e3e223f452a01eac6a5b38d05c152d037508dcbf87ad2858cbb7d82e/orjson-3.11.0-cp312-cp312-win_amd64.whl @@ -5151,7 +5153,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/5d/4e243e937fa3560107c69f6f7c2eed8589163f5ed14324e864871daa2dd9/simplejson-3.20.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ py313: @@ -5421,7 +5423,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bf/ef/dc43196b9d49b2c587daf0ab450af36968d83d59332c9f256db12b666672/optree-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f8/4e/ef43582ef3e3dfd2a39bc3106fa543364fde1ba58489841120219da6e22f/orjson-3.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -5429,7 +5431,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e3/874b1cca3d3897b486d3afdccc475eb3a09815bf1015b01cf7fcb52a55f0/simplejson-3.20.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-64: @@ -5665,7 +5667,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/e9/8abe32635c32b23e4dc8aaa93746229557046f01e2ecbf3cf8b776995a12/optree-0.16.0-cp313-cp313-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/31/63/82d9b6b48624009d230bc6038e54778af8f84dfd54402f9504f477c5cfd5/orjson-3.11.0-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -5673,7 +5675,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/74/1f/a729f4026850cabeaff23e134646c3f455e86925d2533463420635ae54de/simplejson-3.20.1-cp313-cp313-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-arm64: @@ -5909,7 +5911,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8b/70/3b8d96e14c182e606d83402e27b364b50a34a992b7c4ac419de2deed3609/optree-0.16.0-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/31/63/82d9b6b48624009d230bc6038e54778af8f84dfd54402f9504f477c5cfd5/orjson-3.11.0-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl @@ -5917,7 +5919,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ed/20/f2b7ac96a91cc5f70d81320adad24cc41bf52013508d649b1481db225780/plotly-6.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e2/14/50a2713fee8ff1f8d655b1a14f4a0f1c0c7246768a1b3b3d12964a4ed5aa/simplejson-3.20.1-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ win-64: @@ -6160,7 +6162,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/c9/b9/281e10e2d967ea5e481683eaec99f55ac5a61085ee60551c36942ef32bef/jaxtyping-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/e5/1f61f454101da963d8da10864291141d27e43ff7a305aa8d708990e41cba/optree-0.16.0-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/85/3f/544938dcfb7337d85ee1e43d7685cf8f3bfd452e0b15a32fe70cb4ca5094/orjson-3.11.0-cp313-cp313-win_amd64.whl @@ -6169,7 +6171,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/a9/25282fdd24493e1022f30b7f5cdf804255c007218b2bfaa655bd7ad34b2d/simplejson-3.20.1-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ py313-cuda: @@ -6444,7 +6446,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/be/26/adc36e3ea09603d9f6d114894e1c1b7b8e8a9ef6d0b031cc270c6624a37c/ml_dtypes-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/77/3c/aa88abe01f3be3d1f8f787d1d33dc83e76fec05945f9a28fbb41cfb99cd5/nvidia_cublas_cu12-12.9.1.4-py3-none-manylinux_2_27_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c1/2e/b84e32197e33f39907b455b83395a017e697c07a449a2b15fd07fc1c9981/nvidia_cuda_cupti_cu12-12.9.79-py3-none-manylinux_2_25_x86_64.whl @@ -6466,7 +6468,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/11/6b/3443abcd0707d52e48eb315e33cc669a95e29fc102229919646f5a501171/scipy-1.16.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/19/e3/874b1cca3d3897b486d3afdccc475eb3a09815bf1015b01cf7fcb52a55f0/simplejson-3.20.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ py313-jax: @@ -6739,7 +6741,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/be/26/adc36e3ea09603d9f6d114894e1c1b7b8e8a9ef6d0b031cc270c6624a37c/ml_dtypes-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bf/ef/dc43196b9d49b2c587daf0ab450af36968d83d59332c9f256db12b666672/optree-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -6749,7 +6751,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/11/6b/3443abcd0707d52e48eb315e33cc669a95e29fc102229919646f5a501171/scipy-1.16.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/19/e3/874b1cca3d3897b486d3afdccc475eb3a09815bf1015b01cf7fcb52a55f0/simplejson-3.20.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ osx-arm64: @@ -6988,7 +6990,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0f/92/bb6a3d18e16fddd18ce6d5f480e1919b33338c70e18cba831c6ae59812ee/ml_dtypes-0.5.1-cp313-cp313-macosx_10_13_universal2.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8b/70/3b8d96e14c182e606d83402e27b364b50a34a992b7c4ac419de2deed3609/optree-0.16.0-cp313-cp313-macosx_11_0_arm64.whl @@ -6998,7 +7000,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/19/5a/914355a74481b8e4bbccf67259bbde171348a3f160b67b4945fbc5f5c1e5/scipy-1.16.0-cp313-cp313-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/e2/14/50a2713fee8ff1f8d655b1a14f4a0f1c0c7246768a1b3b3d12964a4ed5aa/simplejson-3.20.1-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ win-64: @@ -7244,7 +7246,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/da/8a/a2b9375c94077e5a488a624a195621407846f504068ce22ccf805c674156/ml_dtypes-0.5.1-cp313-cp313-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/40/e5/1f61f454101da963d8da10864291141d27e43ff7a305aa8d708990e41cba/optree-0.16.0-cp313-cp313-win_amd64.whl @@ -7255,7 +7257,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/7c/a7/4c94bbe91f12126b8bf6709b2471900577b7373a4fd1f431f28ba6f81115/scipy-1.16.0-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/db/a9/25282fdd24493e1022f30b7f5cdf804255c007218b2bfaa655bd7ad34b2d/simplejson-3.20.1-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: ./ py313-metal: @@ -7501,7 +7503,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/28/0e/853df00cac4823eaa8f35114d0d0ad1e2ec6b8243ce4acf5f8ac5235c517/kaleido-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0f/92/bb6a3d18e16fddd18ce6d5f480e1919b33338c70e18cba831c6ae59812ee/ml_dtypes-0.5.1-cp313-cp313-macosx_10_13_universal2.whl - - pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8b/70/3b8d96e14c182e606d83402e27b364b50a34a992b7c4ac419de2deed3609/optree-0.16.0-cp313-cp313-macosx_11_0_arm64.whl @@ -7511,7 +7513,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/19/5a/914355a74481b8e4bbccf67259bbde171348a3f160b67b4945fbc5f5c1e5/scipy-1.16.0-cp313-cp313-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/e2/14/50a2713fee8ff1f8d655b1a14f4a0f1c0c7246768a1b3b3d12964a4ed5aa/simplejson-3.20.1-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/65/44/bb509c3d2c0b5a87e7a5af1d5917a402a32ff026f777a6d7cb6990746cbb/tabcompleter-1.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl + - pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl - pypi: ./ @@ -8182,7 +8184,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=compressed-mapping + - pkg:pypi/brotli?source=hash-mapping size: 321652 timestamp: 1749231335599 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda @@ -8359,7 +8361,7 @@ packages: - python >=3.9 license: ISC purls: - - pkg:pypi/certifi?source=compressed-mapping + - pkg:pypi/certifi?source=hash-mapping size: 159755 timestamp: 1752493370797 - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda @@ -8900,7 +8902,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=hash-mapping + - pkg:pypi/debugpy?source=compressed-mapping size: 2666414 timestamp: 1752827117774 - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.15-py312h2ac44ba_0.conda @@ -8914,7 +8916,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=compressed-mapping + - pkg:pypi/debugpy?source=hash-mapping size: 2757593 timestamp: 1752827110994 - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.15-py313h03db916_0.conda @@ -8973,7 +8975,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=compressed-mapping + - pkg:pypi/debugpy?source=hash-mapping size: 2755984 timestamp: 1752827124425 - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.15-py311h5dfdfe8_0.conda @@ -9118,7 +9120,7 @@ packages: - typing_extensions >=4.6.0 license: MIT and PSF-2.0 purls: - - pkg:pypi/exceptiongroup?source=compressed-mapping + - pkg:pypi/exceptiongroup?source=hash-mapping size: 21284 timestamp: 1746947398083 - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda @@ -9421,10 +9423,8 @@ packages: timestamp: 1750744808182 - pypi: ./ name: gettsim - version: 0.7.1.dev195+g500e291ef.d20250724 - sha256: 964dc3ae839aab71261de7fe6978a3975732e6e89a6d27c634d416de4c1f1e0c - requires_dist: - - ttsim-backend + version: 0.7.1.dev198+g24733e2af.d20250725 + sha256: 7b2bf0abe790c3334fd5fe0df40f61ea125bb90481effa08023b59414e55903d requires_python: '>=3.11' editable: true - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.84.2-h4833e2c_0.conda @@ -10190,7 +10190,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipywidgets?source=compressed-mapping + - pkg:pypi/ipywidgets?source=hash-mapping size: 114557 timestamp: 1746454722402 - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda @@ -10615,7 +10615,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-events?source=compressed-mapping + - pkg:pypi/jupyter-events?source=hash-mapping size: 23647 timestamp: 1738765986736 - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.16.0-pyhe01879c_0.conda @@ -12782,10 +12782,10 @@ packages: - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/12/e9/e6824ed620bbf51d3bf4d6cbbe4953e83eaf31a448d1b3cfb3620ccb641c/mypy-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/64/63/70c8b7dbfc520089ac48d01367a97e8acd734f65bd07813081f508a8c94c/mypy-1.17.0-cp313-cp313-win_amd64.whl name: mypy version: 1.17.0 - sha256: f986f1cab8dbec39ba6e0eaa42d4d3ac6686516a5d3dccd64be095db05ebc6bb + sha256: d30ba01c0f151998f367506fab31c2ac4527e6a7b2690107c7a7f9e3cb419a9c requires_dist: - typing-extensions>=4.6.0 - mypy-extensions>=1.0.0 @@ -12797,10 +12797,10 @@ packages: - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/64/63/70c8b7dbfc520089ac48d01367a97e8acd734f65bd07813081f508a8c94c/mypy-1.17.0-cp313-cp313-win_amd64.whl +- pypi: https://files.pythonhosted.org/packages/9c/f8/c49c9e5a2ac0badcc54beb24e774d2499748302c9568f7f09e8730e953fa/mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl name: mypy version: 1.17.0 - sha256: d30ba01c0f151998f367506fab31c2ac4527e6a7b2690107c7a7f9e3cb419a9c + sha256: 0e69db1fb65b3114f98c753e3930a00514f5b68794ba80590eb02090d54a5d4a requires_dist: - typing-extensions>=4.6.0 - mypy-extensions>=1.0.0 @@ -12812,10 +12812,10 @@ packages: - pip ; extra == 'install-types' - orjson ; extra == 'faster-cache' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/9c/f8/c49c9e5a2ac0badcc54beb24e774d2499748302c9568f7f09e8730e953fa/mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/be/7b/5f8ab461369b9e62157072156935cec9d272196556bdc7c2ff5f4c7c0f9b/mypy-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl name: mypy version: 1.17.0 - sha256: 0e69db1fb65b3114f98c753e3930a00514f5b68794ba80590eb02090d54a5d4a + sha256: 2c41aa59211e49d717d92b3bb1238c06d387c9325d3122085113c79118bebb06 requires_dist: - typing-extensions>=4.6.0 - mypy-extensions>=1.0.0 @@ -12849,10 +12849,10 @@ packages: - pkg:pypi/myst-parser?source=hash-mapping size: 73074 timestamp: 1739381945342 -- pypi: https://files.pythonhosted.org/packages/75/72/5406044d4c251f3d8f78cec05b74839d0332d34c9e94b59120f3697ecf48/narwhals-1.48.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/cd/cf/411b2083991c6906634910ea0c5e5ea0a01f7f14da4194b39d7ad054c187/narwhals-1.48.1-py3-none-any.whl name: narwhals - version: 1.48.0 - sha256: 2bbddc3adeed0c5b15ead8fe61f1d5e459f00c1d2fa60921e52a0f9bdc06077d + version: 1.48.1 + sha256: 76e3b069cf20a2746d8e227686b959530e98e8018c594a04e5f4f6f77e0872d9 requires_dist: - cudf>=24.10.0 ; extra == 'cudf' - dask[dataframe]>=2024.8 ; extra == 'dask' @@ -13126,7 +13126,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=hash-mapping + - pkg:pypi/numpy?source=compressed-mapping size: 8888681 timestamp: 1752612967474 - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.1-py311h09fcace_1.conda @@ -16869,7 +16869,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/rpds-py?source=compressed-mapping + - pkg:pypi/rpds-py?source=hash-mapping size: 368619 timestamp: 1751467169263 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.26.0-py311hf245fc6_0.conda @@ -17741,10 +17741,9 @@ packages: - pkg:pypi/traitlets?source=hash-mapping size: 110051 timestamp: 1733367480074 -- pypi: https://files.pythonhosted.org/packages/6f/58/a2b7922cd228104130c1236937d5171c52baecddac68b917a65b35cd1843/ttsim_backend-1.0a1-py3-none-any.whl +- pypi: git+https://github.com/ttsim-dev/ttsim.git?branch=main#e10fd6d189dfed950ac48862e7e1f1a7b7493dba name: ttsim-backend - version: 1.0a1 - sha256: 7d7446faeb90d980dd0b50ba0f7d1fbd441bf5a8c76b08c1911fb719b992d78f + version: 1.0a2.dev8+ge10fd6d1 requires_dist: - dags>=0.4.1 - ipywidgets @@ -18641,7 +18640,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=compressed-mapping + - pkg:pypi/zstandard?source=hash-mapping size: 732224 timestamp: 1745869780524 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py313h536fd9c_2.conda diff --git a/pyproject.toml b/pyproject.toml index 8609e6bc3..a2c54c3c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ classifiers = [ ] # Dependencies and requirements requires-python = ">=3.11" -dependencies = ["ttsim-backend"] +# dependencies = ["ttsim-backend"] [project.urls] @@ -112,6 +112,7 @@ toml = "*" # -------------------------------------------------------------------------------------- [tool.pixi.pypi-dependencies] +ttsim-backend = { git = "https://github.com/ttsim-dev/ttsim.git", branch = "main" } gettsim = {path = ".", editable = true} jaxtyping = ">=0.3.2" kaleido = ">=1.0.0" @@ -245,6 +246,8 @@ exclude = [] "src/_gettsim/familie/familie.py" = ["PLR2004"] # All tests return None and use asserts "src/_gettsim_tests/**/*.py" = ["ANN", "S101"] +# Imports not at top of cell for didactic reasons +"docs/how_to_guides/modifications_of_policy_environments.ipynb" = ["E402"] # TODO: remove once ported nicely "outdated_docs/**/*.ipynb" = ["ALL"]